Package com.pulumi.aws.ecr
Class RepositoryCreationTemplate
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.ecr.RepositoryCreationTemplate
-
public class RepositoryCreationTemplate extends com.pulumi.resources.CustomResourceProvides an Elastic Container Registry Repository Creation Template. ## Example Usage
## Import Using `pulumi import`, import the ECR Repository Creating Templates using the `prefix`. For example: ```sh $ pulumi import aws:ecr/repositoryCreationTemplate:RepositoryCreationTemplate example example ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; import com.pulumi.aws.ecr.RepositoryCreationTemplate; import com.pulumi.aws.ecr.RepositoryCreationTemplateArgs; import com.pulumi.aws.ecr.inputs.RepositoryCreationTemplateEncryptionConfigurationArgs; 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) { final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("AWS") .identifiers("123456789012") .build()) .sid("new policy") .effect("Allow") .actions( "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload", "ecr:DescribeRepositories", "ecr:GetRepositoryPolicy", "ecr:ListImages", "ecr:DeleteRepository", "ecr:BatchDeleteImage", "ecr:SetRepositoryPolicy", "ecr:DeleteRepositoryPolicy") .build()) .build()); var exampleRepositoryCreationTemplate = new RepositoryCreationTemplate("exampleRepositoryCreationTemplate", RepositoryCreationTemplateArgs.builder() .encryptionConfigurations(RepositoryCreationTemplateEncryptionConfigurationArgs.builder() .encryptionType("AES256") .build()) .prefix("example") .description("An example template") .imageTagMutability("IMMUTABLE") .customRoleArn("arn:aws:iam::123456789012:role/example") .appliedFors("PULL_THROUGH_CACHE") .repositoryPolicy(example.json()) .lifecyclePolicy(""" { \"rules\": [ { \"rulePriority\": 1, \"description\": \"Expire images older than 14 days\", \"selection\": { \"tagStatus\": \"untagged\", \"countType\": \"sinceImagePushed\", \"countUnit\": \"days\", \"countNumber\": 14 }, \"action\": { \"type\": \"expire\" } } ] } """) .resourceTags(Map.of("Foo", "Bar")) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description RepositoryCreationTemplate(java.lang.String name)RepositoryCreationTemplate(java.lang.String name, RepositoryCreationTemplateArgs args)RepositoryCreationTemplate(java.lang.String name, RepositoryCreationTemplateArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.List<java.lang.String>>appliedFors()com.pulumi.core.Output<java.util.Optional<java.lang.String>>customRoleArn()com.pulumi.core.Output<java.util.Optional<java.lang.String>>description()com.pulumi.core.Output<java.util.Optional<java.util.List<RepositoryCreationTemplateEncryptionConfiguration>>>encryptionConfigurations()static RepositoryCreationTemplateget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, RepositoryCreationTemplateState 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.util.Optional<java.lang.String>>imageTagMutability()com.pulumi.core.Output<java.util.Optional<java.util.List<RepositoryCreationTemplateImageTagMutabilityExclusionFilter>>>imageTagMutabilityExclusionFilters()com.pulumi.core.Output<java.util.Optional<java.lang.String>>lifecyclePolicy()com.pulumi.core.Output<java.lang.String>prefix()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>registryId()com.pulumi.core.Output<java.util.Optional<java.lang.String>>repositoryPolicy()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>resourceTags()
-
-
-
Constructor Detail
-
RepositoryCreationTemplate
public RepositoryCreationTemplate(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
RepositoryCreationTemplate
public RepositoryCreationTemplate(java.lang.String name, RepositoryCreationTemplateArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
RepositoryCreationTemplate
public RepositoryCreationTemplate(java.lang.String name, RepositoryCreationTemplateArgs 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
-
appliedFors
public com.pulumi.core.Output<java.util.List<java.lang.String>> appliedFors()
- Returns:
- Which features this template applies to. Must contain one or more of `CREATE_ON_PUSH`, `PULL_THROUGH_CACHE`, or `REPLICATION`.
-
customRoleArn
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> customRoleArn()
- Returns:
- A custom IAM role to use for repository creation. Required if using repository tags or KMS encryption.
-
description
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
- Returns:
- The description for this template.
-
encryptionConfigurations
public com.pulumi.core.Output<java.util.Optional<java.util.List<RepositoryCreationTemplateEncryptionConfiguration>>> encryptionConfigurations()
- Returns:
- Encryption configuration for any created repositories. See below for schema.
-
imageTagMutability
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> imageTagMutability()
- Returns:
- The tag mutability setting for any created repositories. Must be one of: `MUTABLE`, `IMMUTABLE`, `IMMUTABLE_WITH_EXCLUSION`, or `MUTABLE_WITH_EXCLUSION`. Defaults to `MUTABLE`.
-
imageTagMutabilityExclusionFilters
public com.pulumi.core.Output<java.util.Optional<java.util.List<RepositoryCreationTemplateImageTagMutabilityExclusionFilter>>> imageTagMutabilityExclusionFilters()
- Returns:
- Configuration block that defines filters to specify which image tags can override the default tag mutability setting. Only applicable when `imageTagMutability` is set to `IMMUTABLE_WITH_EXCLUSION` or `MUTABLE_WITH_EXCLUSION`. See below for schema.
-
lifecyclePolicy
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> lifecyclePolicy()
- Returns:
- The lifecycle policy document to apply to any created repositories. See more details about [Policy Parameters](http://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html#lifecycle_policy_parameters) in the official AWS docs. Consider using the `aws.ecr.getLifecyclePolicyDocument` dataSource to generate/manage the JSON document used for the `lifecyclePolicy` argument.
-
prefix
public com.pulumi.core.Output<java.lang.String> prefix()
- Returns:
- The repository name prefix to match against. Use `ROOT` to match any prefix that doesn't explicitly match another template.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
registryId
public com.pulumi.core.Output<java.lang.String> registryId()
- Returns:
- The registry ID the repository creation template applies to.
-
repositoryPolicy
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> repositoryPolicy()
- Returns:
- The registry policy document to apply to any created repositories. This is a JSON formatted string. For more information about building IAM policy documents with Terraform, see the AWS IAM Policy Document Guide.
-
resourceTags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> resourceTags()
- Returns:
- A map of tags to assign to any created repositories.
-
get
public static RepositoryCreationTemplate get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable RepositoryCreationTemplateState 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.
-
-