Create or update DNS record
upsert_dns_recordCreate or update a DNS record for a host and type so exactly one exists: it updates the existing record or creates a new one if none is present.
Instructions
Make sure a host has exactly this record of the given type: updates the existing record for that host and type, or creates one if there is none. When updating, optional fields you leave out (e.g. ttl, priority) keep their stored value. Fails without changing anything if the host already has several records of that type (common for MX and TXT); then use patch_dns_record with a record_id, or create_dns_record to add another. Returns { action: "created" | "updated", record }.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| alg | No | required for DS: the DNSSEC signing algorithm number | |
| tag | No | required for DS (the key tag of the referenced DNSKEY) and for CAA (the property tag, e.g. issue, issuewild or iodef) | |
| ttl | No | time-to-live in seconds, 60-604800, must be a multiple of 60, defaults to 3600 | |
| data | Yes | the record's main value: an IP address for A/AAAA, a hostname for ANAME/CNAME/MX/NS/SRV, free text for TXT, the CAA property value, or the hex hash for DS/TLSA | |
| host | Yes | the host/subdomain the record applies to, e.g. 'www' or '@' for the root | |
| port | No | required for SRV: the port the service is found on | |
| type | Yes | the record type | |
| dtype | No | required for TLSA: matching type of the hash in data (0 exact match, 1 SHA-256, 2 SHA-512) | |
| flags | No | required for CAA: 128 to mark the property critical, otherwise 0 | |
| usage | No | required for TLSA: certificate usage (0 PKIX-TA, 1 PKIX-EE, 2 DANE-TA, 3 DANE-EE) | |
| digest | No | required for DS: digest type of the hash in data (1 SHA-1, 2 SHA-256, 4 SHA-384) | |
| weight | No | required for SRV: relative weight among records with the same priority | |
| priority | No | required for MX and SRV: preference value, lower is tried first | |
| selector | No | required for TLSA: what the hash is taken from (0 full certificate, 1 subject public key) | |
| domain_id | Yes | the Domeneshop domain ID, from list_domains |