import * as core from "@terrascript/core"; export interface DomainNameConfigurationArgs extends core.SchemaArgs { certificateArn: string | core.StringOut; endpointType: string | core.StringOut; hostedZoneId: string | core.StringOut; ownershipVerificationCertificateArn?: string | core.StringOut; securityPolicy: string | core.StringOut; targetDomainName: string | core.StringOut; } export class DomainNameConfiguration extends core.Schema { @core.attr(String) public certificateArn!: string | core.StringOut; @core.attr(String) public endpointType!: string | core.StringOut; @core.attr(String, { computed: true }) public hostedZoneId!: string | core.StringOut; @core.attr(String, { computed: true }) public ownershipVerificationCertificateArn?: string | core.StringOut; @core.attr(String) public securityPolicy!: string | core.StringOut; @core.attr(String, { computed: true }) public targetDomainName!: string | core.StringOut; } 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 { /** * (Required) Domain name. Must be between 1 and 512 characters in length. */ domainName: string | core.StringOut; /** * (Required) Domain name configuration. See below. */ domainNameConfiguration: DomainNameConfiguration; /** * (Optional) Mutual TLS authentication configuration for the domain name. */ mutualTlsAuthentication?: MutualTlsAuthentication; /** * (Optional) Map of tags to assign to the domain name. If configured with a provider [`default_tags` c * onfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-c * onfiguration-block) present, tags with matching keys will overwrite those defined at the provider-le * vel. */ 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 { /** * [API mapping selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apig * ateway-websocket-api-selection-expressions.html#apigateway-websocket-api-mapping-selection-expressio * ns) for the domain name. */ @core.attr(String, { computed: true }) public apiMappingSelectionExpression!: string | core.StringOut; /** * ARN of the domain name. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) Domain name. Must be between 1 and 512 characters in length. */ @core.attr(String) public domainName!: string | core.StringOut; /** * (Required) Domain name configuration. See below. */ @core.attr(DomainNameConfiguration) public domainNameConfiguration!: DomainNameConfiguration; /** * Domain name identifier. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Mutual TLS authentication configuration for the domain name. */ @core.attr(MutualTlsAuthentication) public mutualTlsAuthentication?: MutualTlsAuthentication; /** * (Optional) Map of tags to assign to the domain name. If configured with a provider [`default_tags` c * onfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-c * onfiguration-block) present, tags with matching keys will overwrite those defined at the provider-le * vel. */ @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_apigatewayv2_domain_name", args); } public override getNamespace(): string { return "aws_apigatewayv2"; } }