Manages an ECR repository lifecycle policy.
NOTE: Only one aws.ecr.LifecyclePolicy resource can be used with the same ECR repository. To apply multiple rules, they must be combined in the policy JSON.
NOTE: The AWS ECR API seems to reorder rules based on rulePriority. If you define multiple rules that are not sorted in ascending rulePriority order in the this provider code, the resource will be flagged for recreation every deployment.
Example Usage
Policy on Untagged Images
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.ecr.Repository("example", {name: "example-repo"});
const exampleLifecyclePolicy = new aws.ecr.LifecyclePolicy("example", {
repository: example.name,
policy: `{
\\"rules\\": [
{
\\"rulePriority\\": 1,
\\"description\\": \\"Expire images older than 14 days\\",
\\"selection\\": {
\\"tagStatus\\": \\"untagged\\",
\\"countType\\": \\"sinceImagePushed\\",
\\"countUnit\\": \\"days\\",
\\"countNumber\\": 14
},
\\"action\\": {
\\"type\\": \\"expire\\"
}
}
]
}
`,
});
import pulumi
import pulumi_aws as aws
example = aws.ecr.Repository("example", name="example-repo")
example_lifecycle_policy = aws.ecr.LifecyclePolicy("example",
repository=example.name,
policy="""{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Expire images older than 14 days\",
\"selection\": {
\"tagStatus\": \"untagged\",
\"countType\": \"sinceImagePushed\",
\"countUnit\": \"days\",
\"countNumber\": 14
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
""")
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecr"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := ecr.NewRepository(ctx, "example", &ecr.RepositoryArgs{
Name: pulumi.String("example-repo"),
})
if err != nil {
return err
}
_, err = ecr.NewLifecyclePolicy(ctx, "example", &ecr.LifecyclePolicyArgs{
Repository: example.Name,
Policy: pulumi.Any(`{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Expire images older than 14 days\",
\"selection\": {
\"tagStatus\": \"untagged\",
\"countType\": \"sinceImagePushed\",
\"countUnit\": \"days\",
\"countNumber\": 14
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
`),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Ecr.Repository("example", new()
{
Name = "example-repo",
});
var exampleLifecyclePolicy = new Aws.Ecr.LifecyclePolicy("example", new()
{
Repository = example.Name,
Policy = @"{
\""rules\"": [
{
\""rulePriority\"": 1,
\""description\"": \""Expire images older than 14 days\"",
\""selection\"": {
\""tagStatus\"": \""untagged\"",
\""countType\"": \""sinceImagePushed\"",
\""countUnit\"": \""days\"",
\""countNumber\"": 14
},
\""action\"": {
\""type\"": \""expire\""
}
}
]
}
",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecr.Repository;
import com.pulumi.aws.ecr.RepositoryArgs;
import com.pulumi.aws.ecr.LifecyclePolicy;
import com.pulumi.aws.ecr.LifecyclePolicyArgs;
import java.util.ArrayList;
import java.util.Arrays;
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) {
var example = new Repository("example", RepositoryArgs.builder()
.name("example-repo")
.build());
var exampleLifecyclePolicy = new LifecyclePolicy("exampleLifecyclePolicy", LifecyclePolicyArgs.builder()
.repository(example.name())
.policy("""
{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Expire images older than 14 days\",
\"selection\": {
\"tagStatus\": \"untagged\",
\"countType\": \"sinceImagePushed\",
\"countUnit\": \"days\",
\"countNumber\": 14
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
""")
.build());
}
}
resources:
example:
type: aws:ecr:Repository
properties:
name: example-repo
exampleLifecyclePolicy:
type: aws:ecr:LifecyclePolicy
name: example
properties:
repository: ${example.name}
policy: |
{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Expire images older than 14 days\",
\"selection\": {
\"tagStatus\": \"untagged\",
\"countType\": \"sinceImagePushed\",
\"countUnit\": \"days\",
\"countNumber\": 14
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
terraform {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_ecr_repository" "example" {
lifecycle {
create_before_destroy = true
}
name = "example-repo"
}
resource "aws_ecr_lifecycle_policy" "example" {
lifecycle {
create_before_destroy = true
}
repository = aws_ecr_repository.example.name
policy = <<EOF
{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Expire images older than 14 days\",
\"selection\": {
\"tagStatus\": \"untagged\",
\"countType\": \"sinceImagePushed\",
\"countUnit\": \"days\",
\"countNumber\": 14
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
EOF
}
Policy on Tagged Images
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.ecr.Repository("example", {name: "example-repo"});
const exampleLifecyclePolicy = new aws.ecr.LifecyclePolicy("example", {
repository: example.name,
policy: `{
\\"rules\\": [
{
\\"rulePriority\\": 1,
\\"description\\": \\"Keep last 30 images\\",
\\"selection\\": {
\\"tagStatus\\": \\"tagged\\",
\\"tagPrefixList\\": [\\"v\\"],
\\"countType\\": \\"imageCountMoreThan\\",
\\"countNumber\\": 30
},
\\"action\\": {
\\"type\\": \\"expire\\"
}
}
]
}
`,
});
import pulumi
import pulumi_aws as aws
example = aws.ecr.Repository("example", name="example-repo")
example_lifecycle_policy = aws.ecr.LifecyclePolicy("example",
repository=example.name,
policy="""{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Keep last 30 images\",
\"selection\": {
\"tagStatus\": \"tagged\",
\"tagPrefixList\": [\"v\"],
\"countType\": \"imageCountMoreThan\",
\"countNumber\": 30
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
""")
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecr"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := ecr.NewRepository(ctx, "example", &ecr.RepositoryArgs{
Name: pulumi.String("example-repo"),
})
if err != nil {
return err
}
_, err = ecr.NewLifecyclePolicy(ctx, "example", &ecr.LifecyclePolicyArgs{
Repository: example.Name,
Policy: pulumi.Any(`{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Keep last 30 images\",
\"selection\": {
\"tagStatus\": \"tagged\",
\"tagPrefixList\": [\"v\"],
\"countType\": \"imageCountMoreThan\",
\"countNumber\": 30
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
`),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Ecr.Repository("example", new()
{
Name = "example-repo",
});
var exampleLifecyclePolicy = new Aws.Ecr.LifecyclePolicy("example", new()
{
Repository = example.Name,
Policy = @"{
\""rules\"": [
{
\""rulePriority\"": 1,
\""description\"": \""Keep last 30 images\"",
\""selection\"": {
\""tagStatus\"": \""tagged\"",
\""tagPrefixList\"": [\""v\""],
\""countType\"": \""imageCountMoreThan\"",
\""countNumber\"": 30
},
\""action\"": {
\""type\"": \""expire\""
}
}
]
}
",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecr.Repository;
import com.pulumi.aws.ecr.RepositoryArgs;
import com.pulumi.aws.ecr.LifecyclePolicy;
import com.pulumi.aws.ecr.LifecyclePolicyArgs;
import java.util.ArrayList;
import java.util.Arrays;
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) {
var example = new Repository("example", RepositoryArgs.builder()
.name("example-repo")
.build());
var exampleLifecyclePolicy = new LifecyclePolicy("exampleLifecyclePolicy", LifecyclePolicyArgs.builder()
.repository(example.name())
.policy("""
{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Keep last 30 images\",
\"selection\": {
\"tagStatus\": \"tagged\",
\"tagPrefixList\": [\"v\"],
\"countType\": \"imageCountMoreThan\",
\"countNumber\": 30
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
""")
.build());
}
}
resources:
example:
type: aws:ecr:Repository
properties:
name: example-repo
exampleLifecyclePolicy:
type: aws:ecr:LifecyclePolicy
name: example
properties:
repository: ${example.name}
policy: |
{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Keep last 30 images\",
\"selection\": {
\"tagStatus\": \"tagged\",
\"tagPrefixList\": [\"v\"],
\"countType\": \"imageCountMoreThan\",
\"countNumber\": 30
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
terraform {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_ecr_repository" "example" {
lifecycle {
create_before_destroy = true
}
name = "example-repo"
}
resource "aws_ecr_lifecycle_policy" "example" {
lifecycle {
create_before_destroy = true
}
repository = aws_ecr_repository.example.name
policy = <<EOF
{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Keep last 30 images\",
\"selection\": {
\"tagStatus\": \"tagged\",
\"tagPrefixList\": [\"v\"],
\"countType\": \"imageCountMoreThan\",
\"countNumber\": 30
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
EOF
}
Policy to Archive and Delete
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.ecr.Repository("example", {name: "example-repo"});
const exampleLifecyclePolicy = new aws.ecr.LifecyclePolicy("example", {
repository: example.name,
policy: `{
\\"rules\\": [
{
\\"rulePriority\\": 1,
\\"description\\": \\"Archive images not pulled in 90 days\\",
\\"selection\\": {
\\"tagStatus\\": \\"any\\",
\\"countType\\": \\"sinceImagePulled\\",
\\"countUnit\\": \\"days\\",
\\"countNumber\\": 90
},
\\"action\\": {
\\"type\\": \\"transition\\",
\\"targetStorageClass\\": \\"archive\\"
}
},
{
\\"rulePriority\\": 2,
\\"description\\": \\"Delete images archived for more than 365 days\\",
\\"selection\\": {
\\"tagStatus\\": \\"any\\",
\\"storageClass\\": \\"archive\\",
\\"countType\\": \\"sinceImageTransitioned\\",
\\"countUnit\\": \\"days\\",
\\"countNumber\\": 365
},
\\"action\\": {
\\"type\\": \\"expire\\"
}
}
]
}
`,
});
import pulumi
import pulumi_aws as aws
example = aws.ecr.Repository("example", name="example-repo")
example_lifecycle_policy = aws.ecr.LifecyclePolicy("example",
repository=example.name,
policy="""{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Archive images not pulled in 90 days\",
\"selection\": {
\"tagStatus\": \"any\",
\"countType\": \"sinceImagePulled\",
\"countUnit\": \"days\",
\"countNumber\": 90
},
\"action\": {
\"type\": \"transition\",
\"targetStorageClass\": \"archive\"
}
},
{
\"rulePriority\": 2,
\"description\": \"Delete images archived for more than 365 days\",
\"selection\": {
\"tagStatus\": \"any\",
\"storageClass\": \"archive\",
\"countType\": \"sinceImageTransitioned\",
\"countUnit\": \"days\",
\"countNumber\": 365
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
""")
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecr"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := ecr.NewRepository(ctx, "example", &ecr.RepositoryArgs{
Name: pulumi.String("example-repo"),
})
if err != nil {
return err
}
_, err = ecr.NewLifecyclePolicy(ctx, "example", &ecr.LifecyclePolicyArgs{
Repository: example.Name,
Policy: pulumi.Any(`{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Archive images not pulled in 90 days\",
\"selection\": {
\"tagStatus\": \"any\",
\"countType\": \"sinceImagePulled\",
\"countUnit\": \"days\",
\"countNumber\": 90
},
\"action\": {
\"type\": \"transition\",
\"targetStorageClass\": \"archive\"
}
},
{
\"rulePriority\": 2,
\"description\": \"Delete images archived for more than 365 days\",
\"selection\": {
\"tagStatus\": \"any\",
\"storageClass\": \"archive\",
\"countType\": \"sinceImageTransitioned\",
\"countUnit\": \"days\",
\"countNumber\": 365
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
`),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Ecr.Repository("example", new()
{
Name = "example-repo",
});
var exampleLifecyclePolicy = new Aws.Ecr.LifecyclePolicy("example", new()
{
Repository = example.Name,
Policy = @"{
\""rules\"": [
{
\""rulePriority\"": 1,
\""description\"": \""Archive images not pulled in 90 days\"",
\""selection\"": {
\""tagStatus\"": \""any\"",
\""countType\"": \""sinceImagePulled\"",
\""countUnit\"": \""days\"",
\""countNumber\"": 90
},
\""action\"": {
\""type\"": \""transition\"",
\""targetStorageClass\"": \""archive\""
}
},
{
\""rulePriority\"": 2,
\""description\"": \""Delete images archived for more than 365 days\"",
\""selection\"": {
\""tagStatus\"": \""any\"",
\""storageClass\"": \""archive\"",
\""countType\"": \""sinceImageTransitioned\"",
\""countUnit\"": \""days\"",
\""countNumber\"": 365
},
\""action\"": {
\""type\"": \""expire\""
}
}
]
}
",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecr.Repository;
import com.pulumi.aws.ecr.RepositoryArgs;
import com.pulumi.aws.ecr.LifecyclePolicy;
import com.pulumi.aws.ecr.LifecyclePolicyArgs;
import java.util.ArrayList;
import java.util.Arrays;
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) {
var example = new Repository("example", RepositoryArgs.builder()
.name("example-repo")
.build());
var exampleLifecyclePolicy = new LifecyclePolicy("exampleLifecyclePolicy", LifecyclePolicyArgs.builder()
.repository(example.name())
.policy("""
{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Archive images not pulled in 90 days\",
\"selection\": {
\"tagStatus\": \"any\",
\"countType\": \"sinceImagePulled\",
\"countUnit\": \"days\",
\"countNumber\": 90
},
\"action\": {
\"type\": \"transition\",
\"targetStorageClass\": \"archive\"
}
},
{
\"rulePriority\": 2,
\"description\": \"Delete images archived for more than 365 days\",
\"selection\": {
\"tagStatus\": \"any\",
\"storageClass\": \"archive\",
\"countType\": \"sinceImageTransitioned\",
\"countUnit\": \"days\",
\"countNumber\": 365
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
""")
.build());
}
}
resources:
example:
type: aws:ecr:Repository
properties:
name: example-repo
exampleLifecyclePolicy:
type: aws:ecr:LifecyclePolicy
name: example
properties:
repository: ${example.name}
policy: |
{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Archive images not pulled in 90 days\",
\"selection\": {
\"tagStatus\": \"any\",
\"countType\": \"sinceImagePulled\",
\"countUnit\": \"days\",
\"countNumber\": 90
},
\"action\": {
\"type\": \"transition\",
\"targetStorageClass\": \"archive\"
}
},
{
\"rulePriority\": 2,
\"description\": \"Delete images archived for more than 365 days\",
\"selection\": {
\"tagStatus\": \"any\",
\"storageClass\": \"archive\",
\"countType\": \"sinceImageTransitioned\",
\"countUnit\": \"days\",
\"countNumber\": 365
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
terraform {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_ecr_repository" "example" {
lifecycle {
create_before_destroy = true
}
name = "example-repo"
}
resource "aws_ecr_lifecycle_policy" "example" {
lifecycle {
create_before_destroy = true
}
repository = aws_ecr_repository.example.name
policy = <<EOF
{
\"rules\": [
{
\"rulePriority\": 1,
\"description\": \"Archive images not pulled in 90 days\",
\"selection\": {
\"tagStatus\": \"any\",
\"countType\": \"sinceImagePulled\",
\"countUnit\": \"days\",
\"countNumber\": 90
},
\"action\": {
\"type\": \"transition\",
\"targetStorageClass\": \"archive\"
}
},
{
\"rulePriority\": 2,
\"description\": \"Delete images archived for more than 365 days\",
\"selection\": {
\"tagStatus\": \"any\",
\"storageClass\": \"archive\",
\"countType\": \"sinceImageTransitioned\",
\"countUnit\": \"days\",
\"countNumber\": 365
},
\"action\": {
\"type\": \"expire\"
}
}
]
}
EOF
}
Create LifecyclePolicy Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
type: aws:ecr:LifecyclePolicy
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "aws_ecr_lifecycle_policy" "name" {
# resource properties
}
Parameters
- resource_name
str
- The unique name of the resource.
- args
LifecyclePolicyArgs
- The arguments to resource properties.
- opts
ResourceOptions
- Bag of options to control resource's behavior.
- ctx
Context
- Context object for the current deployment.
- name
string
- The unique name of the resource.
- args
LifecyclePolicyArgs
- The arguments to resource properties.
- opts
ResourceOption
- Bag of options to control resource's behavior.
- name
String
- The unique name of the resource.
- args
LifecyclePolicyArgs
- The arguments to resource properties.
- options
CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var awsLifecyclePolicyResource = new Aws.Ecr.LifecyclePolicy("awsLifecyclePolicyResource", new()
{
Policy = "string",
Repository = "string",
Region = "string",
});
example, err := ecr.NewLifecyclePolicy(ctx, "awsLifecyclePolicyResource", &ecr.LifecyclePolicyArgs{
Policy: pulumi.Any("string"),
Repository: pulumi.String("string"),
Region: pulumi.String("string"),
})
resource "aws_ecr_lifecycle_policy" "awsLifecyclePolicyResource" {
lifecycle {
create_before_destroy = true
}
policy = "string"
repository = "string"
region = "string"
}
var awsLifecyclePolicyResource = new com.pulumi.aws.ecr.LifecyclePolicy("awsLifecyclePolicyResource", com.pulumi.aws.ecr.LifecyclePolicyArgs.builder()
.policy("string")
.repository("string")
.region("string")
.build());
aws_lifecycle_policy_resource = aws.ecr.LifecyclePolicy("awsLifecyclePolicyResource",
policy="string",
repository="string",
region="string")
const awsLifecyclePolicyResource = new aws.ecr.LifecyclePolicy("awsLifecyclePolicyResource", {
policy: "string",
repository: "string",
region: "string",
});
type: aws:ecr:LifecyclePolicy
properties:
policy: string
region: string
repository: string
LifecyclePolicy Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The LifecyclePolicy resource accepts the following input properties:
- Policy
string | LifecyclePolicyDocument
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - Repository
string
- Name of the repository to apply the policy.
- Region
string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- Policy
string | LifecyclePolicyDocumentArgs
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - Repository
string
- Name of the repository to apply the policy.
- Region
string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- policy
string | object
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - repository
string
- Name of the repository to apply the policy.
- region
string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- policy
String | LifecyclePolicyDocument
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - repository
String
- Name of the repository to apply the policy.
- region
String
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- policy
string | LifecyclePolicyDocument
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - repository
string
- Name of the repository to apply the policy.
- region
string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- policy
str | LifecyclePolicyDocumentArgs
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - repository
str
- Name of the repository to apply the policy.
- region
str
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- policy
String | Property Map
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - repository
String
- Name of the repository to apply the policy.
- region
String
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
Outputs
All input properties are implicitly available as output properties. Additionally, the LifecyclePolicy resource produces the following output properties:
- Id
string
- The provider-assigned unique ID for this managed resource.
- RegistryId
string
- The registry ID where the repository was created.
- Id
string
- The provider-assigned unique ID for this managed resource.
- RegistryId
string
- The registry ID where the repository was created.
- id
string
- The provider-assigned unique ID for this managed resource.
- registry_id
string
- The registry ID where the repository was created.
- id
String
- The provider-assigned unique ID for this managed resource.
- registryId
String
- The registry ID where the repository was created.
- id
string
- The provider-assigned unique ID for this managed resource.
- registryId
string
- The registry ID where the repository was created.
- id
str
- The provider-assigned unique ID for this managed resource.
- registry_id
str
- The registry ID where the repository was created.
- id
String
- The provider-assigned unique ID for this managed resource.
- registryId
String
- The registry ID where the repository was created.
Look up Existing LifecyclePolicy Resource
Get an existing LifecyclePolicy resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
policy: Optional[Union[str, LifecyclePolicyDocumentArgs]] = None,
region: Optional[str] = None,
registry_id: Optional[str] = None,
repository: Optional[str] = None) -> LifecyclePolicy
func GetLifecyclePolicy(ctx *Context, name string, id IDInput, state *LifecyclePolicyState, opts ...ResourceOption) (*LifecyclePolicy, error)
public static LifecyclePolicy get(String name, Output<String> id, LifecyclePolicyState state, CustomResourceOptions options)
resources: _: type: aws:ecr:LifecyclePolicy get: id: ${id}
import {
to = aws_ecr_lifecycle_policy.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
The following state arguments are supported:- Policy
string | LifecyclePolicyDocument
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - Region
string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- RegistryId
string
- The registry ID where the repository was created.
- Repository
string
- Name of the repository to apply the policy.
- Policy
string | LifecyclePolicyDocumentArgs
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - Region
string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- RegistryId
string
- The registry ID where the repository was created.
- Repository
string
- Name of the repository to apply the policy.
- policy
string | object
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - region
string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- registry_id
string
- The registry ID where the repository was created.
- repository
string
- Name of the repository to apply the policy.
- policy
String | LifecyclePolicyDocument
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - region
String
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- registryId
String
- The registry ID where the repository was created.
- repository
String
- Name of the repository to apply the policy.
- policy
string | LifecyclePolicyDocument
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - region
string
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- registryId
string
- The registry ID where the repository was created.
- repository
string
- Name of the repository to apply the policy.
- policy
str | LifecyclePolicyDocumentArgs
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - region
str
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- registry_id
str
- The registry ID where the repository was created.
- repository
str
- Name of the repository to apply the policy.
- policy
String | Property Map
- The policy document. This is a JSON formatted string. See more details about Policy Parameters in the official AWS docs. Consider using the
aws.ecr.getLifecyclePolicyDocument dataSource to generate/manage the JSON document used for the policy argument. - region
String
- Region where this resource will be managed. Defaults to the Region set in the provider configuration.
- registryId
String
- The registry ID where the repository was created.
- repository
String
- Name of the repository to apply the policy.
Supporting Types
LifecyclePolicyAction, LifecyclePolicyActionArgs
- Type
string | LifecyclePolicyActionType
- The type of action to take. Either 'expire' or 'transition'.
- TargetStorageClass
string
- The storage class to transition the image to. Required when 'type' is 'transition'. 'archive' is the only supported value.
- type
string | "expire" | "transition"
- The type of action to take. Either 'expire' or 'transition'.
- target_storage_class
string
- The storage class to transition the image to. Required when 'type' is 'transition'. 'archive' is the only supported value.
- type
String | LifecyclePolicyActionType
- The type of action to take. Either 'expire' or 'transition'.
- targetStorageClass
String
- The storage class to transition the image to. Required when 'type' is 'transition'. 'archive' is the only supported value.
- type
string | LifecyclePolicyActionType
- The type of action to take. Either 'expire' or 'transition'.
- targetStorageClass
string
- The storage class to transition the image to. Required when 'type' is 'transition'. 'archive' is the only supported value.
- type
String | "expire" | "transition"
- The type of action to take. Either 'expire' or 'transition'.
- targetStorageClass
String
- The storage class to transition the image to. Required when 'type' is 'transition'. 'archive' is the only supported value.
LifecyclePolicyActionType, LifecyclePolicyActionTypeArgs
| Name | Value |
|---|
| Expire | expire |
| Transition | transition |
| Name | Value |
|---|
| LifecyclePolicyActionTypeExpire | expire |
| LifecyclePolicyActionTypeTransition | transition |
| Name | Value |
|---|
| Expire | expire |
| Transition | transition |
| Name | Value |
|---|
| Expire | expire |
| Transition | transition |
| Name | Value |
|---|
| EXPIRE | expire |
| TRANSITION | transition |
LifecyclePolicyCountType, LifecyclePolicyCountTypeArgs
| Name | Value |
|---|
| ImageCountMoreThan | imageCountMoreThan |
| SinceImagePushed | sinceImagePushed |
| SinceImagePulled | sinceImagePulled |
| SinceImageTransitioned | sinceImageTransitioned |
| Name | Value |
|---|
| LifecyclePolicyCountTypeImageCountMoreThan | imageCountMoreThan |
| LifecyclePolicyCountTypeSinceImagePushed | sinceImagePushed |
| LifecyclePolicyCountTypeSinceImagePulled | sinceImagePulled |
| LifecyclePolicyCountTypeSinceImageTransitioned | sinceImageTransitioned |
| Value |
|---|
imageCountMoreThan |
sinceImagePushed |
sinceImagePulled |
sinceImageTransitioned |
| Name | Value |
|---|
| ImageCountMoreThan | imageCountMoreThan |
| SinceImagePushed | sinceImagePushed |
| SinceImagePulled | sinceImagePulled |
| SinceImageTransitioned | sinceImageTransitioned |
| Name | Value |
|---|
| ImageCountMoreThan | imageCountMoreThan |
| SinceImagePushed | sinceImagePushed |
| SinceImagePulled | sinceImagePulled |
| SinceImageTransitioned | sinceImageTransitioned |
| Name | Value |
|---|
| IMAGE_COUNT_MORE_THAN | imageCountMoreThan |
| SINCE_IMAGE_PUSHED | sinceImagePushed |
| SINCE_IMAGE_PULLED | sinceImagePulled |
| SINCE_IMAGE_TRANSITIONED | sinceImageTransitioned |
| Value |
|---|
imageCountMoreThan |
sinceImagePushed |
sinceImagePulled |
sinceImageTransitioned |
LifecyclePolicyDocument, LifecyclePolicyDocumentArgs
Represents an ECR lifecycle policy document.LifecyclePolicyRule, LifecyclePolicyRuleArgs
Represents a rule in an ECR lifecycle policy.LifecyclePolicySelection, LifecyclePolicySelectionArgs
Represents selection criteria for an ECR lifecycle policy rule.- CountNumber
int
- The count number to use with the count type.
- CountType
string | Pulumi.Aws.Ecr.LifecyclePolicyCountType
- The type of count to perform. Either 'imageCountMoreThan', 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'.
- TagStatus
string | Pulumi.Aws.Ecr.LifecyclePolicyTagStatus
- The tag status of the image. Either 'tagged', 'untagged', or 'any'.
- CountUnit
string
- The unit of time for count types based on image age. Required when 'countType' is 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'. The only supported value is 'days'.
- StorageClass
string
- The image storage class to select. Required when 'countType' is 'sinceImageTransitioned' (must be 'archive'). For 'imageCountMoreThan', 'sinceImagePushed', and 'sinceImagePulled', the only supported value is 'standard'. If omitted, ECR uses 'standard'.
- TagPrefixList
List<string>
- A list of image tag prefixes on which to take action.
- CountNumber
int
- The count number to use with the count type.
- CountType
string | LifecyclePolicyCountType
- The type of count to perform. Either 'imageCountMoreThan', 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'.
- TagStatus
string | LifecyclePolicyTagStatus
- The tag status of the image. Either 'tagged', 'untagged', or 'any'.
- CountUnit
string
- The unit of time for count types based on image age. Required when 'countType' is 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'. The only supported value is 'days'.
- StorageClass
string
- The image storage class to select. Required when 'countType' is 'sinceImageTransitioned' (must be 'archive'). For 'imageCountMoreThan', 'sinceImagePushed', and 'sinceImagePulled', the only supported value is 'standard'. If omitted, ECR uses 'standard'.
- TagPrefixList
[]string
- A list of image tag prefixes on which to take action.
- count_number
number
- The count number to use with the count type.
- count_type
string | "imageCountMoreThan" | "sinceImagePushed" | "sinceImagePulled" | "sinceImageTransitioned"
- The type of count to perform. Either 'imageCountMoreThan', 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'.
- tag_status
string | "tagged" | "untagged" | "any"
- The tag status of the image. Either 'tagged', 'untagged', or 'any'.
- count_unit
string
- The unit of time for count types based on image age. Required when 'countType' is 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'. The only supported value is 'days'.
- storage_class
string
- The image storage class to select. Required when 'countType' is 'sinceImageTransitioned' (must be 'archive'). For 'imageCountMoreThan', 'sinceImagePushed', and 'sinceImagePulled', the only supported value is 'standard'. If omitted, ECR uses 'standard'.
- tag_prefix_list
list(string)
- A list of image tag prefixes on which to take action.
- countNumber
Integer
- The count number to use with the count type.
- countType
String | LifecyclePolicyCountType
- The type of count to perform. Either 'imageCountMoreThan', 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'.
- tagStatus
String | LifecyclePolicyTagStatus
- The tag status of the image. Either 'tagged', 'untagged', or 'any'.
- countUnit
String
- The unit of time for count types based on image age. Required when 'countType' is 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'. The only supported value is 'days'.
- storageClass
String
- The image storage class to select. Required when 'countType' is 'sinceImageTransitioned' (must be 'archive'). For 'imageCountMoreThan', 'sinceImagePushed', and 'sinceImagePulled', the only supported value is 'standard'. If omitted, ECR uses 'standard'.
- tagPrefixList
List<String>
- A list of image tag prefixes on which to take action.
- countNumber
number
- The count number to use with the count type.
- countType
string | LifecyclePolicyCountType
- The type of count to perform. Either 'imageCountMoreThan', 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'.
- tagStatus
string | LifecyclePolicyTagStatus
- The tag status of the image. Either 'tagged', 'untagged', or 'any'.
- countUnit
string
- The unit of time for count types based on image age. Required when 'countType' is 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'. The only supported value is 'days'.
- storageClass
string
- The image storage class to select. Required when 'countType' is 'sinceImageTransitioned' (must be 'archive'). For 'imageCountMoreThan', 'sinceImagePushed', and 'sinceImagePulled', the only supported value is 'standard'. If omitted, ECR uses 'standard'.
- tagPrefixList
string[]
- A list of image tag prefixes on which to take action.
- count_number
int
- The count number to use with the count type.
- count_type
str | LifecyclePolicyCountType
- The type of count to perform. Either 'imageCountMoreThan', 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'.
- tag_status
str | LifecyclePolicyTagStatus
- The tag status of the image. Either 'tagged', 'untagged', or 'any'.
- count_unit
str
- The unit of time for count types based on image age. Required when 'countType' is 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'. The only supported value is 'days'.
- storage_class
str
- The image storage class to select. Required when 'countType' is 'sinceImageTransitioned' (must be 'archive'). For 'imageCountMoreThan', 'sinceImagePushed', and 'sinceImagePulled', the only supported value is 'standard'. If omitted, ECR uses 'standard'.
- tag_prefix_list
Sequence[str]
- A list of image tag prefixes on which to take action.
- countNumber
Number
- The count number to use with the count type.
- countType
String | "imageCountMoreThan" | "sinceImagePushed" | "sinceImagePulled" | "sinceImageTransitioned"
- The type of count to perform. Either 'imageCountMoreThan', 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'.
- tagStatus
String | "tagged" | "untagged" | "any"
- The tag status of the image. Either 'tagged', 'untagged', or 'any'.
- countUnit
String
- The unit of time for count types based on image age. Required when 'countType' is 'sinceImagePushed', 'sinceImagePulled', or 'sinceImageTransitioned'. The only supported value is 'days'.
- storageClass
String
- The image storage class to select. Required when 'countType' is 'sinceImageTransitioned' (must be 'archive'). For 'imageCountMoreThan', 'sinceImagePushed', and 'sinceImagePulled', the only supported value is 'standard'. If omitted, ECR uses 'standard'.
- tagPrefixList
List<String>
- A list of image tag prefixes on which to take action.
| Name | Value |
|---|
| Tagged | tagged |
| Untagged | untagged |
| Any | any |
| Name | Value |
|---|
| LifecyclePolicyTagStatusTagged | tagged |
| LifecyclePolicyTagStatusUntagged | untagged |
| LifecyclePolicyTagStatusAny | any |
| Name | Value |
|---|
| Tagged | tagged |
| Untagged | untagged |
| Any | any |
| Name | Value |
|---|
| Tagged | tagged |
| Untagged | untagged |
| Any | any |
| Name | Value |
|---|
| TAGGED | tagged |
| UNTAGGED | untagged |
| ANY | any |
Import
Identity Schema
Required
repository - (String) Name of the ECR repository.
Optional
accountId (String) AWS Account where this resource is managed.region (String) Region where this resource is managed.
Using pulumi import, import ECR Lifecycle Policy using the name of the repository. For example:
$ pulumi import aws:ecr/lifecyclePolicy:LifecyclePolicy example tf-example
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
aws Terraform Provider.