176 lines
4.3 KiB
JSON
176 lines
4.3 KiB
JSON
{
|
|
"slug": "cloudflare-dns-record",
|
|
"kind": "terraform",
|
|
"metadata": {
|
|
"name": "Cloudflare DNS Record",
|
|
"description": "Creates a single Cloudflare DNS record for A, AAAA, CNAME, TXT, or MX with type-specific inputs, TTL, and proxying where supported.",
|
|
"icon": {
|
|
"provider": "selfhst",
|
|
"id": "cloudflare",
|
|
"color": "default"
|
|
},
|
|
"draft": false,
|
|
"version": {
|
|
"name": "1.0.0",
|
|
"source_dep_name": "manual/cloudflare-dns-record"
|
|
}
|
|
},
|
|
"variables": [
|
|
{
|
|
"name": "terraform",
|
|
"title": "Terraform",
|
|
"items": [
|
|
{
|
|
"name": "resource_name",
|
|
"title": "Resource Name",
|
|
"type": "str",
|
|
"default": "dns_record",
|
|
"config": {
|
|
"placeholder": "dns_record"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "record",
|
|
"title": "DNS Record",
|
|
"items": [
|
|
{
|
|
"name": "cloudflare_zone_id",
|
|
"title": "Cloudflare Zone ID",
|
|
"type": "str",
|
|
"config": {
|
|
"placeholder": "123456789"
|
|
},
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "name",
|
|
"title": "Record Name",
|
|
"description": "DNS record name (use @ for the root domain).",
|
|
"type": "str",
|
|
"default": "app",
|
|
"config": {
|
|
"placeholder": "app"
|
|
}
|
|
},
|
|
{
|
|
"name": "record_type",
|
|
"title": "DNS record type",
|
|
"type": "enum",
|
|
"default": "A",
|
|
"config": {
|
|
"options": [
|
|
"A",
|
|
"AAAA",
|
|
"CNAME",
|
|
"TXT",
|
|
"MX"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ttl",
|
|
"title": "TTL",
|
|
"description": "Time to live (1 = automatic, or 60-86400 seconds)",
|
|
"type": "int",
|
|
"default": 1,
|
|
"config": {
|
|
"placeholder": "1",
|
|
"unit": "seconds"
|
|
}
|
|
},
|
|
{
|
|
"name": "ipv4_address",
|
|
"title": "IPv4 Address",
|
|
"description": "IPv4 address for an A record.",
|
|
"type": "str",
|
|
"required": true,
|
|
"needs": [
|
|
"record_type=A"
|
|
],
|
|
"config": {
|
|
"placeholder": "192.0.2.1"
|
|
}
|
|
},
|
|
{
|
|
"name": "ipv6_address",
|
|
"title": "IPv6 Address",
|
|
"description": "IPv6 address for an AAAA record.",
|
|
"type": "str",
|
|
"required": true,
|
|
"needs": [
|
|
"record_type=AAAA"
|
|
],
|
|
"config": {
|
|
"placeholder": "2001:db8::1"
|
|
}
|
|
},
|
|
{
|
|
"name": "target_hostname",
|
|
"title": "Target Hostname",
|
|
"description": "Canonical hostname target for a CNAME record.",
|
|
"type": "str",
|
|
"required": true,
|
|
"needs": [
|
|
"record_type=CNAME"
|
|
],
|
|
"config": {
|
|
"placeholder": "origin.example.com"
|
|
}
|
|
},
|
|
{
|
|
"name": "text_value",
|
|
"title": "TXT Value",
|
|
"description": "Text value for a TXT record.",
|
|
"type": "str",
|
|
"required": true,
|
|
"needs": [
|
|
"record_type=TXT"
|
|
],
|
|
"config": {
|
|
"placeholder": "v=spf1 include:_spf.example.com ~all",
|
|
"textarea": true
|
|
}
|
|
},
|
|
{
|
|
"name": "mail_server",
|
|
"title": "Mail Server",
|
|
"description": "Mail server hostname for an MX record.",
|
|
"type": "str",
|
|
"required": true,
|
|
"needs": [
|
|
"record_type=MX"
|
|
],
|
|
"config": {
|
|
"placeholder": "mail.example.com"
|
|
}
|
|
},
|
|
{
|
|
"name": "priority",
|
|
"title": "Priority",
|
|
"description": "MX record priority (lower value = higher priority).",
|
|
"type": "int",
|
|
"default": 10,
|
|
"required": true,
|
|
"needs": [
|
|
"record_type=MX"
|
|
],
|
|
"config": {
|
|
"placeholder": "10"
|
|
}
|
|
},
|
|
{
|
|
"name": "proxied",
|
|
"title": "Proxy",
|
|
"type": "bool",
|
|
"default": true,
|
|
"needs": [
|
|
"record_type=A,AAAA,CNAME"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|