technitium 0.4.0

Typed async Rust client for the Technitium DNS Server API
Documentation
# Zone Import

## Endpoint
`/api/zones/import`

## Method
POST

## Description
Allows importing a complete zone file or a set of DNS resource records in standard RFC 1035 zone file format. The request body must contain the zone file data either as `text/plain` content type or as multipart form data.

## Authentication
Token required.

## Parameters

| Name | Type | Required | Conditional | Description |
|------|------|----------|-------------|-------------|
| `token` | string | Yes | - | Session token from `login` or `createToken`. |
| `node` | string | No | - | Node domain name for clustering. When unspecified, the current node is used. Only usable when Clustering is initialized. |
| `zone` | string | Yes | - | Domain name of the zone to import into. |
| `overwrite` | boolean | No | - | Set to `true` to allow overwriting existing resource record sets for the records being imported. |
| `overwriteSoaSerial` | boolean | No | - | Set to `true` to overwrite existing SOA record serial with the imported SOA record serial. |

## Response Fields

No additional response fields beyond `status: "ok"`.

## Conditional Logic Notes
- The request must be a POST with either `text/plain` content type containing zone file data in the body, OR multipart form data with the zone file data.
- `overwrite` controls whether existing record sets are replaced by imported records.
- `overwriteSoaSerial` independently controls whether the SOA serial is replaced.

## Edge Cases
- **Warning**: Using `overwriteSoaSerial=true` to set a lower SOA serial value than the current SOA serial will cause secondary zones to fail to sync. This is explicitly warned in the API documentation.
- The zone must already exist before importing.
- Two content type options: `text/plain` body or multipart form data attachment.