{"files":{"SKILL.md":"---\nname: powerdns-authoritative-http-api\ndescription: \"PowerDNS Authoritative HTTP API skill. Use when working with PowerDNS Authoritative HTTP for error, servers. Covers 43 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# PowerDNS Authoritative HTTP API\nAPI version: 0.0.18\n\n## Auth\nApiKey X-API-Key in header\n\n## Base URL\n/api/v1\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /error -- will always generate an error\n3. POST /servers/{server_id}/zones -- create first zone\n\n## Endpoints\n43 endpoints across 2 groups. See references/api-spec.lap for full details.\n\n### Error\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /error | Will always generate an error |\n\n### Servers\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /servers | List all servers |\n| GET | /servers/{server_id} | List a server |\n| PUT | /servers/{server_id}/cache/flush | Flush a cache-entry by name |\n| GET | /servers/{server_id}/zones | List all Zones in a server |\n| POST | /servers/{server_id}/zones | Creates a new domain, returns the Zone on creation. |\n| GET | /servers/{server_id}/zones/{zone_id} | zone managed by a server |\n| DELETE | /servers/{server_id}/zones/{zone_id} | Deletes this zone, all attached metadata and rrsets. |\n| PATCH | /servers/{server_id}/zones/{zone_id} | Creates/modifies/deletes RRsets present in the payload and their comments. Returns 204 No Content on success. |\n| PUT | /servers/{server_id}/zones/{zone_id} | Modifies basic zone data. |\n| PUT | /servers/{server_id}/zones/{zone_id}/notify | Send a DNS NOTIFY to all slaves. |\n| PUT | /servers/{server_id}/zones/{zone_id}/axfr-retrieve | Retrieve slave zone from its master. |\n| GET | /servers/{server_id}/zones/{zone_id}/export | Returns the zone in AXFR format. |\n| PUT | /servers/{server_id}/zones/{zone_id}/rectify | Rectify the zone data. |\n| GET | /servers/{server_id}/config | Returns all ConfigSettings for a single server |\n| GET | /servers/{server_id}/config/{config_setting_name} | Returns a specific ConfigSetting for a single server |\n| GET | /servers/{server_id}/statistics | Query statistics. |\n| GET | /servers/{server_id}/search-data | Search the data inside PowerDNS |\n| GET | /servers/{server_id}/zones/{zone_id}/metadata | Get all the Metadata associated with the zone. |\n| POST | /servers/{server_id}/zones/{zone_id}/metadata | Creates a set of metadata entries |\n| GET | /servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind} | Get the content of a single kind of domain metadata as a Metadata object. |\n| PUT | /servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind} | Replace the content of a single kind of domain metadata. |\n| DELETE | /servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind} | Delete all items of a single kind of domain metadata. |\n| GET | /servers/{server_id}/zones/{zone_id}/cryptokeys | Get all CryptoKeys for a zone, except the privatekey |\n| POST | /servers/{server_id}/zones/{zone_id}/cryptokeys | Creates a Cryptokey |\n| GET | /servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id} | Returns all data about the CryptoKey, including the privatekey. |\n| PUT | /servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id} | This method (de)activates a key from zone_name specified by cryptokey_id |\n| DELETE | /servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id} | This method deletes a key specified by cryptokey_id. |\n| GET | /servers/{server_id}/tsigkeys | Get all TSIGKeys on the server, except the actual key |\n| POST | /servers/{server_id}/tsigkeys | Add a TSIG key |\n| GET | /servers/{server_id}/tsigkeys/{tsigkey_id} | Get a specific TSIGKeys on the server, including the actual key |\n| PUT | /servers/{server_id}/tsigkeys/{tsigkey_id} | The TSIGKey at tsigkey_id can be changed in multiple ways: |\n| DELETE | /servers/{server_id}/tsigkeys/{tsigkey_id} | Delete the TSIGKey with tsigkey_id |\n| GET | /servers/{server_id}/autoprimaries | Get a list of autoprimaries |\n| POST | /servers/{server_id}/autoprimaries | Add an autoprimary |\n| DELETE | /servers/{server_id}/autoprimaries/{ip}/{nameserver} | Delete the autoprimary entry |\n| GET | /servers/{server_id}/views | List all views in a server |\n| GET | /servers/{server_id}/views/{view} | List the contents of a given view |\n| POST | /servers/{server_id}/views/{view} | Adds a zone to a given view, creating it if needed |\n| DELETE | /servers/{server_id}/views/{view}/{id} | Removes the given zone from the given view |\n| GET | /servers/{server_id}/networks | List all registered networks and views in a server |\n| GET | /servers/{server_id}/networks/{ip}/{prefixlen} | Return the view associated to the given network |\n| PUT | /servers/{server_id}/networks/{ip}/{prefixlen} | Sets the view associated to the given network |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all error?\" -> GET /error\n- \"List all servers?\" -> GET /servers\n- \"Get server details?\" -> GET /servers/{server_id}\n- \"List all zones?\" -> GET /servers/{server_id}/zones\n- \"Create a zone?\" -> POST /servers/{server_id}/zones\n- \"Get zone details?\" -> GET /servers/{server_id}/zones/{zone_id}\n- \"Delete a zone?\" -> DELETE /servers/{server_id}/zones/{zone_id}\n- \"Partially update a zone?\" -> PATCH /servers/{server_id}/zones/{zone_id}\n- \"Update a zone?\" -> PUT /servers/{server_id}/zones/{zone_id}\n- \"List all export?\" -> GET /servers/{server_id}/zones/{zone_id}/export\n- \"List all config?\" -> GET /servers/{server_id}/config\n- \"Get config details?\" -> GET /servers/{server_id}/config/{config_setting_name}\n- \"List all statistics?\" -> GET /servers/{server_id}/statistics\n- \"Search search-data?\" -> GET /servers/{server_id}/search-data\n- \"List all metadata?\" -> GET /servers/{server_id}/zones/{zone_id}/metadata\n- \"Create a metadata?\" -> POST /servers/{server_id}/zones/{zone_id}/metadata\n- \"Get metadata details?\" -> GET /servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind}\n- \"Update a metadata?\" -> PUT /servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind}\n- \"Delete a metadata?\" -> DELETE /servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind}\n- \"List all cryptokeys?\" -> GET /servers/{server_id}/zones/{zone_id}/cryptokeys\n- \"Create a cryptokey?\" -> POST /servers/{server_id}/zones/{zone_id}/cryptokeys\n- \"Get cryptokey details?\" -> GET /servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id}\n- \"Update a cryptokey?\" -> PUT /servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id}\n- \"Delete a cryptokey?\" -> DELETE /servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id}\n- \"List all tsigkeys?\" -> GET /servers/{server_id}/tsigkeys\n- \"Create a tsigkey?\" -> POST /servers/{server_id}/tsigkeys\n- \"Get tsigkey details?\" -> GET /servers/{server_id}/tsigkeys/{tsigkey_id}\n- \"Update a tsigkey?\" -> PUT /servers/{server_id}/tsigkeys/{tsigkey_id}\n- \"Delete a tsigkey?\" -> DELETE /servers/{server_id}/tsigkeys/{tsigkey_id}\n- \"List all autoprimaries?\" -> GET /servers/{server_id}/autoprimaries\n- \"Create a autoprimary?\" -> POST /servers/{server_id}/autoprimaries\n- \"Delete a autoprimary?\" -> DELETE /servers/{server_id}/autoprimaries/{ip}/{nameserver}\n- \"List all views?\" -> GET /servers/{server_id}/views\n- \"Get view details?\" -> GET /servers/{server_id}/views/{view}\n- \"Delete a view?\" -> DELETE /servers/{server_id}/views/{view}/{id}\n- \"List all networks?\" -> GET /servers/{server_id}/networks\n- \"Get network details?\" -> GET /servers/{server_id}/networks/{ip}/{prefixlen}\n- \"Update a network?\" -> PUT /servers/{server_id}/networks/{ip}/{prefixlen}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api PowerDNS Authoritative HTTP API\n@base /api/v1\n@version 0.0.18\n@auth ApiKey X-API-Key in header\n@endpoints 43\n@hint download_for_search\n@toc error(1), servers(42)\n\n@group error\n@endpoint GET /error\n@desc Will always generate an error\n\n@endgroup\n\n@group servers\n@endpoint GET /servers\n@desc List all servers\n@returns(200) An array of servers\n\n@endpoint GET /servers/{server_id}\n@desc List a server\n@returns(200) {type: str, id: str, daemon_type: str, version: str, url: str, config_url: str, zones_url: str} # An server\n\n@endpoint PUT /servers/{server_id}/cache/flush\n@desc Flush a cache-entry by name\n@required {domain: str # The domain name to flush from the cache}\n@returns(200) {count: num, result: str} # Flush successful\n\n@endpoint GET /servers/{server_id}/zones\n@desc List all Zones in a server\n@optional {zone: str # When set to the name of a zone, only this zone is returned. If no zone with that name exists, the response is an empty array. This can e.g. be used to check if a zone exists in the database without having to guess/encode the zone's id or to check if a zone exists., dnssec: bool=true # “true” (default) or “false”, whether to include the “dnssec” and “edited_serial” fields in the Zone objects. Setting this to ”false” will make the query a lot faster.}\n@returns(200) An array of Zones\n\n@endpoint POST /servers/{server_id}/zones\n@desc Creates a new domain, returns the Zone on creation.\n@optional {rrsets: bool=true # “true” (default) or “false”, whether to include the “rrsets” in the response Zone object., id: str # Opaque zone id (string), assigned by the server, should not be interpreted by the application. Guaranteed to be safe for embedding in URLs., name: str # Name of the zone (e.g. “example.com.”) MUST have a trailing dot, type: str # Set to “Zone”, url: str # API endpoint for this zone, kind: str(Native/Master/Slave/Producer/Consumer) # Zone kind, one of “Native”, “Master”, “Slave”, “Producer”, “Consumer”, rrsets: [map{name!: str, type!: str, ttl!: int, changetype: str, records!: [map], comments: [map]}] # RRSets in this zone (for zones/{zone_id} endpoint only; omitted during GET on the .../zones list endpoint), serial: int # The SOA serial number, notified_serial: int # The SOA serial notifications have been sent out for, edited_serial: int # The SOA serial as seen in query responses. Calculated using the SOA-EDIT metadata, default-soa-edit and default-soa-edit-signed settings, masters: [str] # List of IP addresses configured as a master for this zone (“Slave” type zones only), dnssec: bool # Whether or not this zone is DNSSEC signed (inferred from presigned being true XOR presence of at least one cryptokey with active being true), nsec3param: str # The NSEC3PARAM record, nsec3narrow: bool # Whether or not the zone uses NSEC3 narrow, presigned: bool # Whether or not the zone is pre-signed, soa_edit: str # The SOA-EDIT metadata item, soa_edit_api: str # The SOA-EDIT-API metadata item, api_rectify: bool # Whether or not the zone will be rectified on data changes via the API, zone: str # MAY contain a BIND-style zone file when creating a zone, catalog: str # The catalog this zone is a member of, account: str # MAY be set. Its value is defined by local policy, nameservers: [str] # MAY be sent in client bodies during creation, and MUST NOT be sent by the server. Simple list of strings of nameserver names, including the trailing dot. Not required for slave zones., master_tsig_key_ids: [str] # The id of the TSIG keys used for master operation in this zone, slave_tsig_key_ids: [str] # The id of the TSIG keys used for slave operation in this zone, last_check: int}\n@returns(201) {id: str, name: str, type: str, url: str, kind: str, rrsets: [map], serial: int, notified_serial: int, edited_serial: int, masters: [str], dnssec: bool, nsec3param: str, nsec3narrow: bool, presigned: bool, soa_edit: str, soa_edit_api: str, api_rectify: bool, zone: str, catalog: str, account: str, nameservers: [str], master_tsig_key_ids: [str], slave_tsig_key_ids: [str], last_check: int} # A zone\n\n@endpoint GET /servers/{server_id}/zones/{zone_id}\n@desc zone managed by a server\n@optional {rrsets: bool=true # “true” (default) or “false”, whether to include the “rrsets” in the response Zone object., rrset_name: str # Limit output to RRsets for this name., rrset_type: str # Limit output to the RRset of this type. Can only be used together with rrset_name., include_disabled: bool # “true” (default) or “false”, whether to include disabled RRsets in the response.}\n@returns(200) {id: str, name: str, type: str, url: str, kind: str, rrsets: [map], serial: int, notified_serial: int, edited_serial: int, masters: [str], dnssec: bool, nsec3param: str, nsec3narrow: bool, presigned: bool, soa_edit: str, soa_edit_api: str, api_rectify: bool, zone: str, catalog: str, account: str, nameservers: [str], master_tsig_key_ids: [str], slave_tsig_key_ids: [str], last_check: int} # A Zone\n\n@endpoint DELETE /servers/{server_id}/zones/{zone_id}\n@desc Deletes this zone, all attached metadata and rrsets.\n@returns(204) Returns 204 No Content on success.\n\n@endpoint PATCH /servers/{server_id}/zones/{zone_id}\n@desc Creates/modifies/deletes RRsets present in the payload and their comments. Returns 204 No Content on success.\n@optional {id: str # Opaque zone id (string), assigned by the server, should not be interpreted by the application. Guaranteed to be safe for embedding in URLs., name: str # Name of the zone (e.g. “example.com.”) MUST have a trailing dot, type: str # Set to “Zone”, url: str # API endpoint for this zone, kind: str(Native/Master/Slave/Producer/Consumer) # Zone kind, one of “Native”, “Master”, “Slave”, “Producer”, “Consumer”, rrsets: [map{name!: str, type!: str, ttl!: int, changetype: str, records!: [map], comments: [map]}] # RRSets in this zone (for zones/{zone_id} endpoint only; omitted during GET on the .../zones list endpoint), serial: int # The SOA serial number, notified_serial: int # The SOA serial notifications have been sent out for, edited_serial: int # The SOA serial as seen in query responses. Calculated using the SOA-EDIT metadata, default-soa-edit and default-soa-edit-signed settings, masters: [str] # List of IP addresses configured as a master for this zone (“Slave” type zones only), dnssec: bool # Whether or not this zone is DNSSEC signed (inferred from presigned being true XOR presence of at least one cryptokey with active being true), nsec3param: str # The NSEC3PARAM record, nsec3narrow: bool # Whether or not the zone uses NSEC3 narrow, presigned: bool # Whether or not the zone is pre-signed, soa_edit: str # The SOA-EDIT metadata item, soa_edit_api: str # The SOA-EDIT-API metadata item, api_rectify: bool # Whether or not the zone will be rectified on data changes via the API, zone: str # MAY contain a BIND-style zone file when creating a zone, catalog: str # The catalog this zone is a member of, account: str # MAY be set. Its value is defined by local policy, nameservers: [str] # MAY be sent in client bodies during creation, and MUST NOT be sent by the server. Simple list of strings of nameserver names, including the trailing dot. Not required for slave zones., master_tsig_key_ids: [str] # The id of the TSIG keys used for master operation in this zone, slave_tsig_key_ids: [str] # The id of the TSIG keys used for slave operation in this zone, last_check: int}\n@returns(204) Returns 204 No Content on success.\n\n@endpoint PUT /servers/{server_id}/zones/{zone_id}\n@desc Modifies basic zone data.\n@optional {id: str # Opaque zone id (string), assigned by the server, should not be interpreted by the application. Guaranteed to be safe for embedding in URLs., name: str # Name of the zone (e.g. “example.com.”) MUST have a trailing dot, type: str # Set to “Zone”, url: str # API endpoint for this zone, kind: str(Native/Master/Slave/Producer/Consumer) # Zone kind, one of “Native”, “Master”, “Slave”, “Producer”, “Consumer”, rrsets: [map{name!: str, type!: str, ttl!: int, changetype: str, records!: [map], comments: [map]}] # RRSets in this zone (for zones/{zone_id} endpoint only; omitted during GET on the .../zones list endpoint), serial: int # The SOA serial number, notified_serial: int # The SOA serial notifications have been sent out for, edited_serial: int # The SOA serial as seen in query responses. Calculated using the SOA-EDIT metadata, default-soa-edit and default-soa-edit-signed settings, masters: [str] # List of IP addresses configured as a master for this zone (“Slave” type zones only), dnssec: bool # Whether or not this zone is DNSSEC signed (inferred from presigned being true XOR presence of at least one cryptokey with active being true), nsec3param: str # The NSEC3PARAM record, nsec3narrow: bool # Whether or not the zone uses NSEC3 narrow, presigned: bool # Whether or not the zone is pre-signed, soa_edit: str # The SOA-EDIT metadata item, soa_edit_api: str # The SOA-EDIT-API metadata item, api_rectify: bool # Whether or not the zone will be rectified on data changes via the API, zone: str # MAY contain a BIND-style zone file when creating a zone, catalog: str # The catalog this zone is a member of, account: str # MAY be set. Its value is defined by local policy, nameservers: [str] # MAY be sent in client bodies during creation, and MUST NOT be sent by the server. Simple list of strings of nameserver names, including the trailing dot. Not required for slave zones., master_tsig_key_ids: [str] # The id of the TSIG keys used for master operation in this zone, slave_tsig_key_ids: [str] # The id of the TSIG keys used for slave operation in this zone, last_check: int}\n@returns(204) Returns 204 No Content on success.\n\n@endpoint PUT /servers/{server_id}/zones/{zone_id}/notify\n@desc Send a DNS NOTIFY to all slaves.\n@returns(200) OK\n\n@endpoint PUT /servers/{server_id}/zones/{zone_id}/axfr-retrieve\n@desc Retrieve slave zone from its master.\n@returns(200) OK\n\n@endpoint GET /servers/{server_id}/zones/{zone_id}/export\n@desc Returns the zone in AXFR format.\n@returns(200) OK\n\n@endpoint PUT /servers/{server_id}/zones/{zone_id}/rectify\n@desc Rectify the zone data.\n@returns(200) OK\n\n@endpoint GET /servers/{server_id}/config\n@desc Returns all ConfigSettings for a single server\n@returns(200) List of config values\n\n@endpoint GET /servers/{server_id}/config/{config_setting_name}\n@desc Returns a specific ConfigSetting for a single server\n@returns(200) {name: str, type: str, value: str} # List of config values\n\n@endpoint GET /servers/{server_id}/statistics\n@desc Query statistics.\n@optional {statistic: str # When set to the name of a specific statistic, only this value is returned. If no statistic with that name exists, the response has a 422 status and an error message., includerings: bool=true # “true” (default) or “false”, whether to include the Ring items, which can contain thousands of log messages or queried domains. Setting this to ”false” may make the response a lot smaller.}\n@returns(200) List of Statistic Items\n@errors {422: Returned when a non-existing statistic name has been requested. Contains an error message}\n\n@endpoint GET /servers/{server_id}/search-data\n@desc Search the data inside PowerDNS\n@required {q: str # The string to search for, max: int # Maximum number of entries to return}\n@optional {object_type: str # Type of data to search for, one of “all”, “zone”, “record”, “comment”}\n@returns(200) Returns a JSON array with results\n\n@endpoint GET /servers/{server_id}/zones/{zone_id}/metadata\n@desc Get all the Metadata associated with the zone.\n@returns(200) List of Metadata objects\n\n@endpoint POST /servers/{server_id}/zones/{zone_id}/metadata\n@desc Creates a set of metadata entries\n@optional {kind: str # Name of the metadata, metadata: [str] # Array with all values for this metadata kind.}\n@returns(204) OK\n\n@endpoint GET /servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind}\n@desc Get the content of a single kind of domain metadata as a Metadata object.\n@returns(200) {kind: str, metadata: [str]} # Metadata object with list of values\n\n@endpoint PUT /servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind}\n@desc Replace the content of a single kind of domain metadata.\n@returns(200) {kind: str, metadata: [str]} # Metadata object with list of values\n\n@endpoint DELETE /servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind}\n@desc Delete all items of a single kind of domain metadata.\n@returns(204) OK\n\n@endpoint GET /servers/{server_id}/zones/{zone_id}/cryptokeys\n@desc Get all CryptoKeys for a zone, except the privatekey\n@returns(200) List of Cryptokey objects\n\n@endpoint POST /servers/{server_id}/zones/{zone_id}/cryptokeys\n@desc Creates a Cryptokey\n@optional {type: str # set to \"Cryptokey\", id: int # The internal identifier, read only, keytype: str(ksk/zsk/csk), active: bool # Whether or not the key is in active use, published: bool # Whether or not the DNSKEY record is published in the zone, dnskey: str # The DNSKEY record for this key, ds: [str] # An array of DS records for this key, cds: [str] # An array of DS records for this key, filtered by CDS publication settings, privatekey: str # The private key in ISC format, algorithm: str # The name of the algorithm of the key, should be a mnemonic, bits: int # The size of the key}\n@returns(201) {type: str, id: int, keytype: str, active: bool, published: bool, dnskey: str, ds: [str], cds: [str], privatekey: str, algorithm: str, bits: int} # Created\n\n@endpoint GET /servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id}\n@desc Returns all data about the CryptoKey, including the privatekey.\n@returns(200) {type: str, id: int, keytype: str, active: bool, published: bool, dnskey: str, ds: [str], cds: [str], privatekey: str, algorithm: str, bits: int} # Cryptokey\n\n@endpoint PUT /servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id}\n@desc This method (de)activates a key from zone_name specified by cryptokey_id\n@returns(204) OK\n\n@endpoint DELETE /servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id}\n@desc This method deletes a key specified by cryptokey_id.\n@returns(204) OK\n\n@endpoint GET /servers/{server_id}/tsigkeys\n@desc Get all TSIGKeys on the server, except the actual key\n@returns(200) List of TSIGKey objects\n\n@endpoint POST /servers/{server_id}/tsigkeys\n@desc Add a TSIG key\n@optional {name: str # The name of the key, id: str # The ID for this key, used in the TSIGkey URL endpoint., algorithm: str # The algorithm of the TSIG key, key: str # The Base64 encoded secret key, empty when listing keys. MAY be empty when POSTing to have the server generate the key material, type: str # Set to \"TSIGKey\"}\n@returns(201) {name: str, id: str, algorithm: str, key: str, type: str} # Created\n@errors {409: An item with this name already exists}\n\n@endpoint GET /servers/{server_id}/tsigkeys/{tsigkey_id}\n@desc Get a specific TSIGKeys on the server, including the actual key\n@returns(200) {name: str, id: str, algorithm: str, key: str, type: str} # OK.\n\n@endpoint PUT /servers/{server_id}/tsigkeys/{tsigkey_id}\n@desc The TSIGKey at tsigkey_id can be changed in multiple ways:\n@optional {name: str # The name of the key, id: str # The ID for this key, used in the TSIGkey URL endpoint., algorithm: str # The algorithm of the TSIG key, key: str # The Base64 encoded secret key, empty when listing keys. MAY be empty when POSTing to have the server generate the key material, type: str # Set to \"TSIGKey\"}\n@returns(200) {name: str, id: str, algorithm: str, key: str, type: str} # OK. TSIGKey is changed.\n@errors {409: An item with this name already exists}\n\n@endpoint DELETE /servers/{server_id}/tsigkeys/{tsigkey_id}\n@desc Delete the TSIGKey with tsigkey_id\n@returns(204) OK, key was deleted\n\n@endpoint GET /servers/{server_id}/autoprimaries\n@desc Get a list of autoprimaries\n@returns(200) {ip: str, nameserver: str, account: str} # OK.\n\n@endpoint POST /servers/{server_id}/autoprimaries\n@desc Add an autoprimary\n@optional {ip: str # IP address of the autoprimary server, nameserver: str # DNS name of the autoprimary server, account: str # Account name for the autoprimary server}\n@returns(201) Created\n\n@endpoint DELETE /servers/{server_id}/autoprimaries/{ip}/{nameserver}\n@desc Delete the autoprimary entry\n@returns(204) OK, key was deleted\n\n@endpoint GET /servers/{server_id}/views\n@desc List all views in a server\n@required {server_id: str # The id of the server to retrieve}\n@returns(200) {views: [str]} # An array of view names\n\n@endpoint GET /servers/{server_id}/views/{view}\n@desc List the contents of a given view\n@returns(200) {zones: [str]} # An array of zone names\n\n@endpoint POST /servers/{server_id}/views/{view}\n@desc Adds a zone to a given view, creating it if needed\n@optional {name: str # The zone to add to the view}\n@returns(204) Returns 204 No Content on success.\n\n@endpoint DELETE /servers/{server_id}/views/{view}/{id}\n@desc Removes the given zone from the given view\n@returns(204) Returns 204 No Content on success.\n\n@endpoint GET /servers/{server_id}/networks\n@desc List all registered networks and views in a server\n@returns(200) {networks: [map]} # An array of networks\n\n@endpoint GET /servers/{server_id}/networks/{ip}/{prefixlen}\n@desc Return the view associated to the given network\n@returns(200) {network: str, view: str} # A network\n\n@endpoint PUT /servers/{server_id}/networks/{ip}/{prefixlen}\n@desc Sets the view associated to the given network\n@optional {view: str # The name of the view to use for this network}\n@returns(204) Returns 204 No Content on success.\n\n@endgroup\n\n@end\n"}}