# Class CSHetznerDNSConfigurator

java.lang.Object
com.io7m.certusine.hetzner.internal.CSHetznerDNSConfigurator

All Implemented Interfaces:
  `CSDNSConfiguratorType`

public final class CSHetznerDNSConfigurator extends Object implements CSDNSConfiguratorType
A Hetzner DNS configurator.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CSHetznerDNSConfigurator(CSHetznerStrings inStrings, String inDomainName, String inZone, String inApiKey, String inApiBase)`
  A Hetzner DNS configurator.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `createTXTRecord(CSTelemetryServiceType telemetry, CSDNSRecordNameType recordName, String recordValue)`
  Create a TXT record with the given text.
  `void`
  `deleteTXTRecord(CSTelemetryServiceType telemetry, CSDNSRecordNameType recordName, String recordValue)`
  Delete a TXT record with the given text.
  `List<CSHetznerDNSRecord>`
  `listTXTRecords(CSTelemetryServiceType telemetry)`
  List TXT records.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### CSHetznerDNSConfigurator

    public CSHetznerDNSConfigurator(CSHetznerStrings inStrings, String inDomainName, String inZone, String inApiKey, String inApiBase)
    A Hetzner DNS configurator.
    Parameters:
      `inStrings` - String resources
      `inDomainName` - The domain name
      `inZone` - The owning zone ID
      `inApiKey` - The Hetzner API key
      `inApiBase` - The API base address

- ## Method Details

  - ### createTXTRecord

    public void createTXTRecord(CSTelemetryServiceType telemetry, CSDNSRecordNameType recordName, String recordValue) throws IOException, InterruptedException
    Description copied from interface: `CSDNSConfiguratorType`
    Create a TXT record with the given text.
    Specified by:
      `createTXTRecord` in interface `CSDNSConfiguratorType`
    Parameters:
      `telemetry` - A telemetry service used to report results
      `recordName` - The record name
      `recordValue` - The text
    Throws:
      `IOException` - On errors
      `InterruptedException` - On thread interruption

  - ### deleteTXTRecord

    public void deleteTXTRecord(CSTelemetryServiceType telemetry, CSDNSRecordNameType recordName, String recordValue) throws IOException, InterruptedException
    Description copied from interface: `CSDNSConfiguratorType`
    Delete a TXT record with the given text.
    Specified by:
      `deleteTXTRecord` in interface `CSDNSConfiguratorType`
    Parameters:
      `telemetry` - A telemetry service used to report results
      `recordName` - The record name
      `recordValue` - The text
    Throws:
      `IOException` - On errors
      `InterruptedException` - On thread interruption

  - ### listTXTRecords

    public List<CSHetznerDNSRecord> listTXTRecords(CSTelemetryServiceType telemetry) throws IOException, InterruptedException
    List TXT records.
    Parameters:
      `telemetry` - The telemetry service
    Returns:
      The TXT records
    Throws:
      `IOException` - On errors
      `InterruptedException` - On interruption