From: Miod Vallat Date: Fri, 12 Jun 2026 13:14:22 +0000 (+0200) Subject: Sort endpoints by name. NFCI X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2ee378ebb292372ea021116823904e18ced0c6ca;p=thirdparty%2Fpdns.git Sort endpoints by name. NFCI Signed-off-by: Miod Vallat --- diff --git a/docs/http-api/openapi/authoritative-api-openapi.yaml b/docs/http-api/openapi/authoritative-api-openapi.yaml index da27b40966..a1e8ff4df6 100644 --- a/docs/http-api/openapi/authoritative-api-openapi.yaml +++ b/docs/http-api/openapi/authoritative-api-openapi.yaml @@ -60,251 +60,90 @@ paths: default: $ref: "#/components/responses/Error" - "/servers/{server_id}/cache/flush": - parameters: - - $ref: "#/components/parameters/server_id" - put: - summary: Flush a cache-entry by name - operationId: cacheFlushByName - tags: - - servers - parameters: - - name: domain - in: query - required: true - description: The domain name to flush from the cache - schema: - type: string - responses: - "200": - description: Flush successful - content: - application/json: - schema: - $ref: "#/components/schemas/CacheFlushResult" - default: - $ref: "#/components/responses/Error" - - "/servers/{server_id}/zones": + "/servers/{server_id}/autoprimaries": parameters: - $ref: "#/components/parameters/server_id" get: - summary: List all Zones in a server - operationId: listZones + summary: "Get a list of autoprimaries" + operationId: getAutoprimaries tags: - - zones - parameters: - - name: zone - in: query - required: false - schema: - type: string - description: | - 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. - - name: dnssec - in: query - required: false - schema: - type: boolean - default: true - description: "“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." + - autoprimary responses: "200": - description: An array of Zones + description: OK. content: application/json: schema: - type: array - items: - $ref: "#/components/schemas/Zone" + $ref: "#/components/schemas/Autoprimary" default: $ref: "#/components/responses/Error" post: - summary: Creates a new domain, returns the Zone on creation. - operationId: createZone + summary: "Add an autoprimary" + description: "This methods add a new autoprimary server." + operationId: createAutoprimary tags: - - zones - parameters: - - name: rrsets - in: query - description: "“true” (default) or “false”, whether to include the “rrsets” in the response Zone object." - schema: - type: boolean - default: true + - autoprimary requestBody: required: true - description: The zone struct to patch with + description: autoprimary entry to add content: application/json: schema: - $ref: "#/components/schemas/Zone" + $ref: "#/components/schemas/Autoprimary" responses: "201": - description: A zone - content: - application/json: - schema: - $ref: "#/components/schemas/Zone" + description: Created default: $ref: "#/components/responses/Error" - "/servers/{server_id}/zones/{zone_id}": + "/servers/{server_id}/autoprimaries/{ip}/{nameserver}": parameters: - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/zone_id" - get: - summary: zone managed by a server - operationId: listZone - tags: - - zones - parameters: - - name: rrsets - in: query - description: "“true” (default) or “false”, whether to include the “rrsets” in the response Zone object." - schema: - type: boolean - default: true - - name: rrset_name - in: query - description: Limit output to RRsets for this name. - schema: - type: string - - name: rrset_type - in: query - description: Limit output to the RRset of this type. Can only be used together with rrset_name. - schema: - type: string - - name: include_disabled - in: query - description: "“true” (default) or “false”, whether to include disabled RRsets in the response." - schema: - type: boolean - responses: - "200": - description: A Zone - content: - application/json: - schema: - $ref: "#/components/schemas/Zone" - default: - $ref: "#/components/responses/Error" - delete: - summary: Deletes this zone, all attached metadata and rrsets. - operationId: deleteZone - tags: - - zones - responses: - "204": - description: "Returns 204 No Content on success." - default: - $ref: "#/components/responses/Error" - patch: - summary: "Creates/modifies/deletes RRsets present in the payload and their comments. Returns 204 No Content on success." - operationId: patchZone - tags: - - zones - requestBody: + - name: ip + in: path required: true - description: The zone struct to patch with - content: - application/json: - schema: - $ref: "#/components/schemas/Zone" - responses: - "204": - description: "Returns 204 No Content on success." - default: - $ref: "#/components/responses/Error" - - put: - summary: Modifies basic zone data. - description: "The only fields in the zone structure which can be modified are: kind, masters, catalog, account, soa_edit, soa_edit_api, api_rectify, dnssec, and nsec3param. All other fields are ignored." - operationId: putZone - tags: - - zones - requestBody: + description: "IP address of autoprimary" + schema: + type: string + - name: nameserver + in: path required: true - description: The zone struct to patch with - content: - application/json: - schema: - $ref: "#/components/schemas/Zone" - responses: - "204": - description: "Returns 204 No Content on success." - default: - $ref: "#/components/responses/Error" - - "/servers/{server_id}/zones/{zone_id}/notify": - parameters: - - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/zone_id" - put: - summary: Send a DNS NOTIFY to all slaves. - description: "Fails when zone kind is not Master or Slave, or master and slave are disabled in the configuration. Only works for Slave if renotify is on. Clients MUST NOT send a body." - operationId: notifyZone - tags: - - zones - responses: - "200": - description: OK - default: - $ref: "#/components/responses/Error" - - "/servers/{server_id}/zones/{zone_id}/axfr-retrieve": - parameters: - - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/zone_id" - put: - summary: Retrieve slave zone from its master. - description: "Fails when zone kind is not Slave, or slave is disabled in the configuration. Clients MUST NOT send a body." - operationId: axfrRetrieveZone - tags: - - zones - responses: - "200": - description: OK - default: - $ref: "#/components/responses/Error" - - "/servers/{server_id}/zones/{zone_id}/export": - parameters: - - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/zone_id" - get: - summary: "Returns the zone in AXFR format." - operationId: axfrExportZone + description: "DNS name of the autoprimary" + schema: + type: string + delete: + summary: "Delete the autoprimary entry" + operationId: deleteAutoprimary tags: - - zones + - autoprimary responses: - "200": - description: OK - content: - application/json: - schema: - type: string + "204": + description: "OK, key was deleted" default: $ref: "#/components/responses/Error" - "/servers/{server_id}/zones/{zone_id}/rectify": + "/servers/{server_id}/cache/flush": parameters: - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/zone_id" put: - summary: "Rectify the zone data." - description: "This does not take into account the API-RECTIFY metadata. Fails on slave zones and zones that do not have DNSSEC." - operationId: rectifyZone + summary: Flush a cache-entry by name + operationId: cacheFlushByName tags: - - zones + - servers + parameters: + - name: domain + in: query + required: true + description: The domain name to flush from the cache + schema: + type: string responses: "200": - description: OK + description: Flush successful content: application/json: schema: - type: string + $ref: "#/components/schemas/CacheFlushResult" default: $ref: "#/components/responses/Error" @@ -353,52 +192,74 @@ paths: default: $ref: "#/components/responses/Error" - "/servers/{server_id}/statistics": + "/servers/{server_id}/networks": parameters: - $ref: "#/components/parameters/server_id" get: - summary: "Query statistics." - description: "Query PowerDNS internal statistics." - operationId: getStats + summary: List all registered networks and views in a server + operationId: listNetworks tags: - - stats - parameters: - - name: statistic - in: query - required: false - schema: - type: string - description: | - 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. - - name: includerings - in: query - required: false - schema: - type: boolean - default: true - description: "“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." + - networks responses: "200": - description: List of Statistic Items + description: An array of networks content: application/json: schema: - type: array - items: - type: object - discriminator: - propertyName: object_type - mapping: - StatisticItem: "#/components/schemas/StatisticItem" - MapStatisticItem: "#/components/schemas/MapStatisticItem" - RingStatisticItem: "#/components/schemas/RingStatisticItem" - oneOf: - - $ref: "#/components/schemas/StatisticItem" - - $ref: "#/components/schemas/MapStatisticItem" - - $ref: "#/components/schemas/RingStatisticItem" - "422": - description: "Returned when a non-existing statistic name has been requested. Contains an error message" + $ref: "#/components/schemas/Networks" + default: + $ref: "#/components/responses/Error" + + "/servers/{server_id}/networks/{ip}/{prefixlen}": + parameters: + - $ref: "#/components/parameters/server_id" + - name: ip + schema: + type: string + in: path + required: true + description: The base address of the network + - name: prefixlen + schema: + type: string + in: path + required: true + description: The length of the network prefix + get: + summary: Return the view associated to the given network + operationId: getNetwork + tags: + - networks + responses: + "200": + description: A network + content: + application/json: + schema: + $ref: "#/components/schemas/Network" + default: + $ref: "#/components/responses/Error" + + put: + summary: Sets the view associated to the given network + operationId: setNetwork + tags: + - networks + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + view: + type: string + description: The name of the view to use for this network + + responses: + "204": + description: "Returns 204 No Content on success." default: $ref: "#/components/responses/Error" @@ -440,182 +301,52 @@ paths: default: $ref: "#/components/responses/Error" - "/servers/{server_id}/zones/{zone_id}/metadata": - parameters: - - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/zone_id" - get: - summary: "Get all the Metadata associated with the zone." - operationId: listMetadata - tags: - - zonemetadata - responses: - "200": - description: List of Metadata objects - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Metadata" - default: - $ref: "#/components/responses/Error" - post: - summary: "Creates a set of metadata entries" - description: "Creates a set of metadata entries of given kind for the zone. Existing metadata entries for the zone with the same kind are not overwritten." - operationId: createMetadata - tags: - - zonemetadata - - requestBody: - required: true - description: Metadata object with list of values to create - content: - application/json: - schema: - $ref: "#/components/schemas/Metadata" - responses: - "204": - description: OK - default: - $ref: "#/components/responses/Error" - - "/servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind}": - parameters: - - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/zone_id" - - name: metadata_kind - schema: - type: string - in: path - required: true - description: The kind of metadata - get: - summary: "Get the content of a single kind of domain metadata as a Metadata object." - operationId: getMetadata - tags: - - zonemetadata - responses: - "200": - description: Metadata object with list of values - content: - application/json: - schema: - $ref: "#/components/schemas/Metadata" - default: - $ref: "#/components/responses/Error" - put: - summary: "Replace the content of a single kind of domain metadata." - description: "Creates a set of metadata entries of given kind for the zone. Existing metadata entries for the zone with the same kind are removed." - operationId: modifyMetadata - tags: - - zonemetadata - responses: - "200": - description: Metadata object with list of values - content: - application/json: - schema: - $ref: "#/components/schemas/Metadata" - default: - $ref: "#/components/responses/Error" - delete: - summary: "Delete all items of a single kind of domain metadata." - operationId: deleteMetadata - tags: - - zonemetadata - responses: - "204": - description: OK - default: - $ref: "#/components/responses/Error" - - "/servers/{server_id}/zones/{zone_id}/cryptokeys": + "/servers/{server_id}/statistics": parameters: - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/zone_id" get: - summary: "Get all CryptoKeys for a zone, except the privatekey" - operationId: listCryptokeys + summary: "Query statistics." + description: "Query PowerDNS internal statistics." + operationId: getStats tags: - - zonecryptokey + - stats + parameters: + - name: statistic + in: query + required: false + schema: + type: string + description: | + 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. + - name: includerings + in: query + required: false + schema: + type: boolean + default: true + description: "“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." responses: "200": - description: List of Cryptokey objects + description: List of Statistic Items content: application/json: schema: type: array items: - $ref: "#/components/schemas/Cryptokey" - default: - $ref: "#/components/responses/Error" - post: - summary: "Creates a Cryptokey" - description: "This method adds a new key to a zone. The key can either be generated or imported by supplying the content parameter. if content, bits and algo are null, a key will be generated based on the default-ksk-algorithm and default-ksk-size settings for a KSK and the default-zsk-algorithm and default-zsk-size options for a ZSK." - operationId: createCryptokey - tags: - - zonecryptokey - - requestBody: - required: true - description: Add a Cryptokey - content: - application/json: - schema: - $ref: "#/components/schemas/Cryptokey" - responses: - "201": - description: Created - content: - application/json: - schema: - $ref: "#/components/schemas/Cryptokey" - default: - $ref: "#/components/responses/Error" - - "/servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id}": - parameters: - - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/zone_id" - - name: cryptokey_id - schema: - type: string - in: path - required: true - description: "The id value of the CryptoKey" - get: - summary: "Returns all data about the CryptoKey, including the privatekey." - operationId: getCryptokey - tags: - - zonecryptokey - responses: - "200": - description: Cryptokey - content: - application/json: - schema: - $ref: "#/components/schemas/Cryptokey" - default: - $ref: "#/components/responses/Error" - put: - summary: "This method (de)activates a key from zone_name specified by cryptokey_id" - operationId: modifyCryptokey - tags: - - zonecryptokey - responses: - "204": - description: OK - default: - $ref: "#/components/responses/Error" - delete: - summary: "This method deletes a key specified by cryptokey_id." - operationId: deleteCryptokey - tags: - - zonecryptokey - responses: - "204": - description: OK + type: object + discriminator: + propertyName: object_type + mapping: + StatisticItem: "#/components/schemas/StatisticItem" + MapStatisticItem: "#/components/schemas/MapStatisticItem" + RingStatisticItem: "#/components/schemas/RingStatisticItem" + oneOf: + - $ref: "#/components/schemas/StatisticItem" + - $ref: "#/components/schemas/MapStatisticItem" + - $ref: "#/components/schemas/RingStatisticItem" + "422": + description: "Returned when a non-existing statistic name has been requested. Contains an error message" default: $ref: "#/components/responses/Error" @@ -727,224 +458,493 @@ paths: summary: "Delete the TSIGKey with tsigkey_id" operationId: deleteTSIGKey tags: - - tsigkey + - tsigkey + responses: + "204": + description: "OK, key was deleted" + default: + $ref: "#/components/responses/Error" + + "/servers/{server_id}/views": + get: + summary: List all views in a server + operationId: listViews + tags: + - views + parameters: + - $ref: "#/components/parameters/server_id" + responses: + "200": + description: An array of view names + content: + application/json: + schema: + $ref: "#/components/schemas/Views" + default: + $ref: "#/components/responses/Error" + + "/servers/{server_id}/views/{view}": + parameters: + - $ref: "#/components/parameters/server_id" + - $ref: "#/components/parameters/view" + + get: + summary: List the contents of a given view + operationId: listView + tags: + - views + responses: + "200": + description: An array of zone names + content: + application/json: + schema: + $ref: "#/components/schemas/View" + default: + $ref: "#/components/responses/Error" + + post: + summary: Adds a zone to a given view, creating it if needed + operationId: addToView + tags: + - views + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + type: string + description: The zone to add to the view + responses: + "204": + description: "Returns 204 No Content on success." + default: + $ref: "#/components/responses/Error" + + "/servers/{server_id}/views/{view}/{id}": + parameters: + - $ref: "#/components/parameters/server_id" + - $ref: "#/components/parameters/view" + - name: id + description: The zone to remove from the view + required: true + in: path + schema: + type: string + delete: + summary: Removes the given zone from the given view + operationId: deleteFromView + tags: + - views + responses: + "204": + description: "Returns 204 No Content on success." + default: + $ref: "#/components/responses/Error" + + "/servers/{server_id}/zones": + parameters: + - $ref: "#/components/parameters/server_id" + get: + summary: List all Zones in a server + operationId: listZones + tags: + - zones + parameters: + - name: zone + in: query + required: false + schema: + type: string + description: | + 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. + - name: dnssec + in: query + required: false + schema: + type: boolean + default: true + description: "“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." + responses: + "200": + description: An array of Zones + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Zone" + default: + $ref: "#/components/responses/Error" + post: + summary: Creates a new domain, returns the Zone on creation. + operationId: createZone + tags: + - zones + parameters: + - name: rrsets + in: query + description: "“true” (default) or “false”, whether to include the “rrsets” in the response Zone object." + schema: + type: boolean + default: true + requestBody: + required: true + description: The zone struct to patch with + content: + application/json: + schema: + $ref: "#/components/schemas/Zone" + responses: + "201": + description: A zone + content: + application/json: + schema: + $ref: "#/components/schemas/Zone" + default: + $ref: "#/components/responses/Error" + + "/servers/{server_id}/zones/{zone_id}": + parameters: + - $ref: "#/components/parameters/server_id" + - $ref: "#/components/parameters/zone_id" + get: + summary: zone managed by a server + operationId: listZone + tags: + - zones + parameters: + - name: rrsets + in: query + description: "“true” (default) or “false”, whether to include the “rrsets” in the response Zone object." + schema: + type: boolean + default: true + - name: rrset_name + in: query + description: Limit output to RRsets for this name. + schema: + type: string + - name: rrset_type + in: query + description: Limit output to the RRset of this type. Can only be used together with rrset_name. + schema: + type: string + - name: include_disabled + in: query + description: "“true” (default) or “false”, whether to include disabled RRsets in the response." + schema: + type: boolean + responses: + "200": + description: A Zone + content: + application/json: + schema: + $ref: "#/components/schemas/Zone" + default: + $ref: "#/components/responses/Error" + delete: + summary: Deletes this zone, all attached metadata and rrsets. + operationId: deleteZone + tags: + - zones + responses: + "204": + description: "Returns 204 No Content on success." + default: + $ref: "#/components/responses/Error" + patch: + summary: "Creates/modifies/deletes RRsets present in the payload and their comments. Returns 204 No Content on success." + operationId: patchZone + tags: + - zones + requestBody: + required: true + description: The zone struct to patch with + content: + application/json: + schema: + $ref: "#/components/schemas/Zone" + responses: + "204": + description: "Returns 204 No Content on success." + default: + $ref: "#/components/responses/Error" + + put: + summary: Modifies basic zone data. + description: "The only fields in the zone structure which can be modified are: kind, masters, catalog, account, soa_edit, soa_edit_api, api_rectify, dnssec, and nsec3param. All other fields are ignored." + operationId: putZone + tags: + - zones + requestBody: + required: true + description: The zone struct to patch with + content: + application/json: + schema: + $ref: "#/components/schemas/Zone" + responses: + "204": + description: "Returns 204 No Content on success." + default: + $ref: "#/components/responses/Error" + + "/servers/{server_id}/zones/{zone_id}/axfr-retrieve": + parameters: + - $ref: "#/components/parameters/server_id" + - $ref: "#/components/parameters/zone_id" + put: + summary: Retrieve slave zone from its master. + description: "Fails when zone kind is not Slave, or slave is disabled in the configuration. Clients MUST NOT send a body." + operationId: axfrRetrieveZone + tags: + - zones responses: - "204": - description: "OK, key was deleted" + "200": + description: OK default: $ref: "#/components/responses/Error" - "/servers/{server_id}/autoprimaries": + "/servers/{server_id}/zones/{zone_id}/cryptokeys": parameters: - $ref: "#/components/parameters/server_id" + - $ref: "#/components/parameters/zone_id" get: - summary: "Get a list of autoprimaries" - operationId: getAutoprimaries + summary: "Get all CryptoKeys for a zone, except the privatekey" + operationId: listCryptokeys tags: - - autoprimary + - zonecryptokey responses: "200": - description: OK. + description: List of Cryptokey objects content: application/json: schema: - $ref: "#/components/schemas/Autoprimary" + type: array + items: + $ref: "#/components/schemas/Cryptokey" default: $ref: "#/components/responses/Error" post: - summary: "Add an autoprimary" - description: "This methods add a new autoprimary server." - operationId: createAutoprimary + summary: "Creates a Cryptokey" + description: "This method adds a new key to a zone. The key can either be generated or imported by supplying the content parameter. if content, bits and algo are null, a key will be generated based on the default-ksk-algorithm and default-ksk-size settings for a KSK and the default-zsk-algorithm and default-zsk-size options for a ZSK." + operationId: createCryptokey tags: - - autoprimary + - zonecryptokey + requestBody: required: true - description: autoprimary entry to add + description: Add a Cryptokey content: application/json: schema: - $ref: "#/components/schemas/Autoprimary" + $ref: "#/components/schemas/Cryptokey" responses: "201": description: Created + content: + application/json: + schema: + $ref: "#/components/schemas/Cryptokey" default: $ref: "#/components/responses/Error" - "/servers/{server_id}/autoprimaries/{ip}/{nameserver}": + "/servers/{server_id}/zones/{zone_id}/cryptokeys/{cryptokey_id}": parameters: - $ref: "#/components/parameters/server_id" - - name: ip - in: path - required: true - description: "IP address of autoprimary" + - $ref: "#/components/parameters/zone_id" + - name: cryptokey_id schema: type: string - - name: nameserver in: path required: true - description: "DNS name of the autoprimary" - schema: - type: string + description: "The id value of the CryptoKey" + get: + summary: "Returns all data about the CryptoKey, including the privatekey." + operationId: getCryptokey + tags: + - zonecryptokey + responses: + "200": + description: Cryptokey + content: + application/json: + schema: + $ref: "#/components/schemas/Cryptokey" + default: + $ref: "#/components/responses/Error" + put: + summary: "This method (de)activates a key from zone_name specified by cryptokey_id" + operationId: modifyCryptokey + tags: + - zonecryptokey + responses: + "204": + description: OK + default: + $ref: "#/components/responses/Error" delete: - summary: "Delete the autoprimary entry" - operationId: deleteAutoprimary + summary: "This method deletes a key specified by cryptokey_id." + operationId: deleteCryptokey tags: - - autoprimary + - zonecryptokey responses: "204": - description: "OK, key was deleted" + description: OK default: $ref: "#/components/responses/Error" - "/servers/{server_id}/views": + "/servers/{server_id}/zones/{zone_id}/export": + parameters: + - $ref: "#/components/parameters/server_id" + - $ref: "#/components/parameters/zone_id" get: - summary: List all views in a server - operationId: listViews + summary: "Returns the zone in AXFR format." + operationId: axfrExportZone tags: - - views - parameters: - - $ref: "#/components/parameters/server_id" + - zones responses: "200": - description: An array of view names + description: OK content: application/json: schema: - $ref: "#/components/schemas/Views" + type: string default: $ref: "#/components/responses/Error" - "/servers/{server_id}/views/{view}": + "/servers/{server_id}/zones/{zone_id}/metadata": parameters: - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/view" - + - $ref: "#/components/parameters/zone_id" get: - summary: List the contents of a given view - operationId: listView + summary: "Get all the Metadata associated with the zone." + operationId: listMetadata tags: - - views + - zonemetadata responses: "200": - description: An array of zone names + description: List of Metadata objects content: application/json: schema: - $ref: "#/components/schemas/View" + type: array + items: + $ref: "#/components/schemas/Metadata" default: $ref: "#/components/responses/Error" - post: - summary: Adds a zone to a given view, creating it if needed - operationId: addToView + summary: "Creates a set of metadata entries" + description: "Creates a set of metadata entries of given kind for the zone. Existing metadata entries for the zone with the same kind are not overwritten." + operationId: createMetadata tags: - - views + - zonemetadata + requestBody: required: true + description: Metadata object with list of values to create content: application/json: schema: - type: object - additionalProperties: false - properties: - name: - type: string - description: The zone to add to the view + $ref: "#/components/schemas/Metadata" responses: "204": - description: "Returns 204 No Content on success." + description: OK default: $ref: "#/components/responses/Error" - "/servers/{server_id}/views/{view}/{id}": + "/servers/{server_id}/zones/{zone_id}/metadata/{metadata_kind}": parameters: - $ref: "#/components/parameters/server_id" - - $ref: "#/components/parameters/view" - - name: id - description: The zone to remove from the view - required: true - in: path + - $ref: "#/components/parameters/zone_id" + - name: metadata_kind schema: type: string - delete: - summary: Removes the given zone from the given view - operationId: deleteFromView + in: path + required: true + description: The kind of metadata + get: + summary: "Get the content of a single kind of domain metadata as a Metadata object." + operationId: getMetadata tags: - - views + - zonemetadata responses: - "204": - description: "Returns 204 No Content on success." + "200": + description: Metadata object with list of values + content: + application/json: + schema: + $ref: "#/components/schemas/Metadata" default: $ref: "#/components/responses/Error" - - "/servers/{server_id}/networks": - parameters: - - $ref: "#/components/parameters/server_id" - get: - summary: List all registered networks and views in a server - operationId: listNetworks + put: + summary: "Replace the content of a single kind of domain metadata." + description: "Creates a set of metadata entries of given kind for the zone. Existing metadata entries for the zone with the same kind are removed." + operationId: modifyMetadata tags: - - networks + - zonemetadata responses: "200": - description: An array of networks + description: Metadata object with list of values content: application/json: schema: - $ref: "#/components/schemas/Networks" + $ref: "#/components/schemas/Metadata" + default: + $ref: "#/components/responses/Error" + delete: + summary: "Delete all items of a single kind of domain metadata." + operationId: deleteMetadata + tags: + - zonemetadata + responses: + "204": + description: OK default: $ref: "#/components/responses/Error" - "/servers/{server_id}/networks/{ip}/{prefixlen}": + "/servers/{server_id}/zones/{zone_id}/notify": parameters: - $ref: "#/components/parameters/server_id" - - name: ip - schema: - type: string - in: path - required: true - description: The base address of the network - - name: prefixlen - schema: - type: string - in: path - required: true - description: The length of the network prefix - get: - summary: Return the view associated to the given network - operationId: getNetwork + - $ref: "#/components/parameters/zone_id" + put: + summary: Send a DNS NOTIFY to all slaves. + description: "Fails when zone kind is not Master or Slave, or master and slave are disabled in the configuration. Only works for Slave if renotify is on. Clients MUST NOT send a body." + operationId: notifyZone tags: - - networks + - zones responses: "200": - description: A network - content: - application/json: - schema: - $ref: "#/components/schemas/Network" + description: OK default: $ref: "#/components/responses/Error" + "/servers/{server_id}/zones/{zone_id}/rectify": + parameters: + - $ref: "#/components/parameters/server_id" + - $ref: "#/components/parameters/zone_id" put: - summary: Sets the view associated to the given network - operationId: setNetwork + summary: "Rectify the zone data." + description: "This does not take into account the API-RECTIFY metadata. Fails on slave zones and zones that do not have DNSSEC." + operationId: rectifyZone tags: - - networks - requestBody: - required: true - content: - application/json: - schema: - type: object - additionalProperties: false - properties: - view: - type: string - description: The name of the view to use for this network - + - zones responses: - "204": - description: "Returns 204 No Content on success." + "200": + description: OK + content: + application/json: + schema: + type: string default: $ref: "#/components/responses/Error"