Change DNS zone of a domain
Replace the DNS zone of one domain with BIND zone file text - with a dry run first.
manitu_domain_dns_zone_set on https://mcp.manitu.de/mcpAnnotations as tools/list sends them
Description for the model
Replaces the DNS zone of a domain at manitu, by its name, with BIND zone file text - the WHOLE zone. To add, change or remove records: read the zone with manitu_domain_dns_zone_get (format raw), change the text, and send it back with the zone_revision you read. Always call with dry_run true first and show the customer what changes (record_count_list tells what was there before and after - nothing should go missing by accident); store (dry_run false) only after an explicit yes - web site and e-mail of the domain depend on the zone. manitu keeps the SOA (only refresh, retry, expire and ttl are taken; the serial is counted up) and the NS records of the domain itself (notice_list says when one was dropped); comments the customer wrote are not kept - notice_list then says comments_removed, mention it only then. Refused with a conflict when the zone changed since it was read (zone_changed - read it again, apply the change again), when manitu does not hold the zone (zone_not_primary_at_manitu), the domain is not active (zone_not_editable) or the zone stored cannot be read (zone_stored_not_readable - manitu has to repair it: tell the customer to contact manitu). Text that cannot be read is refused with line number (of the text sent), code and reason; text the name server would not load is refused with its reason (line numbers then count in the zone as composed by manitu). Every change counts the serial up and answers the new zone_revision - pass that one with the next change. A new serial after your own change is expected, not a change by someone else.
Arguments
namestringrequiredThe domain name, with international characters or in ASCII.
zone_datastringrequiredThe whole zone as BIND zone file text - as manitu_domain_dns_zone_get gives it (format raw), changed. Class IN only; of the $ directives only $TTL and $ORIGIN (within the zone) - no $INCLUDE or $GENERATE.
zone_revisionstringrequiredzone_revision from manitu_domain_dns_zone_get or from the answer of your last change - the version the change is based on.
dry_runbooleantrue: check and compose only, store nothing - the answer shows the zone as it would be stored. Default false.
Result structuredContent, checked against the schema
namestringrequiredThe domain, with international characters.
dry_runbooleanrequiredtrue: nothing was stored.
zone_datastringrequiredThe zone as stored - or as it would be (dry_run).
zone_revisionstringrequiredThe revision of the zone now - after a dry run the one sent, unchanged.
record_count_listarray of objectrequiredRecords per type (A, MX, TXT, TLSA ...), before and after - types with records only, SOA left out.
record_count_list[].typestringrequiredrecord_count_list[].count_beforeintegerrequiredrecord_count_list[].count_afterintegerrequirednotice_listarray of stringrequiredWhat manitu kept or dropped: soa_kept (SOA name server or contact sent were not taken), apex_ns_kept (NS records of the domain itself sent were not taken), comments_removed.
Authentication
One of X-API-Key, Authorization: Bearer … - never more than one in a request. More
Request body JSON; unknown fields are refused
namestringrequiredThe domain name, with international characters or in ASCII.
zone_datastringrequiredThe whole zone as BIND zone file text - as manitu_domain_dns_zone_get gives it (format raw), changed. Class IN only; of the $ directives only $TTL and $ORIGIN (within the zone) - no $INCLUDE or $GENERATE.
zone_revisionstringrequiredzone_revision from manitu_domain_dns_zone_get or from the answer of your last change - the version the change is based on.
dry_runbooleantrue: check and compose only, store nothing - the answer shows the zone as it would be stored. Default false.
Response in data; the rest of the body as on every call
namestringrequiredThe domain, with international characters.
dry_runbooleanrequiredtrue: nothing was stored.
zone_datastringrequiredThe zone as stored - or as it would be (dry_run).
zone_revisionstringrequiredThe revision of the zone now - after a dry run the one sent, unchanged.
record_count_listarray of objectrequiredRecords per type (A, MX, TXT, TLSA ...), before and after - types with records only, SOA left out.
record_count_list[].typestringrequiredrecord_count_list[].count_beforeintegerrequiredrecord_count_list[].count_afterintegerrequirednotice_listarray of stringrequiredWhat manitu kept or dropped: soa_kept (SOA name server or contact sent were not taken), apex_ns_kept (NS records of the domain itself sent were not taken), comments_removed.
Statuses
200Success.400The request does not match the declared input schema.401No credential was presented, or it was not recognised.403The credential is not permitted to use this operation.500The server failed. Nothing about the request was wrong. Whether a change took effect is not known - check before trying it again.503The channel this operation forwards through is unavailable.