Skip to content
StarHack edited this page Mar 12, 2024 · 6 revisions

wiki

The following page contains additional examples on how to use this Go module.

Records

A DNS record is a database entry within the Domain Name System (DNS) that provides information about a domain or a hostname. These records include various types specifying different services, such as A records for IP addresses, MX records for mail servers, and CNAME records for domain aliases, guiding how the internet routes user requests.

Delete Record

package main

import (
  "github.com/StarHack/go-hetzner-dns"
)

func main() {
  h := hetzner.Hetzner{APIKey: "<your_api_key>"}

  zoneId, _ := h.FindZoneID("example.com")

  records, err := h.FindRecordsByName(zoneId, "_acme-challenge")

  if err == nil {
    panic(err)
  }

  for _, record := range records {
    h.DeleteRecord(record.ID)
  }
}

Bulk Create Records

package main

import (
  "github.com/StarHack/go-hetzner-dns"
)

func main() {
  h := hetzner.Hetzner{APIKey: "<your_api_key>"}

  zoneId, _ := h.FindZoneID("example.com")

  var records []hetzner.RecordUpdateRequest
  records = append(records, hetzner.RecordUpdateRequest{
    ZoneID: zoneId,
    Type:   "TXT",
    Name:   "hello1",
    Value:  "world1",
  })
  records = append(records, hetzner.RecordUpdateRequest{
    ZoneID: zoneId,
    Type:   "TXT",
    Name:   "hello2",
    Value:  "world2",
  })
  records = append(records, hetzner.RecordUpdateRequest{
    ZoneID: zoneId,
    Type:   "TXT",
    Name:   "hello3",
    Value:  "world3",
  })

  err := h.BulkCreateRecord(zoneId, records)
  if err != nil {
    panic(err)
  }
}

Bulk Update Records

package main

import (
  "github.com/StarHack/go-hetzner-dns"
)

func main() {
  h := hetzner.Hetzner{APIKey: "<your_api_key>"}

  zoneId, _ := h.FindZoneID("example.com")

  var records []hetzner.RecordUpdateRequest
  records = append(records, hetzner.RecordUpdateRequest{
    ID:     "756c583dfc8f9f71e09baf4bbadb4317",
    ZoneID: zoneId,
    Type:   "TXT",
    Name:   "hello1",
    Value:  "world1.1",
  })
  records = append(records, hetzner.RecordUpdateRequest{
    ID:     "fee1ea2df115da41551950e0b8d6f099",
    ZoneID: zoneId,
    Type:   "TXT",
    Name:   "hello2",
    Value:  "world2.1",
  })
  records = append(records, hetzner.RecordUpdateRequest{
    ID:     "b54f4a448dd1c5053f36f5cfa4dd4816",
    ZoneID: zoneId,
    Type:   "TXT",
    Name:   "hello3",
    Value:  "world3.1",
  })

  err := h.BulkUpdateRecord(zoneId, records)
  if err != nil {
    panic(err)
  }
}
Clone this wiki locally