### Install New Provider and Migrate Terraform State Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/templates/guides/migration-from-timohirt-hetznerdns.md These commands are used to initialize Terraform to download the new provider and then replace the old provider with the new one in the Terraform state file, ensuring a smooth transition. ```sh terraform init terraform state replace-provider timohirt/hetznerdns germanbrew/hetznerdns ``` -------------------------------- ### Create Simple Hetzner DNS Zone Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/resources/zone.md This example demonstrates how to create a basic Hetzner DNS zone with a specified name and Time-To-Live (TTL). ```terraform resource "hetznerdns_zone" "example_com" { name = "example.com" ttl = 3600 } ``` -------------------------------- ### Execute Terraform State Provider Replacement Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/guides/migration-from-timohirt-hetznerdns.md These shell commands guide you through initializing Terraform to download the new provider and then executing the `terraform state replace-provider` command to update the state file, linking existing resources to the new `germanbrew/hetznerdns` provider. ```Shell terraform init terraform state replace-provider timohirt/hetznerdns germanbrew/hetznerdns ``` -------------------------------- ### Example Terraform API Rate Limit Error Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/templates/guides/migration-from-timohirt-hetznerdns.md This snippet provides an example of a rate limit error message that might be encountered when interacting with the HetznerDNS API, indicating too many requests. ```bash Error: API Error read record: error getting record 3c2...: API returned HTTP 429 Too Many Requests error: rate limit exceeded ``` -------------------------------- ### Delegate Hetzner DNS Subdomain Zone Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/resources/zone.md This example illustrates how to delegate a subdomain by creating separate zones for the primary domain and the subdomain, then dynamically adding NS records in the primary zone to point to the subdomain's nameservers. It highlights the dependency that the subdomain zone must exist before creating NS records. ```terraform # Subdomain Zone resource "hetznerdns_zone" "subdomain_example_com" { name = "subdomain.example.com" ttl = 300 } # Primary Domain Zone resource "hetznerdns_zone" "example_com" { name = "example.com" ttl = 300 } # Nameserver Records for the Subdomain ## This block dynamically creates NS records in the primary domain zone to delegate authority to the subdomain. ## Be aware that the zone must be already created before creating the NS records, otherwise the creation will fail. ## Alternatively, you can use the `hetznerdns_nameserver` data source to get the nameservers and create the NS records. resource "hetznerdns_record" "example_com-NS" { for_each = toset(hetznerdns_zone.mydomain_de.ns) zone_id = hetznerdns_zone.example_com.id name = "@" type = "NS" value = each.value } ``` -------------------------------- ### Example Usage: Create Hetzner DNS Records with Terraform Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/resources/record.md This snippet demonstrates how to define various Hetzner DNS record types (A, MX, TXT, SRV) using the `hetznerdns_record` Terraform resource. It shows how to handle root, wildcard, specific subdomains, email, SPF, and SRV records, including how to fetch the zone ID using a data source. ```terraform # Basic Usage data "hetznerdns_zone" "example" { name = "example.com" } # Handle root (example.com) resource "hetznerdns_record" "example_com_root" { zone_id = data.hetznerdns_zone.example.id name = "@" value = "1.2.3.4" type = "A" # You only need to set a TTL if it's different from the zone's TTL above ttl = 300 } # Handle wildcard subdomain (*.example.com) resource "hetznerdns_record" "all_example_com" { zone_id = data.hetznerdns_zone.example.id name = "*" value = "1.2.3.4" type = "A" } # Handle specific subdomain (books.example.com) resource "hetznerdns_record" "books_example_com" { zone_id = data.hetznerdns_zone.example.id name = "books" value = "1.2.3.4" type = "A" } # Handle email (MX record with priority 10) resource "hetznerdns_record" "example_com_email" { zone_id = data.hetznerdns_zone.example.id name = "@" value = "10 mail.example.com" type = "MX" } # SPF record resource "hetznerdns_record" "example_com_spf" { zone_id = data.hetznerdns_zone.example.id name = "@" value = "v=spf1 ip4:1.2.3.4 -all" type = "TXT" } # SRV record resource "hetznerdns_record" "example_com_srv" { zone_id = data.hetznerdns_zone.example.id name = "_ldap._tcp" value = "10 0 389 ldap.example.com." type = "SRV" ttl = 3600 } ``` -------------------------------- ### Configure Hetzner DNS Primary Server with Terraform Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/resources/primary_server.md This example demonstrates how to define a `hetznerdns_zone` and then configure a `hetznerdns_primary_server` resource, linking it to the zone using its ID. It sets the primary server's address and port. ```terraform resource "hetznerdns_zone" "zone1" { name = "zone1.online" ttl = 3600 } resource "hetznerdns_primary_server" "ps1" { zone_id = hetznerdns_zone.zone1.id address = "1.1.1.1" port = 53 } ``` -------------------------------- ### Query Hetzner DNS Nameservers and Create NS Records Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/data-sources/nameservers.md This example demonstrates how to use the `hetznerdns_nameservers` data source to fetch authoritative and primary name servers. It then shows how to iterate over the primary name servers to create `hetznerdns_record` resources for NS records, linking them to a specific zone. ```terraform data "hetznerdns_nameservers" "authoritative" { type = "authoritative" } # Not specifying the type will default to authoritative like above data "hetznerdns_nameservers" "primary" {} resource "hetznerdns_record" "mydomain_de-NS" { for_each = toset(data.hetznerdns_nameservers.primary.ns.*.name) zone_id = hetznerdns_zone.mydomain_de.id name = "@" type = "NS" value = each.value } ``` -------------------------------- ### Create an A Record with Hetzner DNS Terraform Provider Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/README.md This HCL example shows how to define an 'A' type DNS record using the `hetznerdns_record` resource. It specifies the zone ID, record name, type, value (IP address), and Time-To-Live (TTL) for the DNS entry. ```hcl resource "hetznerdns_record" "www" { zone_id = "your_zone_id" name = "www" type = "A" value = "192.0.2.1" ttl = 300 } ``` -------------------------------- ### Example Terraform HetznerDNS Rate Limit Error Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/guides/migration-from-timohirt-hetznerdns.md This snippet provides an example of a common API error encountered when the Hetzner DNS API returns an HTTP 429 (Too Many Requests) status, indicating that rate limits have been exceeded during a Terraform operation. ```Bash Error: API Error read record: error getting record 3c2...: API returned HTTP 429 Too Many Requests error: rate limit exceeded ``` -------------------------------- ### Hetzner DNS API Rate Limit Error Message Example Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/guides/investigating-rate-limits.md An example of the error message returned by the Hetzner DNS API when a rate limit is exceeded. This error indicates that the API returned an HTTP 429 Too Many Requests status code, suggesting an increase in the provider's `max_retries` configuration. ```bash Error: API Error read record: error getting record 3c21...75fb: API returned HTTP 429 Too Many Requests error: rate limit exceeded ``` -------------------------------- ### Configure Hetzner DNS Provider and Create Record Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/index.md This example demonstrates how to configure the `hetznerdns` provider with an API token, retrieve an existing DNS zone by name, fetch a Hetzner Cloud server's IPv4 address, and then create an 'A' record within the specified zone, pointing a subdomain to the server's IP. ```terraform provider "hetznerdns" { api_token = "" } data "hetznerdns_zone" "dns_zone" { name = "example.com" } data "hcloud_server" "web" { name = "web1" } resource "hetznerdns_record" "web" { zone_id = data.hetznerdns_zone.dns_zone.id name = "www" value = hcloud_server.web.ipv4_address type = "A" ttl = 60 } ``` -------------------------------- ### Hetzner DNS API Rate Limit Error Message Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/templates/guides/investigating-rate-limits.md An example of the error message returned by the Hetzner DNS API when a rate limit is exceeded, indicating a 429 Too Many Requests status. This error suggests that the client has sent too many requests in a given time frame. ```bash Error: API Error read record: error getting record 3c21...75fb: API returned HTTP 429 Too Many Requests error: rate limit exceeded ``` -------------------------------- ### Hetzner DNS Terraform Provider Arguments Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/README.md Documentation for the arguments available when configuring the `hetznerdns` Terraform provider. It details required and optional parameters for authentication and zone management, such as the API token and an optional zone ID. ```APIDOC Provider Arguments: token: (Required) Your Hetzner API token. zone_id: (Optional) The ID of the DNS zone you want to manage. ``` -------------------------------- ### Debug Terraform Logs for Hetzner DNS API Rate Limits Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/templates/guides/investigating-rate-limits.md Command to enable debug logging for Terraform, redirecting the output to a specified file. This allows capturing detailed HTTP responses, including all headers, which are crucial for inspecting rate limit information from the Hetzner DNS API. ```bash TF_LOG=DEBUG TF_LOG_PATH=tf_log_debug.log terraform plan ``` -------------------------------- ### Import Existing Hetzner DNS Records Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/resources/record.md This snippet demonstrates how to import an existing Hetzner DNS record into Terraform state. It includes a `curl` command to query the Hetzner DNS API for record IDs and the corresponding `terraform import` command using the retrieved ID. ```shell # A Record can be imported using its `id`. Use the API to get all records of # a zone and then copy the id. # # curl "https://dns.hetzner.com/api/v1/records" \ # -H "Auth-API-Token: $HETZNER_DNS_TOKEN" | jq . # # { # "records": [ # { # "id": "3d60921a49eb384b6335766a", # "type": "TXT", # "name": "google._domainkey", # "value": "\"anything:with:param\"", # "zone_id": "rMu2waTJPbHr4", # "created": "2020-08-18 19:11:02.237 +0000 UTC", # "modified": "2020-08-28 19:51:41.275 +0000 UTC" # }, # { # "id": "ed2416cb6bc8a8055b22222", # "type": "A", # "name": "www", # "value": "1.1.1.1", # "zone_id": "rMu2waTJPbHr4", # "created": "2020-08-27 20:55:38.745 +0000 UTC", # "modified": "2020-08-27 20:55:38.745 +0000 UTC" # } # ] # } ``` ```terraform terraform import hetznerdns_record.dkim_google 3d60921a49eb384b6335766a ``` -------------------------------- ### Tagging and Pushing Git Release Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/RELEASING.md Commands to create a new version tag in Git and push it along with other tags to the remote repository. This action is designed to trigger an automated release workflow on GitHub. ```bash $ git tag v1.0.17 $ git push --tags ``` -------------------------------- ### Import Existing Hetzner DNS Zone Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/resources/zone.md This command demonstrates how to import an existing Hetzner DNS zone into Terraform state using its identifier. ```shell terraform import hetznerdns_zone.zone1 rMu2waTJPbHr4 ``` -------------------------------- ### Import Hetzner DNS Zone with Terraform CLI Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/resources/primary_server.md Illustrates how to import an existing `hetznerdns_zone` resource into Terraform state using the `terraform import` command, specifying the resource address and the external ID. ```shell terraform import hetznerdns_zone.zone1 rMu2waTJPbHr4 ``` -------------------------------- ### HetznerDNS IDNA Function API Reference Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/functions/idna.md Comprehensive API documentation for the `idna` function, detailing its signature, parameters, and return type for integration and usage. ```APIDOC idna(domain string) string domain (String): domain to convert ``` -------------------------------- ### Hetzner DNS Terraform Provider Resources Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/README.md Overview of the Terraform resources provided by the Hetzner DNS provider. It lists resources available for managing individual DNS records (`hetznerdns_record`) and entire DNS zones (`hetznerdns_zone`). ```APIDOC Available Resources: hetznerdns_record: Manage DNS records. hetznerdns_zone: Manage DNS zones. ``` -------------------------------- ### Hetzner DNS Nameservers Data Source Schema Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/data-sources/nameservers.md This section details the schema for the `hetznerdns_nameservers` data source, outlining its configurable options and read-only attributes, including the nested structure for name server details. ```APIDOC hetznerdns_nameservers (Data Source) Optional: type (String) Description: Type of name servers to get data from. Default: "authoritative" Possible values: "authoritative", "secondary", "konsoleh" Read-Only: ns (Attributes Set) Description: Name servers (see nested schema below) Nested Schema for ns: ipv4 (String) Description: IPv4 address of the name server ipv6 (String) Description: IPv6 address of the name server name (String) Description: Name of the name server ``` -------------------------------- ### Debug Terraform Logs for Hetzner DNS API Rate Limit Investigation Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/guides/investigating-rate-limits.md Command to enable debug logging for Terraform, redirecting the extensive output to a file for detailed investigation of HTTP responses and rate limit headers. This helps in understanding the exact rate limit details from the API response. ```bash TF_LOG=DEBUG TF_LOG_PATH=tf_log_debug.log terraform plan ``` -------------------------------- ### API Reference: hetznerdns_record Resource Schema Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/resources/record.md This section details the configuration options for the `hetznerdns_record` Terraform resource. It specifies required and optional arguments, their data types, and descriptions. It also includes the nested `timeouts` block for operation timeouts. ```APIDOC hetznerdns_record Resource: Required: name (String): Name of the DNS record to create type (String): Type of this DNS record (See supported types) value (String): The value of the record (e.g. "192.168.1.1") zone_id (String): ID of the DNS zone to create the record in. Optional: timeouts (Block): Nested schema for operation timeouts. ttl (Number): Time to live of this record Read-Only: id (String): Zone identifier Nested Schema for timeouts: Optional: create (String): Operation Timeouts (e.g., "30s", "2h45m"). Default: 5m delete (String): Operation Timeouts (e.g., "30s", "2h45m"). Default: 5m read (String): Operation Timeouts (e.g., "30s", "2h45m"). Default: 5m update (String): Operation Timeouts (e.g., "30s", "2h45m"). Default: 5m ``` -------------------------------- ### Configure Hetzner DNS Terraform Provider Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/README.md This HCL snippet demonstrates how to configure the Hetzner DNS provider in a Terraform `.tf` file. It requires an API token for authentication with Hetzner's DNS services, which should be replaced with your actual token. ```hcl provider "hetznerdns" { token = "your_api_token" } ``` -------------------------------- ### Replace Terraform HetznerDNS Provider Source Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/templates/guides/migration-from-timohirt-hetznerdns.md This snippet shows how to update the `required_providers` block in Terraform to switch from `timohirt/hetznerdns` to `germanbrew/hetznerdns`, including the recommended version update. ```HCL hetznerdns = { - source = "timohirt/hetznerdns" + source = "germanbrew/hetznerdns" - version = "2.2.0" + version = "3.0.0" # Replace with latest version } ``` -------------------------------- ### Update Terraform HetznerDNS Provider Source Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/guides/migration-from-timohirt-hetznerdns.md This snippet demonstrates how to modify the `required_providers` block in your Terraform configuration to switch the `hetznerdns` provider's `source` from `timohirt/hetznerdns` to `germanbrew/hetznerdns`, along with updating the `version`. ```HCL hetznerdns = { - source = "timohirt/hetznerdns" + source = "germanbrew/hetznerdns" - version = "2.2.0" + version = "3.0.0" # Replace with latest version } ``` -------------------------------- ### Hetzner DNS Records Data Source Schema Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/data-sources/records.md Defines the structure and attributes for the `hetznerdns_records` data source, including required inputs, optional configurations, and read-only outputs for DNS records. It details the `zone_id` input, `timeouts` block, and the structure of the `records` list. ```APIDOC hetznerdns_records (Data Source) Schema: Required: zone_id (String) Description: ID of the DNS zone to get records from Optional: timeouts (Block) Description: (see below for nested schema) Nested Schema for timeouts: read (String) Description: Operation Timeouts consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Default: 5m Read-Only: records (Attributes List) Description: The DNS records of the zone (see below for nested schema) Nested Schema for records: id (String) Description: ID of this DNS record name (String) Description: Name of this DNS record ttl (Number) Description: Time to live of this record type (String) Description: Type of this DNS record value (String) Description: Value of this DNS record zone_id (String) Description: ID of the DNS zone ``` -------------------------------- ### Hetzner DNS Zone Data Source Schema Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/data-sources/zone.md Defines the input and output attributes for the `hetznerdns_zone` data source, including required, optional, and read-only fields. It also details a nested schema for configuring operation timeouts. ```APIDOC hetznerdns_zone Data Source: Required: name (String): Name of the DNS zone to get data from Optional: timeouts (Block, Optional): (see nested schema below) Read-Only: id (String): The ID of the DNS zone ns (List of String): Name Servers of the zone ttl (Number): Time to live of this zone Nested Schema for timeouts: Optional: read (String): Operation Timeouts consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Default: 5m ``` -------------------------------- ### Retrieve Hetzner DNS Zone by Name Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/data-sources/zone.md This Terraform configuration demonstrates how to use the `hetznerdns_zone` data source to retrieve details about a specific DNS zone by its name. The `name` attribute is used to identify the desired zone. ```terraform data "hetznerdns_zone" "zone1" { name = "zone1.online" } ``` -------------------------------- ### Hetzner DNS Provider Configuration Schema Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/index.md Defines the configurable parameters for the `hetznerdns` provider. These settings control authentication, IP validation, TXT record formatting, and API retry behavior. Most parameters can also be set via environment variables. ```APIDOC Schema: Optional: - api_token (String, Sensitive) The Hetzner DNS API token. Can be passed using the env variable `HETZNER_DNS_TOKEN`. - enable_ip_validation (Boolean) Default: true. Toggles the validation of IP addresses in A and AAAA records. Can be passed using the env variable `HETZNER_DNS_ENABLE_IP_VALIDATION`. - enable_txt_formatter (Boolean) Default: true. Toggles the automatic formatter for TXT record values. Values greater than 255 bytes get split into multiple quoted chunks ([RFC4408](https://datatracker.ietf.org/doc/html/rfc4408#section-3.1.3)). Can be passed using the env variable `HETZNER_DNS_ENABLE_TXT_FORMATTER`. - max_retries (Number) Default: 1. The maximum number of retries to perform when an API request fails. Can be passed using the env variable `HETZNER_DNS_MAX_RETRIES`. ``` -------------------------------- ### Hetzner DNS API Rate Limit Response Headers Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/guides/investigating-rate-limits.md Details of HTTP headers returned by the Hetzner DNS API that provide information about current rate limit usage, including remaining requests, total limit, and reset time. These headers are visible in debug logs and are crucial for understanding rate limit status. ```APIDOC Header Name | Description | Example Value ------------|-------------|-------------- x-ratelimit-remaining-minute | Remaining requests in the current minute window | 296 x-ratelimit-limit-minute | Total requests allowed in the current minute window | 300 ratelimit-remaining | Remaining requests (general) | 296 ratelimit-limit | Total requests allowed (general) | 300 ratelimit-reset | Time in seconds until the rate limit resets | 50 (seconds) ``` -------------------------------- ### Hetzner DNS Zone Resource Schema Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/resources/zone.md Defines the configuration attributes for the `hetznerdns_zone` resource, including required, optional, and read-only properties, along with nested schema for timeouts. ```APIDOC hetznerdns_zone Resource Schema: Required: name (String): Name of the DNS zone to create. Must be a valid domain with top level domain. Meaning .de or .io. Don't include sub domains on this level. So, no sub..io. The Hetzner API rejects attempts to create a zone with a sub domain name.Use a record to create the sub domain. Optional: timeouts (Block, Optional): (see Nested Schema for timeouts) ttl (Number): Time to live of this zone Read-Only: id (String): Zone identifier ns (List of String): Name Servers of the zone Nested Schema for timeouts: create (String): Operation Timeouts (https://developer.hashicorp.com/terraform/language/resources/syntax#operation-timeouts) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Default: 5m delete (String): Operation Timeouts (https://developer.hashicorp.com/terraform/language/resources/syntax#operation-timeouts) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Default: 5m read (String): Operation Timeouts (https://developer.hashicorp.com/terraform/language/resources/syntax#operation-timeouts) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Default: 5m update (String): Operation Timeouts (https://developer.hashicorp.com/terraform/language/resources/syntax#operation-timeouts) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Default: 5m ``` -------------------------------- ### Migrate HetznerDNS Provider API Token Attribute Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/guides/migration-from-timohirt-hetznerdns.md This code shows the necessary change within the `provider "hetznerdns"` block, replacing the deprecated `apitoken` attribute with the new `api_token` attribute. It also notes the change in environment variable from `HETZNER_DNS_API_TOKEN` to `HETZNER_DNS_TOKEN`. ```HCL provider "hetznerdns" {" - apitoken = "token" + api_token = "token" } ``` -------------------------------- ### Hetzner DNS API Rate Limit Response Headers Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/templates/guides/investigating-rate-limits.md Details of HTTP headers returned by the Hetzner DNS API that provide information about current rate limit usage, total limits, and reset times. These headers are essential for monitoring and managing API request rates. ```APIDOC x-ratelimit-remaining-minute: Remaining requests allowed in the current minute. x-ratelimit-limit-minute: Total requests allowed per minute. ratelimit-remaining: Remaining requests allowed before hitting the general rate limit. ratelimit-limit: Total requests allowed by the general rate limit. ratelimit-reset: Time in seconds until the rate limit resets. ``` -------------------------------- ### Hetzner DNS Primary Server Resource Schema Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/resources/primary_server.md Defines the configuration properties for the `hetznerdns_primary_server` Terraform resource, including required attributes like `address`, `port`, and `zone_id`, optional `timeouts`, and read-only `id`. ```APIDOC hetznerdns_primary_server Resource Schema: Required: address (String): Address of the primary server. port (Number): Port of the primary server. zone_id (String): Zone identifier Optional: timeouts (Block, Optional): (see nested schema below) Read-Only: id (String): Zone identifier Nested Schema for timeouts: Optional: create (String): Operation Timeouts (e.g., "30s" or "2h45m"). Valid time units are "s", "m", "h". Default: 5m delete (String): Operation Timeouts (e.g., "30s" or "2h45m"). Valid time units are "s", "m", "h". Default: 5m read (String): Operation Timeouts (e.g., "30s" or "2h45m"). Valid time units are "s", "m", "h". Default: 5m update (String): Operation Timeouts (e.g., "30s" or "2h45m"). Valid time units are "s", "m", "h". Default: 5m ``` -------------------------------- ### Terraform HetznerDNS Zone Resource with IDNA Conversion Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/docs/functions/idna.md Demonstrates how to use the `idna` function within a `hetznerdns_zone` resource to convert an internationalized domain name (IDN) to its Punnycode ASCII form before assigning it to the zone's name. ```terraform resource "hetznerdns_zone" "zone1" { name = provider::hetznerdns::idna("bücher.example.com") ttl = 3600 } ``` -------------------------------- ### Update HetznerDNS Provider API Token Configuration Source: https://github.com/raouf213/terraform-provider-hetznerdns/blob/master/templates/guides/migration-from-timohirt-hetznerdns.md This snippet demonstrates changing the `apitoken` attribute to `api_token` within the `provider "hetznerdns"` block in Terraform configuration, reflecting the new naming convention. ```HCL provider "hetznerdns" {" - apitoken = "token" + api_token = "token" } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.