aws.route53-record-set resource¶
Description¶
RecordSet manages one Route 53 record set: a name, a type, and either a set of plain values or an alias to an AWS resource, optionally governed by a single routing policy. Every write -- create and update alike -- is one ChangeResourceRecordSets UPSERT against the hosted zone, gated by a poll until the change reaches INSYNC. The hosted zone, the name, the type, and the set-identifier together identify the record set at the API, so a change to any of them is a different record set and replaces this one; every other field is reconciled in place by the next UPSERT.
Source: internal/service/route53/record_set_rsrc.go:34
Example usage:
imports: {
aws: 'github.com/cloudboss/unobin-library-aws'
}
resources: {
example: aws.route53-record-set {
# Set input fields here.
}
}
Inputs¶
zone-id
string
name
string
type
string
set-identifier
optional(string)
records
list(string)
ttl
optional(integer)
health-check-id
optional(string)
alias
optional(object)
optional(
object({
name: string
zone-id: string
evaluate-target-health: boolean
})
)
weighted-routing-policy
optional(object)
optional(
object({
weight: integer
})
)
latency-routing-policy
optional(object)
optional(
object({
region: string
})
)
failover-routing-policy
optional(object)
optional(
object({
type: string
})
)
geolocation-routing-policy
optional(object)
optional(
object({
continent-code: optional(string)
country-code: optional(string)
subdivision-code: optional(string)
})
)
multivalue-answer-routing-policy
optional(boolean)
Input Constraints¶
Zone id rules
Conditional requirement.
Rule logic
- Require
input.zone-id != null
&& @core.length(input.zone-id) >= 1
Field combinations
Exactly one of alias or records.
Forbidden together: ttl and alias.
Required together: ttl and records.
At most one of weighted-routing-policy, latency-routing-policy, failover-routing-policy, geolocation-routing-policy, or multivalue-answer-routing-policy.
Required together: weighted-routing-policy and set-identifier.
Required together: latency-routing-policy and set-identifier.
Required together: failover-routing-policy and set-identifier.
Required together: geolocation-routing-policy and set-identifier.
Required together: multivalue-answer-routing-policy and set-identifier.
Failover routing policy rules
failover-routing-policy type must be PRIMARY or SECONDARY.
Rule logic
- When
input.failover-routing-policy != null- Require
input.failover-routing-policy.type == 'PRIMARY'
|| input.failover-routing-policy.type == 'SECONDARY'
Latency routing policy rules
latency-routing-policy region must be a valid AWS region.
Rule logic
- When
input.latency-routing-policy != null- Require
input.latency-routing-policy.region == 'us-east-1'
|| input.latency-routing-policy.region == 'us-east-2'
|| input.latency-routing-policy.region == 'us-west-1'
|| input.latency-routing-policy.region == 'us-west-2'
|| input.latency-routing-policy.region == 'ca-central-1'
|| input.latency-routing-policy.region == 'ca-west-1'
|| input.latency-routing-policy.region == 'eu-west-1'
|| input.latency-routing-policy.region == 'eu-west-2'
|| input.latency-routing-policy.region == 'eu-west-3'
|| input.latency-routing-policy.region == 'eu-central-1'
|| input.latency-routing-policy.region == 'eu-central-2'
|| input.latency-routing-policy.region == 'eu-north-1'
|| input.latency-routing-policy.region == 'eu-south-1'
|| input.latency-routing-policy.region == 'eu-south-2'
|| input.latency-routing-policy.region == 'ap-east-1'
|| input.latency-routing-policy.region == 'ap-east-2'
|| input.latency-routing-policy.region == 'ap-south-1'
|| input.latency-routing-policy.region == 'ap-south-2'
|| input.latency-routing-policy.region == 'ap-southeast-1'
|| input.latency-routing-policy.region == 'ap-southeast-2'
|| input.latency-routing-policy.region == 'ap-southeast-3'
|| input.latency-routing-policy.region == 'ap-southeast-4'
|| input.latency-routing-policy.region == 'ap-southeast-5'
|| input.latency-routing-policy.region == 'ap-southeast-6'
|| input.latency-routing-policy.region == 'ap-southeast-7'
|| input.latency-routing-policy.region == 'ap-northeast-1'
|| input.latency-routing-policy.region == 'ap-northeast-2'
|| input.latency-routing-policy.region == 'ap-northeast-3'
|| input.latency-routing-policy.region == 'sa-east-1'
|| input.latency-routing-policy.region == 'me-south-1'
|| input.latency-routing-policy.region == 'me-central-1'
|| input.latency-routing-policy.region == 'af-south-1'
|| input.latency-routing-policy.region == 'il-central-1'
|| input.latency-routing-policy.region == 'mx-central-1'
|| input.latency-routing-policy.region == 'cn-north-1'
|| input.latency-routing-policy.region == 'cn-northwest-1'
|| input.latency-routing-policy.region == 'us-gov-east-1'
|| input.latency-routing-policy.region == 'us-gov-west-1'
|| input.latency-routing-policy.region == 'eusc-de-east-1'
Type rules
Conditional requirement.
Rule logic
- Require
input.type == 'A'
|| input.type == 'AAAA'
|| input.type == 'CAA'
|| input.type == 'CNAME'
|| input.type == 'DS'
|| input.type == 'MX'
|| input.type == 'NAPTR'
|| input.type == 'NS'
|| input.type == 'PTR'
|| input.type == 'SOA'
|| input.type == 'SPF'
|| input.type == 'SRV'
|| input.type == 'TXT'
|| input.type == 'TLSA'
|| input.type == 'SSHFP'
|| input.type == 'SVCB'
|| input.type == 'HTTPS'
Outputs¶
fqdn
string
zone-id
string
name
string
type
string
set-identifier
string