{"id":21901363,"url":"https://github.com/zoro16/terraform-cloudflare-records","last_synced_at":"2026-04-29T09:32:43.013Z","repository":{"id":198467960,"uuid":"700859565","full_name":"zoro16/terraform-cloudflare-records","owner":"zoro16","description":"Terraform module to create/update DNS Records in Cloudflare","archived":false,"fork":false,"pushed_at":"2024-06-22T17:11:38.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-02T17:41:20.342Z","etag":null,"topics":["cloudflare-record","terraform","terraform-cloudflare-module","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/zoro16/records/cloudflare/latest","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zoro16.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-05T12:45:11.000Z","updated_at":"2024-06-22T17:11:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"d25a273f-9cf6-49f9-a676-18c4302d3498","html_url":"https://github.com/zoro16/terraform-cloudflare-records","commit_stats":null,"previous_names":["zoro16/terraform-cloudflare-records"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/zoro16/terraform-cloudflare-records","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoro16%2Fterraform-cloudflare-records","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoro16%2Fterraform-cloudflare-records/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoro16%2Fterraform-cloudflare-records/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoro16%2Fterraform-cloudflare-records/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zoro16","download_url":"https://codeload.github.com/zoro16/terraform-cloudflare-records/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoro16%2Fterraform-cloudflare-records/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32419973,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare-record","terraform","terraform-cloudflare-module","terraform-module"],"created_at":"2024-11-28T15:13:16.437Z","updated_at":"2026-04-29T09:32:42.996Z","avatar_url":"https://github.com/zoro16.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Description\n\nTerraform module to create/update Cloudflare DNS Records.\n\n\n\n\n## Usage\n\n```hcl\nprovider \"cloudflare\" {\n  api_token = var.cloudflare_api_token\n}\n\ndata \"cloudflare_zone\" \"this\" {\n  name = \"example.com\"\n}\n\nmodule \"records\" {\n  source = \"../../\"\n\n  records = [\n    {\n      name    = \"mail\"\n      proxied = false\n      ttl     = 60\n      type    = \"A\"\n      value   = \"10.10.10.10\"\n      zone_id = data.cloudflare_zone.this.id\n    },\n    {\n      name    = \"_25._tcp.mail\"\n      proxied = false\n      ttl     = 60\n      type    = \"TLSA\"\n      zone_id = data.cloudflare_zone.this.id\n      data = {\n        certificate   = \"T8kKkgeLqC5pi5tVfUN0Nf3vJMzb6NDAB4IBwrOHKunmCSNLHqYgrGnCUAN9SulQ\"\n        matching_type = 1\n        selector      = 1\n        usage         = 3\n      }\n    },\n  ]\n}\n\n```\n\n\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.13.1 |\n| \u003ca name=\"requirement_cloudflare\"\u003e\u003c/a\u003e [cloudflare](#requirement\\_cloudflare) | \u003e= 3.16.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_cloudflare\"\u003e\u003c/a\u003e [cloudflare](#provider\\_cloudflare) | \u003e= 3.16.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [cloudflare_record.this](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/record) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_records\"\u003e\u003c/a\u003e [records](#input\\_records) | List of Maps of the records.\u003cbr\u003e\u003cbr\u003e`name`\u003cbr\u003e   The name of the record.\u003cbr\u003e   Modifying this attribute will force creation of a new resource.\u003cbr\u003e\u003cbr\u003e`type`\u003cbr\u003e    The type of the record. Available values: [A, AAAA, CAA, CNAME, TXT, SRV, LOC, MX, NS,\u003cbr\u003e    SPF, CERT, DNSKEY, DS, NAPTR, SMIMEA, SSHFP, TLSA, URI, PTR, HTTPS, SVCB].\u003cbr\u003e    Modifying this attribute will force creation of a new resource.\u003cbr\u003e\u003cbr\u003e`zone_id`\u003cbr\u003e     The zone identifier to target for the resource.\u003cbr\u003e     Modifying this attribute will force creation of a new resource.\u003cbr\u003e\u003cbr\u003e`allow_overwrite`\u003cbr\u003e    Allow creation of this record in Terraform to overwrite an existing record, if any.\u003cbr\u003e    This does not affect the ability to update the record in Terraform and does not prevent\u003cbr\u003e    other resources within Terraform or manual changes outside Terraform from overwriting this record.\u003cbr\u003e    This configuration is not recommended for most environments. Defaults to false.\u003cbr\u003e\u003cbr\u003e`comment`\u003cbr\u003e     Comments or notes about the DNS record. This field has no effect on DNS responses.\u003cbr\u003e\u003cbr\u003e`priority`\u003cbr\u003e    The priority of the record.\u003cbr\u003e\u003cbr\u003e`proxied`\u003cbr\u003e    Whether the record gets Cloudflare's origin protection.\u003cbr\u003e\u003cbr\u003e`tags`\u003cbr\u003e    Custom tags for the DNS record.\u003cbr\u003e\u003cbr\u003e`ttl`\u003cbr\u003e    The TTL of the record.\u003cbr\u003e\u003cbr\u003e`value`\u003cbr\u003e    The value of the record. Conflicts with data.\u003cbr\u003e\u003cbr\u003e`timeouts`\u003cbr\u003e    (Block, Optional) The Timeout settings.\u003cbr\u003e\u003cbr\u003e`data`\u003cbr\u003e     (Block List, Max: 1) Map of attributes that constitute the record value. Conflicts with value. | \u003cpre\u003elist(object({\u003cbr\u003e    name            = string\u003cbr\u003e    value           = optional(string)\u003cbr\u003e    type            = string\u003cbr\u003e    ttl             = number\u003cbr\u003e    proxied         = bool\u003cbr\u003e    zone_id         = string\u003cbr\u003e    allow_overwrite = optional(bool)\u003cbr\u003e    priority        = optional(number)\u003cbr\u003e\u003cbr\u003e    tags    = optional(set(string))\u003cbr\u003e    comment = optional(string)\u003cbr\u003e\u003cbr\u003e    data = optional(object({\u003cbr\u003e      algorithm      = optional(number)\u003cbr\u003e      altitude       = optional(number)\u003cbr\u003e      certificate    = optional(string)\u003cbr\u003e      content        = optional(string)\u003cbr\u003e      digest         = optional(string)\u003cbr\u003e      digest_type    = optional(number)\u003cbr\u003e      fingerprint    = optional(string)\u003cbr\u003e      flags          = optional(string)\u003cbr\u003e      key_tag        = optional(number)\u003cbr\u003e      lat_degrees    = optional(number)\u003cbr\u003e      lat_direction  = optional(string)\u003cbr\u003e      lat_minutes    = optional(number)\u003cbr\u003e      lat_seconds    = optional(number)\u003cbr\u003e      long_degrees   = optional(number)\u003cbr\u003e      long_direction = optional(string)\u003cbr\u003e      long_minutes   = optional(number)\u003cbr\u003e      long_seconds   = optional(number)\u003cbr\u003e      matching_type  = optional(number)\u003cbr\u003e      name           = optional(string)\u003cbr\u003e      order          = optional(number)\u003cbr\u003e      port           = optional(number)\u003cbr\u003e      precision_horz = optional(number)\u003cbr\u003e      precision_vert = optional(number)\u003cbr\u003e      preference     = optional(number)\u003cbr\u003e      priority       = optional(number)\u003cbr\u003e      proto          = optional(string)\u003cbr\u003e      protocol       = optional(number)\u003cbr\u003e      public_key     = optional(string)\u003cbr\u003e      regex          = optional(string)\u003cbr\u003e      replacement    = optional(string)\u003cbr\u003e      selector       = optional(number)\u003cbr\u003e      service        = optional(string)\u003cbr\u003e      size           = optional(number)\u003cbr\u003e      tag            = optional(string)\u003cbr\u003e      target         = optional(string)\u003cbr\u003e      type           = optional(number)\u003cbr\u003e      usage          = optional(number)\u003cbr\u003e      value          = optional(string)\u003cbr\u003e      weight         = optional(number)\u003cbr\u003e    }))\u003cbr\u003e\u003cbr\u003e    timeouts = optional(object({\u003cbr\u003e      create = optional(string)\u003cbr\u003e      update = optional(string)\u003cbr\u003e    }))\u003cbr\u003e  }))\u003c/pre\u003e | \u003cpre\u003e[\u003cbr\u003e  {\u003cbr\u003e    \"allow_overwrite\": null,\u003cbr\u003e    \"comment\": null,\u003cbr\u003e    \"data\": null,\u003cbr\u003e    \"name\": null,\u003cbr\u003e    \"priority\": null,\u003cbr\u003e    \"proxied\": null,\u003cbr\u003e    \"tags\": null,\u003cbr\u003e    \"timeouts\": null,\u003cbr\u003e    \"ttl\": null,\u003cbr\u003e    \"type\": null,\u003cbr\u003e    \"value\": null,\u003cbr\u003e    \"zone_id\": null\u003cbr\u003e  }\u003cbr\u003e]\u003c/pre\u003e | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_records\"\u003e\u003c/a\u003e [records](#output\\_records) | Records output:\u003cbr\u003e\u003cbr\u003e    * `created_on` (String) The RFC3339 timestamp of when the record was created.\u003cbr\u003e    * `hostname` (String) The FQDN of the record.\u003cbr\u003e    * `id` (String) The ID of this resource.\u003cbr\u003e    * `metadata` (Map of String) A key-value map of string metadata Cloudflare associates with the record.\u003cbr\u003e        ** `auto_added` (Boolean)\u003cbr\u003e        ** `managed_by_apps` (Boolean)\u003cbr\u003e        ** `managed_by_argo_tunnel` (Boolean)\u003cbr\u003e        ** `source` (String)\u003cbr\u003e\u003cbr\u003e    * `modified_on` (String) The RFC3339 timestamp of when the record was last modified.\u003cbr\u003e    * `proxiable` (Boolean) Shows whether this record can be proxied. |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoro16%2Fterraform-cloudflare-records","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoro16%2Fterraform-cloudflare-records","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoro16%2Fterraform-cloudflare-records/lists"}