import * as core from "@terrascript/core"; export interface DomainValidationOptionsArgs extends core.SchemaArgs { domainName: string | core.StringOut; resourceRecordName: string | core.StringOut; resourceRecordType: string | core.StringOut; resourceRecordValue: string | core.StringOut; } export class DomainValidationOptions extends core.Schema { @core.attr(String, { computed: true }) public domainName!: string | core.StringOut; @core.attr(String, { computed: true }) public resourceRecordName!: string | core.StringOut; @core.attr(String, { computed: true }) public resourceRecordType!: string | core.StringOut; @core.attr(String, { computed: true }) public resourceRecordValue!: string | core.StringOut; } export interface ValidationOptionArgs extends core.SchemaArgs { domainName: string | core.StringOut; validationDomain: string | core.StringOut; } export class ValidationOption extends core.Schema { @core.attr(String) public domainName!: string | core.StringOut; @core.attr(String) public validationDomain!: string | core.StringOut; } export interface OptionsArgs extends core.SchemaArgs { certificateTransparencyLoggingPreference?: string | core.StringOut; } export class Options extends core.Schema { @core.attr(String) public certificateTransparencyLoggingPreference?: string | core.StringOut; } export interface CertificateArgs extends core.ResourceArgs { /** * (Required) ARN of an ACM PCA */ certificateAuthorityArn?: string | core.StringOut; /** * (Required) The certificate's PEM-formatted public key */ certificateBody?: string | core.StringOut; /** * (Optional) The certificate's PEM-formatted chain */ certificateChain?: string | core.StringOut; /** * (Required) A domain name for which the certificate should be issued */ domainName?: string | core.StringOut; /** * (Optional) Configuration block used to set certificate options. Detailed below. */ options?: Options; /** * (Required) The certificate's PEM-formatted private key */ privateKey?: string | core.StringOut; /** * (Optional) Set of domains that should be SANs in the issued certificate. To remove all elements * of a previously configured list, set this value equal to an empty list (`[]`) or use the [`terraform * taint` command](https://www.terraform.io/docs/commands/taint.html) to trigger recreation. */ subjectAlternativeNames?: core.Array | core.ArrayOut; /** * (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; /** * (Required) Which method to use for validation. `DNS` or `EMAIL` are valid, `NONE` can be used fo * r certificates that were imported into ACM and then into Terraform. */ validationMethod?: string | core.StringOut; /** * (Optional) Configuration block used to specify information about the initial validation of each * domain name. Detailed below. */ validationOption?: | core.Array | core.ArrayOut; } export class Certificate extends core.Resource { /** * The ARN of the certificate */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) ARN of an ACM PCA */ @core.attr(String) public certificateAuthorityArn?: string | core.StringOut; /** * (Required) The certificate's PEM-formatted public key */ @core.attr(String) public certificateBody?: string | core.StringOut; /** * (Optional) The certificate's PEM-formatted chain */ @core.attr(String) public certificateChain?: string | core.StringOut; /** * (Required) A domain name for which the certificate should be issued */ @core.attr(String, { computed: true }) public domainName?: string | core.StringOut; /** * Set of domain validation objects which can be used to complete certificate validation. Can have more * than one element, e.g., if SANs are defined. Only set if `DNS`-validation was used. */ @core.attr(DomainValidationOptions, { computed: true, kind: "array" }) public domainValidationOptions!: | core.Array | core.ArrayOut; /** * The ARN of the certificate */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The expiration date and time of the certificate. */ @core.attr(String, { computed: true }) public notAfter!: string | core.StringOut; /** * The start of the validity period of the certificate. */ @core.attr(String, { computed: true }) public notBefore!: string | core.StringOut; /** * (Optional) Configuration block used to set certificate options. Detailed below. */ @core.attr(Options) public options?: Options; /** * (Required) The certificate's PEM-formatted private key */ @core.attr(String) public privateKey?: string | core.StringOut; /** * Status of the certificate. */ @core.attr(String, { computed: true }) public status!: string | core.StringOut; /** * (Optional) Set of domains that should be SANs in the issued certificate. To remove all elements * of a previously configured list, set this value equal to an empty list (`[]`) or use the [`terraform * taint` command](https://www.terraform.io/docs/commands/taint.html) to trigger recreation. */ @core.attr(String, { computed: true, kind: "array" }) public subjectAlternativeNames?: | core.Array | core.ArrayOut; /** * (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; /** * A list of addresses that received a validation E-Mail. Only set if `EMAIL`-validation was used. */ @core.attr(String, { computed: true, kind: "array" }) public validationEmails!: core.Array | core.ArrayOut; /** * (Required) Which method to use for validation. `DNS` or `EMAIL` are valid, `NONE` can be used fo * r certificates that were imported into ACM and then into Terraform. */ @core.attr(String, { computed: true }) public validationMethod?: string | core.StringOut; /** * (Optional) Configuration block used to specify information about the initial validation of each * domain name. Detailed below. */ @core.attr(ValidationOption, { kind: "array" }) public validationOption?: | core.Array | core.ArrayOut; constructor(name: string, args?: CertificateArgs) { super(name, "aws_acm_certificate", args); } public override getNamespace(): string { return "aws_acm"; } }