import * as core from "@terrascript/core"; export interface WeightedRoutingPolicyArgs extends core.SchemaArgs { weight: number | core.NumberOut; } export class WeightedRoutingPolicy extends core.Schema { @core.attr(Number) public weight!: number | core.NumberOut; } export interface GeolocationRoutingPolicyArgs extends core.SchemaArgs { continent?: string | core.StringOut; country?: string | core.StringOut; subdivision?: string | core.StringOut; } export class GeolocationRoutingPolicy extends core.Schema { @core.attr(String) public continent?: string | core.StringOut; @core.attr(String) public country?: string | core.StringOut; @core.attr(String) public subdivision?: string | core.StringOut; } export interface LatencyRoutingPolicyArgs extends core.SchemaArgs { region: string | core.StringOut; } export class LatencyRoutingPolicy extends core.Schema { @core.attr(String) public region!: string | core.StringOut; } export interface FailoverRoutingPolicyArgs extends core.SchemaArgs { type: string | core.StringOut; } export class FailoverRoutingPolicy extends core.Schema { @core.attr(String) public type!: string | core.StringOut; } export interface AliasArgs extends core.SchemaArgs { evaluateTargetHealth: boolean | core.BooleanOut; name: string | core.StringOut; zoneId: string | core.StringOut; } export class Alias extends core.Schema { @core.attr(Boolean) public evaluateTargetHealth!: boolean | core.BooleanOut; @core.attr(String) public name!: string | core.StringOut; @core.attr(String) public zoneId!: string | core.StringOut; } export interface RecordArgs extends core.ResourceArgs { /** * (Optional) An alias block. Conflicts with `ttl` & `records`. */ alias?: core.Array | core.ArrayOut; /** * (Optional) Allow creation of this record in Terraform to overwrite an existing record, if any. This * does not affect the ability to update the record in Terraform and does not prevent other resources w * ithin Terraform or manual Route 53 changes outside Terraform from overwriting this record. `false` b * y default. This configuration is not recommended for most environments. */ allowOverwrite?: boolean | core.BooleanOut; /** * (Optional) A block indicating the routing behavior when associated health check fails. Conflicts wit * h any other routing policy. [Documented below](#failover-routing-policy). */ failoverRoutingPolicy?: | core.Array | core.ArrayOut; /** * (Optional) A block indicating a routing policy based on the geolocation of the requestor. Conflicts * with any other routing policy. [Documented below](#geolocation-routing-policy). */ geolocationRoutingPolicy?: | core.Array | core.ArrayOut; /** * (Optional) The health check the record should be associated with. */ healthCheckId?: string | core.StringOut; /** * (Optional) A block indicating a routing policy based on the latency between the requestor and an AWS * region. Conflicts with any other routing policy. [Documented below](#latency-routing-policy). */ latencyRoutingPolicy?: | core.Array | core.ArrayOut; /** * (Optional) Set to `true` to indicate a multivalue answer routing policy. Conflicts with any other ro * uting policy. */ multivalueAnswerRoutingPolicy?: boolean | core.BooleanOut; /** * (Required) The name of the record. */ name: string | core.StringOut; /** * (Required for non-alias records) A string list of records. To specify a single record value longer t * han 255 characters such as a TXT record for DKIM, add `\"\"` inside the Terraform configuration stri * ng (e.g., `"first255characters\"\"morecharacters"`). */ records?: core.Array | core.ArrayOut; /** * (Optional) Unique identifier to differentiate records with routing policies from one another. Requir * ed if using `failover`, `geolocation`, `latency`, `multivalue_answer`, or `weighted` routing policie * s documented below. */ setIdentifier?: string | core.StringOut; /** * (Required for non-alias records) The TTL of the record. */ ttl?: number | core.NumberOut; /** * (Required) The record type. Valid values are `A`, `AAAA`, `CAA`, `CNAME`, `DS`, `MX`, `NAPTR`, `NS`, * PTR`, `SOA`, `SPF`, `SRV` and `TXT`. */ type: string | core.StringOut; /** * (Optional) A block indicating a weighted routing policy. Conflicts with any other routing policy. [D * ocumented below](#weighted-routing-policy). */ weightedRoutingPolicy?: | core.Array | core.ArrayOut; /** * (Required) The ID of the hosted zone to contain this record. */ zoneId: string | core.StringOut; } export class Record extends core.Resource { /** * (Optional) An alias block. Conflicts with `ttl` & `records`. */ @core.attr(Alias, { kind: "array" }) public alias?: core.Array | core.ArrayOut; /** * (Optional) Allow creation of this record in Terraform to overwrite an existing record, if any. This * does not affect the ability to update the record in Terraform and does not prevent other resources w * ithin Terraform or manual Route 53 changes outside Terraform from overwriting this record. `false` b * y default. This configuration is not recommended for most environments. */ @core.attr(Boolean, { computed: true }) public allowOverwrite?: boolean | core.BooleanOut; /** * (Optional) A block indicating the routing behavior when associated health check fails. Conflicts wit * h any other routing policy. [Documented below](#failover-routing-policy). */ @core.attr(FailoverRoutingPolicy, { kind: "array" }) public failoverRoutingPolicy?: | core.Array | core.ArrayOut; /** * [FQDN](https://en.wikipedia.org/wiki/Fully_qualified_domain_name) built using the zone domain and `n * ame`. */ @core.attr(String, { computed: true }) public fqdn!: string | core.StringOut; /** * (Optional) A block indicating a routing policy based on the geolocation of the requestor. Conflicts * with any other routing policy. [Documented below](#geolocation-routing-policy). */ @core.attr(GeolocationRoutingPolicy, { kind: "array" }) public geolocationRoutingPolicy?: | core.Array | core.ArrayOut; /** * (Optional) The health check the record should be associated with. */ @core.attr(String) public healthCheckId?: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) A block indicating a routing policy based on the latency between the requestor and an AWS * region. Conflicts with any other routing policy. [Documented below](#latency-routing-policy). */ @core.attr(LatencyRoutingPolicy, { kind: "array" }) public latencyRoutingPolicy?: | core.Array | core.ArrayOut; /** * (Optional) Set to `true` to indicate a multivalue answer routing policy. Conflicts with any other ro * uting policy. */ @core.attr(Boolean) public multivalueAnswerRoutingPolicy?: boolean | core.BooleanOut; /** * (Required) The name of the record. */ @core.attr(String) public name!: string | core.StringOut; /** * (Required for non-alias records) A string list of records. To specify a single record value longer t * han 255 characters such as a TXT record for DKIM, add `\"\"` inside the Terraform configuration stri * ng (e.g., `"first255characters\"\"morecharacters"`). */ @core.attr(String, { kind: "array" }) public records?: core.Array | core.ArrayOut; /** * (Optional) Unique identifier to differentiate records with routing policies from one another. Requir * ed if using `failover`, `geolocation`, `latency`, `multivalue_answer`, or `weighted` routing policie * s documented below. */ @core.attr(String) public setIdentifier?: string | core.StringOut; /** * (Required for non-alias records) The TTL of the record. */ @core.attr(Number) public ttl?: number | core.NumberOut; /** * (Required) The record type. Valid values are `A`, `AAAA`, `CAA`, `CNAME`, `DS`, `MX`, `NAPTR`, `NS`, * PTR`, `SOA`, `SPF`, `SRV` and `TXT`. */ @core.attr(String) public type!: string | core.StringOut; /** * (Optional) A block indicating a weighted routing policy. Conflicts with any other routing policy. [D * ocumented below](#weighted-routing-policy). */ @core.attr(WeightedRoutingPolicy, { kind: "array" }) public weightedRoutingPolicy?: | core.Array | core.ArrayOut; /** * (Required) The ID of the hosted zone to contain this record. */ @core.attr(String) public zoneId!: string | core.StringOut; constructor(name: string, args?: RecordArgs) { super(name, "aws_route53_record", args); } public override getNamespace(): string { return "aws_route53"; } }