import * as core from "@terrascript/core"; export interface EncryptionConfigurationArgs extends core.SchemaArgs { encryptionType?: string | core.StringOut; kmsKey?: string | core.StringOut; } export class EncryptionConfiguration extends core.Schema { @core.attr(String) public encryptionType?: string | core.StringOut; @core.attr(String, { computed: true }) public kmsKey?: string | core.StringOut; } export interface ImageScanningConfigurationArgs extends core.SchemaArgs { scanOnPush: boolean | core.BooleanOut; } export class ImageScanningConfiguration extends core.Schema { @core.attr(Boolean) public scanOnPush!: boolean | core.BooleanOut; } export interface RepositoryArgs extends core.ResourceArgs { /** * (Optional) Encryption configuration for the repository. See [below for schema](#encryption_configura * tion). */ encryptionConfiguration?: | core.Array | core.ArrayOut; /** * (Optional) If `true`, will delete the repository even if it contains images. */ forceDelete?: boolean | core.BooleanOut; /** * (Optional) Configuration block that defines image scanning configuration for the repository. By defa * ult, image scanning must be manually triggered. See the [ECR User Guide](https://docs.aws.amazon.com * /AmazonECR/latest/userguide/image-scanning.html) for more information about image scanning. */ imageScanningConfiguration?: ImageScanningConfiguration; /** * (Optional) The tag mutability setting for the repository. Must be one of: `MUTABLE` or `IMMUTABLE`. * Defaults to `MUTABLE`. */ imageTagMutability?: string | core.StringOut; /** * (Required) Name of the repository. */ name: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class Repository extends core.Resource { /** * Full ARN of the repository. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Encryption configuration for the repository. See [below for schema](#encryption_configura * tion). */ @core.attr(EncryptionConfiguration, { kind: "array" }) public encryptionConfiguration?: | core.Array | core.ArrayOut; /** * (Optional) If `true`, will delete the repository even if it contains images. */ @core.attr(Boolean) public forceDelete?: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Configuration block that defines image scanning configuration for the repository. By defa * ult, image scanning must be manually triggered. See the [ECR User Guide](https://docs.aws.amazon.com * /AmazonECR/latest/userguide/image-scanning.html) for more information about image scanning. */ @core.attr(ImageScanningConfiguration) public imageScanningConfiguration?: ImageScanningConfiguration; /** * (Optional) The tag mutability setting for the repository. Must be one of: `MUTABLE` or `IMMUTABLE`. * Defaults to `MUTABLE`. */ @core.attr(String) public imageTagMutability?: string | core.StringOut; /** * (Required) Name of the repository. */ @core.attr(String) public name!: string | core.StringOut; /** * The registry ID where the repository was created. */ @core.attr(String, { computed: true }) public registryId!: string | core.StringOut; /** * The URL of the repository (in the form `aws_account_id.dkr.ecr.region.amazonaws.com/repositoryName`) * . */ @core.attr(String, { computed: true }) public repositoryUrl!: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: RepositoryArgs) { super(name, "aws_ecr_repository", args); } public override getNamespace(): string { return "aws_ecr"; } }