import * as core from "@terrascript/core"; export interface EndpointConfigurationArgs extends core.SchemaArgs { types: core.Array | core.ArrayOut; } export class EndpointConfiguration extends core.Schema { @core.attr(String, { kind: "array" }) public types!: core.Array | core.ArrayOut; } export interface MutualTlsAuthenticationArgs extends core.SchemaArgs { truststoreUri: string | core.StringOut; truststoreVersion?: string | core.StringOut; } export class MutualTlsAuthentication extends core.Schema { @core.attr(String) public truststoreUri!: string | core.StringOut; @core.attr(String) public truststoreVersion?: string | core.StringOut; } export interface DomainNameArgs extends core.ResourceArgs { /** * (Optional) ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. * Used when an edge-optimized domain name is desired. Conflicts with `certificate_name`, `certificate * _body`, `certificate_chain`, `certificate_private_key`, `regional_certificate_arn`, and `regional_ce * rtificate_name`. */ certificateArn?: string | core.StringOut; /** * (Optional) Certificate issued for the domain name being registered, in PEM format. Only valid for `E * DGE` endpoint configuration type. Conflicts with `certificate_arn`, `regional_certificate_arn`, and * regional_certificate_name`. */ certificateBody?: string | core.StringOut; /** * (Optional) Certificate for the CA that issued the certificate, along with any intermediate CA certif * icates required to create an unbroken chain to a certificate trusted by the intended API clients. On * ly valid for `EDGE` endpoint configuration type. Conflicts with `certificate_arn`, `regional_certifi * cate_arn`, and `regional_certificate_name`. */ certificateChain?: string | core.StringOut; /** * (Optional) Unique name to use when registering this certificate as an IAM server certificate. Confli * cts with `certificate_arn`, `regional_certificate_arn`, and `regional_certificate_name`. Required if * certificate_arn` is not set. */ certificateName?: string | core.StringOut; /** * (Optional) Private key associated with the domain certificate given in `certificate_body`. Only vali * d for `EDGE` endpoint configuration type. Conflicts with `certificate_arn`, `regional_certificate_ar * n`, and `regional_certificate_name`. */ certificatePrivateKey?: string | core.StringOut; /** * (Required) Fully-qualified domain name to register. */ domainName: string | core.StringOut; /** * (Optional) Configuration block defining API endpoint information including type. See below. */ endpointConfiguration?: EndpointConfiguration; /** * (Optional) Mutual TLS authentication configuration for the domain name. See below. */ mutualTlsAuthentication?: MutualTlsAuthentication; /** * (Optional) ARN of the AWS-issued certificate used to validate custom domain ownership (when `certifi * cate_arn` is issued via an ACM Private CA or `mutual_tls_authentication` is configured with an ACM-i * mported certificate.) */ ownershipVerificationCertificateArn?: string | core.StringOut; /** * (Optional) ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. * Used when a regional domain name is desired. Conflicts with `certificate_arn`, `certificate_name`, * certificate_body`, `certificate_chain`, and `certificate_private_key`. */ regionalCertificateArn?: string | core.StringOut; /** * (Optional) User-friendly name of the certificate that will be used by regional endpoint for this dom * ain name. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_cha * in`, and `certificate_private_key`. */ regionalCertificateName?: string | core.StringOut; /** * (Optional) Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values a * re `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection. */ securityPolicy?: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block). */ tagsAll?: core.Map | core.MapOut; } export class DomainName extends core.Resource { /** * ARN of domain name. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. * Used when an edge-optimized domain name is desired. Conflicts with `certificate_name`, `certificate * _body`, `certificate_chain`, `certificate_private_key`, `regional_certificate_arn`, and `regional_ce * rtificate_name`. */ @core.attr(String) public certificateArn?: string | core.StringOut; /** * (Optional) Certificate issued for the domain name being registered, in PEM format. Only valid for `E * DGE` endpoint configuration type. Conflicts with `certificate_arn`, `regional_certificate_arn`, and * regional_certificate_name`. */ @core.attr(String) public certificateBody?: string | core.StringOut; /** * (Optional) Certificate for the CA that issued the certificate, along with any intermediate CA certif * icates required to create an unbroken chain to a certificate trusted by the intended API clients. On * ly valid for `EDGE` endpoint configuration type. Conflicts with `certificate_arn`, `regional_certifi * cate_arn`, and `regional_certificate_name`. */ @core.attr(String) public certificateChain?: string | core.StringOut; /** * (Optional) Unique name to use when registering this certificate as an IAM server certificate. Confli * cts with `certificate_arn`, `regional_certificate_arn`, and `regional_certificate_name`. Required if * certificate_arn` is not set. */ @core.attr(String) public certificateName?: string | core.StringOut; /** * (Optional) Private key associated with the domain certificate given in `certificate_body`. Only vali * d for `EDGE` endpoint configuration type. Conflicts with `certificate_arn`, `regional_certificate_ar * n`, and `regional_certificate_name`. */ @core.attr(String) public certificatePrivateKey?: string | core.StringOut; /** * Upload date associated with the domain certificate. */ @core.attr(String, { computed: true }) public certificateUploadDate!: string | core.StringOut; /** * Hostname created by Cloudfront to represent the distribution that implements this domain name mappin * g. */ @core.attr(String, { computed: true }) public cloudfrontDomainName!: string | core.StringOut; /** * For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias re * cord for the distribution. */ @core.attr(String, { computed: true }) public cloudfrontZoneId!: string | core.StringOut; /** * (Required) Fully-qualified domain name to register. */ @core.attr(String) public domainName!: string | core.StringOut; /** * (Optional) Configuration block defining API endpoint information including type. See below. */ @core.attr(EndpointConfiguration, { computed: true }) public endpointConfiguration?: EndpointConfiguration; /** * Internal identifier assigned to this domain name by API Gateway. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Mutual TLS authentication configuration for the domain name. See below. */ @core.attr(MutualTlsAuthentication) public mutualTlsAuthentication?: MutualTlsAuthentication; /** * (Optional) ARN of the AWS-issued certificate used to validate custom domain ownership (when `certifi * cate_arn` is issued via an ACM Private CA or `mutual_tls_authentication` is configured with an ACM-i * mported certificate.) */ @core.attr(String, { computed: true }) public ownershipVerificationCertificateArn?: string | core.StringOut; /** * (Optional) ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. * Used when a regional domain name is desired. Conflicts with `certificate_arn`, `certificate_name`, * certificate_body`, `certificate_chain`, and `certificate_private_key`. */ @core.attr(String) public regionalCertificateArn?: string | core.StringOut; /** * (Optional) User-friendly name of the certificate that will be used by regional endpoint for this dom * ain name. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_cha * in`, and `certificate_private_key`. */ @core.attr(String) public regionalCertificateName?: string | core.StringOut; /** * Hostname for the custom domain's regional endpoint. */ @core.attr(String, { computed: true }) public regionalDomainName!: string | core.StringOut; /** * Hosted zone ID that can be used to create a Route53 alias record for the regional endpoint. */ @core.attr(String, { computed: true }) public regionalZoneId!: string | core.StringOut; /** * (Optional) Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values a * re `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection. */ @core.attr(String, { computed: true }) public securityPolicy?: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: DomainNameArgs) { super(name, "aws_api_gateway_domain_name", args); } public override getNamespace(): string { return "aws_api_gateway"; } }