technitium 0.4.0

Typed async Rust client for the Technitium DNS Server API
Documentation
# Admin: Transfer Config

## Endpoint

`/api/admin/cluster/primary/transferConfig`

## Method

GET

## Description

Used by Secondary nodes to sync the complete configuration data from the Primary node. This call can only be made at the Primary node.

## Authentication

Required. Token must be provided via the `token` parameter.

## Permissions

Administration: Delete

## Parameters

| Name | Type | Required | Conditional | Description |
|------|------|----------|-------------|-------------|
| `token` | string | Yes | No | The session token generated by the `login` or the `createToken` call. |
| `includeZones` | string | No | No | A comma-separated list of domain names of zones that should be included to transfer DNSSEC private keys. |

## Request Headers

| Header | Required | Description |
|--------|----------|-------------|
| `If-Modified-Since` | No | The datetime stamp of the last config transfer, to allow transferring only changes made after the specified date. Uses standard HTTP `If-Modified-Since` header format. |

## Response

This endpoint does NOT return JSON. Instead it returns:
- **Content-Type**: `application/zip`
- **Content-Disposition**: `attachment`
- **Body**: A zip file containing the configuration data.

## Conditional Logic Notes

- This call can only be made at the Primary node.
- When `If-Modified-Since` is provided, the response may contain only incremental changes since that timestamp.
- The `includeZones` parameter controls which zones' DNSSEC private keys are included in the transfer.
- Typically invoked programmatically by Secondary nodes during config sync, not by end users.

## Edge Cases

- The response is a binary zip file, not JSON. Callers must handle the binary response appropriately.
- Without `If-Modified-Since`, the full configuration is transferred, which may be large.
- DNSSEC private keys are only included for zones explicitly listed in `includeZones`.