Files
ziti/controller/rest_server/embedded_spec.go
T
2026-06-11 13:45:58 -04:00

8888 lines
257 KiB
Go

// Code generated by go-swagger; DO NOT EDIT.
//
// Copyright NetFoundry Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// __ __ _
// \ \ / / (_)
// \ \ /\ / /_ _ _ __ _ __ _ _ __ __ _
// \ \/ \/ / _` | '__| '_ \| | '_ \ / _` |
// \ /\ / (_| | | | | | | | | | | (_| | : This file is generated, do not edit it.
// \/ \/ \__,_|_| |_| |_|_|_| |_|\__, |
// __/ |
// |___/
package rest_server
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"encoding/json"
)
var (
// SwaggerJSON embedded version of the swagger document used at generation time
SwaggerJSON json.RawMessage
// FlatSwaggerJSON embedded flattened version of the swagger document used at generation time
FlatSwaggerJSON json.RawMessage
)
func init() {
SwaggerJSON = json.RawMessage([]byte(`{
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"schemes": [
"https"
],
"swagger": "2.0",
"info": {
"description": "OpenZiti Fabric API",
"title": "Ziti Fabric",
"contact": {
"name": "OpenZiti",
"url": "https://openziti.discourse.group",
"email": "help@openziti.org"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "0.16.54"
},
"host": "demo.ziti.dev",
"basePath": "/fabric/v1",
"paths": {
"/circuits": {
"get": {
"description": "Retrieves a list of circuit resources; does not supports filtering, sorting, or pagination. Requires admin access.\n",
"tags": [
"Circuit"
],
"summary": "List circuits",
"operationId": "listCircuits",
"parameters": [
{
"$ref": "#/parameters/limit"
},
{
"$ref": "#/parameters/offset"
},
{
"$ref": "#/parameters/filter"
}
],
"responses": {
"200": {
"$ref": "#/responses/listCircuits"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
}
},
"/circuits/{id}": {
"get": {
"description": "Retrieves a single circuit by id. Requires admin access.",
"tags": [
"Circuit"
],
"summary": "Retrieves a single circuit",
"operationId": "detailCircuit",
"responses": {
"200": {
"$ref": "#/responses/detailCircuit"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
},
"delete": {
"description": "Delete a circuit by id. Requires admin access.",
"tags": [
"Circuit"
],
"summary": "Delete a circuit",
"operationId": "deleteCircuit",
"parameters": [
{
"description": "A circuit delete object",
"name": "options",
"in": "body",
"schema": {
"$ref": "#/definitions/circuitDelete"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/deleteResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"409": {
"$ref": "#/responses/cannotDeleteReferencedResourceResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"parameters": [
{
"$ref": "#/parameters/id"
}
]
},
"/cluster/add-member": {
"post": {
"description": "Add a member to the controller cluster. Requires admin access.",
"tags": [
"Cluster"
],
"summary": "Add a member to the controller cluster",
"operationId": "clusterMemberAdd",
"parameters": [
{
"description": "member parameters",
"name": "member",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/clusterMemberAdd"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/emptyResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
}
},
"/cluster/list-members": {
"get": {
"description": "Returns all members of a cluster and their current status",
"tags": [
"Cluster"
],
"summary": "Returns all members of a cluster and their current status",
"operationId": "clusterListMembers",
"responses": {
"200": {
"$ref": "#/responses/clusterListMembersResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
}
},
"/cluster/remove-member": {
"post": {
"description": "Remove a member from the controller cluster. Requires admin access.",
"tags": [
"Cluster"
],
"summary": "Remove a member from the controller cluster",
"operationId": "clusterMemberRemove",
"parameters": [
{
"description": "member parameters",
"name": "member",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/clusterMemberRemove"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/emptyResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
}
},
"/cluster/transfer-leadership": {
"post": {
"description": "Attempts to transfer leadership to a different member of the cluster. Requires admin access.",
"tags": [
"Cluster"
],
"summary": "Attempts to transfer leadership to a different member of the cluster",
"operationId": "clusterTransferLeadership",
"parameters": [
{
"description": "transfer operation parameters",
"name": "member",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/clusterTransferLeadership"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/emptyResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"500": {
"$ref": "#/responses/badRequestResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
}
},
"/database": {
"post": {
"description": "Create a new database snapshot. Requires admin access.",
"tags": [
"Database"
],
"summary": "Create a new database snapshot",
"operationId": "createDatabaseSnapshot",
"responses": {
"200": {
"$ref": "#/responses/emptyResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
}
},
"/database/check-data-integrity": {
"post": {
"description": "Starts a data integrity scan on the datastore. Requires admin access. Only once instance may run at a time, including runs of fixDataIntegrity.",
"tags": [
"Database"
],
"summary": "Starts a data integrity scan on the datastore",
"operationId": "checkDataIntegrity",
"responses": {
"202": {
"$ref": "#/responses/emptyResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
}
},
"/database/data-integrity-results": {
"get": {
"description": "Returns any results found from in-progress integrity checks. Requires admin access.",
"tags": [
"Database"
],
"summary": "Returns any results found from in-progress integrity checks",
"operationId": "dataIntegrityResults",
"responses": {
"200": {
"$ref": "#/responses/dataIntegrityCheckResult"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
}
},
"/database/fix-data-integrity": {
"post": {
"description": "Runs a data integrity scan on the datastore, attempts to fix any issues it can, and returns any found issues. Requires admin access. Only once instance may run at a time, including runs of checkDataIntegrity.",
"tags": [
"Database"
],
"summary": "Runs a data integrity scan on the datastore, attempts to fix any issues it can and returns any found issues",
"operationId": "fixDataIntegrity",
"responses": {
"202": {
"$ref": "#/responses/emptyResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
}
},
"/database/snapshot": {
"post": {
"description": "Create a new database snapshot with path. Requires admin access.",
"tags": [
"Database"
],
"summary": "Create a new database snapshot with path",
"operationId": "createDatabaseSnapshotWithPath",
"parameters": [
{
"description": "snapshot parameters",
"name": "snapshot",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/databaseSnapshotCreate"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/databaseSnapshotCreateResult"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
}
},
"/inspections": {
"post": {
"description": "Requests system information, such as stack dumps or information about capabilities. Requires admin access.\n",
"tags": [
"Inspect"
],
"summary": "Inspect system values",
"operationId": "inspect",
"parameters": [
{
"description": "An inspect request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/inspectRequest"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/inspectResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
}
},
"/links": {
"get": {
"description": "Retrieves a list of link resources; does not supports filtering, sorting, or pagination. Requires admin access.\n",
"tags": [
"Link"
],
"summary": "List links",
"operationId": "listLinks",
"parameters": [
{
"$ref": "#/parameters/limit"
},
{
"$ref": "#/parameters/offset"
},
{
"$ref": "#/parameters/filter"
}
],
"responses": {
"200": {
"$ref": "#/responses/listLinks"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
}
},
"/links/{id}": {
"get": {
"description": "Retrieves a single link by id. Requires admin access.",
"tags": [
"Link"
],
"summary": "Retrieves a single link",
"operationId": "detailLink",
"responses": {
"200": {
"$ref": "#/responses/detailLink"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
},
"delete": {
"description": "Delete a link by id. Requires admin access.",
"tags": [
"Link"
],
"summary": "Delete a link",
"operationId": "deleteLink",
"responses": {
"200": {
"$ref": "#/responses/deleteResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"patch": {
"description": "Update the supplied fields on a link. Requires admin access.",
"tags": [
"Link"
],
"summary": "Update the supplied fields on a link",
"operationId": "patchLink",
"parameters": [
{
"description": "A link patch object",
"name": "link",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/linkPatch"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/patchResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"parameters": [
{
"$ref": "#/parameters/id"
}
]
},
"/routers": {
"get": {
"description": "Retrieves a list of router resources; supports filtering, sorting, and pagination. Requires admin access.\n",
"tags": [
"Router"
],
"summary": "List routers",
"operationId": "listRouters",
"parameters": [
{
"$ref": "#/parameters/limit"
},
{
"$ref": "#/parameters/offset"
},
{
"$ref": "#/parameters/filter"
}
],
"responses": {
"200": {
"$ref": "#/responses/listRouters"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
},
"post": {
"description": "Create a router resource. Requires admin access.",
"tags": [
"Router"
],
"summary": "Create a router resource",
"operationId": "createRouter",
"parameters": [
{
"description": "A router to create",
"name": "router",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/routerCreate"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/createResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
}
},
"/routers/{id}": {
"get": {
"description": "Retrieves a single router by id. Requires admin access.",
"tags": [
"Router"
],
"summary": "Retrieves a single router",
"operationId": "detailRouter",
"responses": {
"200": {
"$ref": "#/responses/detailRouter"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
},
"put": {
"description": "Update all fields on a router by id. Requires admin access.",
"tags": [
"Router"
],
"summary": "Update all fields on a router",
"operationId": "updateRouter",
"parameters": [
{
"description": "A router update object",
"name": "router",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/routerUpdate"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/updateResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"delete": {
"description": "Delete a router by id. Requires admin access.",
"tags": [
"Router"
],
"summary": "Delete a router",
"operationId": "deleteRouter",
"responses": {
"200": {
"$ref": "#/responses/deleteResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"409": {
"$ref": "#/responses/cannotDeleteReferencedResourceResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"patch": {
"description": "Update the supplied fields on a router. Requires admin access.",
"tags": [
"Router"
],
"summary": "Update the supplied fields on a router",
"operationId": "patchRouter",
"parameters": [
{
"description": "A router patch object",
"name": "router",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/routerPatch"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/patchResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"parameters": [
{
"$ref": "#/parameters/id"
}
]
},
"/routers/{id}/terminators": {
"get": {
"description": "Retrieves a list of terminator resources that are assigned specific router; supports filtering, sorting, and pagination.\n",
"tags": [
"Router"
],
"summary": "List of terminators assigned to a router",
"operationId": "listRouterTerminators",
"parameters": [
{
"$ref": "#/parameters/limit"
},
{
"$ref": "#/parameters/offset"
},
{
"$ref": "#/parameters/filter"
}
],
"responses": {
"200": {
"$ref": "#/responses/listTerminators"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
},
"parameters": [
{
"$ref": "#/parameters/id"
}
]
},
"/services": {
"get": {
"description": "Retrieves a list of service resources; supports filtering, sorting, and pagination. Requires admin access.\n",
"tags": [
"Service"
],
"summary": "List services",
"operationId": "listServices",
"parameters": [
{
"$ref": "#/parameters/limit"
},
{
"$ref": "#/parameters/offset"
},
{
"$ref": "#/parameters/filter"
}
],
"responses": {
"200": {
"$ref": "#/responses/listServices"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
},
"post": {
"description": "Create a service resource. Requires admin access.",
"tags": [
"Service"
],
"summary": "Create a service resource",
"operationId": "createService",
"parameters": [
{
"description": "A service to create",
"name": "service",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/serviceCreate"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/createResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
}
},
"/services/{id}": {
"get": {
"description": "Retrieves a single service by id. Requires admin access.",
"tags": [
"Service"
],
"summary": "Retrieves a single service",
"operationId": "detailService",
"responses": {
"200": {
"$ref": "#/responses/detailService"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
},
"put": {
"description": "Update all fields on a service by id. Requires admin access.",
"tags": [
"Service"
],
"summary": "Update all fields on a service",
"operationId": "updateService",
"parameters": [
{
"description": "A service update object",
"name": "service",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/serviceUpdate"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/updateResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"delete": {
"description": "Delete a service by id. Requires admin access.",
"tags": [
"Service"
],
"summary": "Delete a service",
"operationId": "deleteService",
"responses": {
"200": {
"$ref": "#/responses/deleteResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"409": {
"$ref": "#/responses/cannotDeleteReferencedResourceResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"patch": {
"description": "Update the supplied fields on a service. Requires admin access.",
"tags": [
"Service"
],
"summary": "Update the supplied fields on a service",
"operationId": "patchService",
"parameters": [
{
"description": "A service patch object",
"name": "service",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/servicePatch"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/patchResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"parameters": [
{
"$ref": "#/parameters/id"
}
]
},
"/services/{id}/terminators": {
"get": {
"description": "Retrieves a list of terminator resources that are assigned specific service; supports filtering, sorting, and pagination.\n",
"tags": [
"Service"
],
"summary": "List of terminators assigned to a service",
"operationId": "listServiceTerminators",
"parameters": [
{
"$ref": "#/parameters/limit"
},
{
"$ref": "#/parameters/offset"
},
{
"$ref": "#/parameters/filter"
}
],
"responses": {
"200": {
"$ref": "#/responses/listTerminators"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
},
"parameters": [
{
"$ref": "#/parameters/id"
}
]
},
"/terminators": {
"get": {
"description": "Retrieves a list of terminator resources; supports filtering, sorting, and pagination. Requires admin access.\n",
"tags": [
"Terminator"
],
"summary": "List terminators",
"operationId": "listTerminators",
"parameters": [
{
"$ref": "#/parameters/limit"
},
{
"$ref": "#/parameters/offset"
},
{
"$ref": "#/parameters/filter"
}
],
"responses": {
"200": {
"$ref": "#/responses/listTerminators"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
},
"post": {
"description": "Create a terminator resource. Requires admin access.",
"tags": [
"Terminator"
],
"summary": "Create a terminator resource",
"operationId": "createTerminator",
"parameters": [
{
"description": "A terminator to create",
"name": "terminator",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/terminatorCreate"
}
}
],
"responses": {
"201": {
"$ref": "#/responses/createResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
}
},
"/terminators/{id}": {
"get": {
"description": "Retrieves a single terminator by id. Requires admin access.",
"tags": [
"Terminator"
],
"summary": "Retrieves a single terminator",
"operationId": "detailTerminator",
"responses": {
"200": {
"$ref": "#/responses/detailTerminator"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
}
}
},
"put": {
"description": "Update all fields on a terminator by id. Requires admin access.",
"tags": [
"Terminator"
],
"summary": "Update all fields on a terminator",
"operationId": "updateTerminator",
"parameters": [
{
"description": "A terminator update object",
"name": "terminator",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/terminatorUpdate"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/updateResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"delete": {
"description": "Delete a terminator by id. Requires admin access.",
"tags": [
"Terminator"
],
"summary": "Delete a terminator",
"operationId": "deleteTerminator",
"responses": {
"200": {
"$ref": "#/responses/deleteResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"409": {
"$ref": "#/responses/cannotDeleteReferencedResourceResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"patch": {
"description": "Update the supplied fields on a terminator. Requires admin access.",
"tags": [
"Terminator"
],
"summary": "Update the supplied fields on a terminator",
"operationId": "patchTerminator",
"parameters": [
{
"description": "A terminator patch object",
"name": "terminator",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/terminatorPatch"
}
}
],
"responses": {
"200": {
"$ref": "#/responses/patchResponse"
},
"400": {
"$ref": "#/responses/badRequestResponse"
},
"401": {
"$ref": "#/responses/unauthorizedResponse"
},
"404": {
"$ref": "#/responses/notFoundResponse"
},
"429": {
"$ref": "#/responses/rateLimitedResponse"
},
"503": {
"$ref": "#/responses/serverUnavailableResponse"
}
}
},
"parameters": [
{
"$ref": "#/parameters/id"
}
]
}
},
"definitions": {
"apiError": {
"type": "object",
"properties": {
"args": {
"$ref": "#/definitions/apiErrorArgs"
},
"cause": {
"$ref": "#/definitions/apiErrorCause"
},
"causeMessage": {
"type": "string"
},
"code": {
"type": "string"
},
"data": {
"type": "object",
"additionalProperties": true
},
"message": {
"type": "string"
},
"requestId": {
"type": "string"
}
}
},
"apiErrorArgs": {
"type": "object",
"properties": {
"urlVars": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"apiErrorCause": {
"allOf": [
{
"$ref": "#/definitions/apiFieldError"
},
{
"$ref": "#/definitions/apiError"
}
]
},
"apiErrorEnvelope": {
"type": "object",
"required": [
"meta",
"error"
],
"properties": {
"error": {
"$ref": "#/definitions/apiError"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"apiFieldError": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"baseEntity": {
"description": "Fields shared by all Edge API entities",
"type": "object",
"required": [
"id",
"createdAt",
"updatedAt",
"_links",
"tags"
],
"properties": {
"_links": {
"$ref": "#/definitions/links"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"id": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"circuitDelete": {
"type": "object",
"properties": {
"immediate": {
"type": "boolean"
}
}
},
"circuitDetail": {
"allOf": [
{
"$ref": "#/definitions/baseEntity"
},
{
"type": "object",
"required": [
"service",
"terminator",
"path"
],
"properties": {
"clientId": {
"type": "string"
},
"path": {
"$ref": "#/definitions/path"
},
"service": {
"$ref": "#/definitions/entityRef"
},
"terminator": {
"$ref": "#/definitions/entityRef"
}
}
}
]
},
"circuitList": {
"type": "array",
"items": {
"$ref": "#/definitions/circuitDetail"
}
},
"clusterMemberAdd": {
"type": "object",
"required": [
"address",
"isVoter"
],
"properties": {
"address": {
"type": "string"
},
"isVoter": {
"type": "boolean"
}
}
},
"clusterMemberListResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/clusterMemberListValue"
}
}
}
},
"clusterMemberListValue": {
"type": "object",
"required": [
"id",
"address",
"voter",
"leader",
"version",
"connected",
"readOnly"
],
"properties": {
"address": {
"type": "string"
},
"connected": {
"type": "boolean"
},
"id": {
"type": "string"
},
"leader": {
"type": "boolean"
},
"preferredLeader": {
"type": "boolean"
},
"readOnly": {
"type": "boolean"
},
"version": {
"type": "string"
},
"voter": {
"type": "boolean"
}
}
},
"clusterMemberRemove": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
},
"clusterTransferLeadership": {
"type": "object",
"properties": {
"newLeaderId": {
"type": "string"
}
}
},
"createEnvelope": {
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/createLocation"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"createLocation": {
"type": "object",
"properties": {
"_links": {
"$ref": "#/definitions/links"
},
"id": {
"type": "string"
}
}
},
"dataIntegrityCheckDetail": {
"type": "object",
"required": [
"description",
"fixed"
],
"properties": {
"description": {
"type": "string"
},
"fixed": {
"type": "boolean"
}
}
},
"dataIntegrityCheckDetailList": {
"type": "array",
"items": {
"$ref": "#/definitions/dataIntegrityCheckDetail"
}
},
"dataIntegrityCheckDetails": {
"type": "object",
"required": [
"inProgress",
"fixingErrors",
"tooManyErrors",
"startTime",
"endTime",
"error",
"results"
],
"properties": {
"endTime": {
"type": "string",
"format": "date-time"
},
"error": {
"type": "string"
},
"fixingErrors": {
"type": "boolean"
},
"inProgress": {
"type": "boolean"
},
"results": {
"$ref": "#/definitions/dataIntegrityCheckDetailList"
},
"startTime": {
"type": "string",
"format": "date-time"
},
"tooManyErrors": {
"type": "boolean"
}
}
},
"dataIntegrityCheckResultEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/dataIntegrityCheckDetails"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"databaseSnapshotCreate": {
"type": "object",
"properties": {
"path": {
"type": "string"
}
}
},
"databaseSnapshotCreateDetails": {
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"type": "string"
}
}
},
"databaseSnapshotCreateResultEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/databaseSnapshotCreateDetails"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"detailCircuitEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/circuitDetail"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"detailLinkEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/linkDetail"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"detailRouterEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/routerDetail"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"detailServiceEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/serviceDetail"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"detailTerminatorEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/terminatorDetail"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"empty": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"type": "object",
"example": {}
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"entityRef": {
"description": "A reference to another resource and links to interact with it",
"type": "object",
"properties": {
"_links": {
"$ref": "#/definitions/links"
},
"entity": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"inspectRequest": {
"type": "object",
"required": [
"appRegex",
"requestedValues"
],
"properties": {
"appRegex": {
"type": "string"
},
"requestedValues": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"inspectResponse": {
"type": "object",
"required": [
"success"
],
"properties": {
"errors": {
"type": "array",
"items": {
"type": "string"
}
},
"success": {
"type": "boolean"
},
"values": {
"type": "array",
"items": {
"$ref": "#/definitions/inspectResponseValue"
}
}
}
},
"inspectResponseValue": {
"type": "object",
"required": [
"appId",
"name",
"value"
],
"properties": {
"appId": {
"type": "string"
},
"name": {
"type": "string"
},
"value": {
"type": [
"object",
"string",
"number",
"boolean"
]
}
}
},
"interface": {
"description": "A resource describing a network interface",
"type": "object",
"required": [
"name",
"hardwareAddress",
"mtu",
"index",
"isUp",
"isRunning",
"isLoopback",
"isBroadcast",
"isMulticast",
"addresses"
],
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
}
},
"hardwareAddress": {
"type": "string"
},
"index": {
"type": "integer"
},
"isBroadcast": {
"type": "boolean"
},
"isLoopback": {
"type": "boolean"
},
"isMulticast": {
"type": "boolean"
},
"isRunning": {
"type": "boolean"
},
"isUp": {
"type": "boolean"
},
"mtu": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"link": {
"description": "A link to another resource",
"type": "object",
"required": [
"href"
],
"properties": {
"comment": {
"type": "string"
},
"href": {
"type": "string",
"format": "uri"
},
"method": {
"type": "string"
}
}
},
"linkConnection": {
"type": "object",
"properties": {
"dest": {
"type": "string"
},
"source": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"linkDetail": {
"type": "object",
"required": [
"id",
"protocol",
"sourceRouter",
"destRouter",
"state",
"staticCost",
"sourceLatency",
"destLatency",
"cost",
"down",
"iteration"
],
"properties": {
"connections": {
"type": "array",
"items": {
"$ref": "#/definitions/linkConnection"
}
},
"cost": {
"type": "integer"
},
"destLatency": {
"type": "integer"
},
"destRouter": {
"$ref": "#/definitions/entityRef"
},
"down": {
"type": "boolean"
},
"id": {
"type": "string"
},
"iteration": {
"type": "integer"
},
"protocol": {
"type": "string"
},
"sourceLatency": {
"type": "integer"
},
"sourceRouter": {
"$ref": "#/definitions/entityRef"
},
"state": {
"type": "string"
},
"staticCost": {
"type": "integer"
}
}
},
"linkList": {
"type": "array",
"items": {
"$ref": "#/definitions/linkDetail"
}
},
"linkPatch": {
"type": "object",
"properties": {
"down": {
"type": "boolean"
},
"staticCost": {
"type": "integer"
}
}
},
"links": {
"description": "A map of named links",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/link"
},
"x-omitempty": false
},
"listCircuitsEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/circuitList"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"listLinksEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/linkList"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"listRoutersEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/routerList"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"listServicesEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/serviceList"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"listTerminatorsEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/terminatorList"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"meta": {
"type": "object",
"properties": {
"apiEnrollmentVersion": {
"type": "string"
},
"apiVersion": {
"type": "string"
},
"filterableFields": {
"type": "array",
"items": {
"type": "string"
},
"x-omitempty": true
},
"pagination": {
"$ref": "#/definitions/pagination"
}
}
},
"pagination": {
"type": "object",
"required": [
"limit",
"offset",
"totalCount"
],
"properties": {
"limit": {
"type": "number",
"format": "int64"
},
"offset": {
"type": "number",
"format": "int64"
},
"totalCount": {
"type": "number",
"format": "int64"
}
}
},
"path": {
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"$ref": "#/definitions/entityRef"
}
},
"nodes": {
"type": "array",
"items": {
"$ref": "#/definitions/entityRef"
}
}
}
},
"routerCreate": {
"type": "object",
"required": [
"id",
"name",
"cost",
"noTraversal"
],
"properties": {
"configs": {
"type": "array",
"items": {
"type": "string"
}
},
"cost": {
"type": "integer",
"maximum": 65535
},
"ctrlChanListeners": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-omitempty": false
},
"disabled": {
"type": "boolean",
"x-nullable": true
},
"fingerprint": {
"type": "string",
"x-nullable": true
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"noTraversal": {
"type": "boolean"
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"routerDetail": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/baseEntity"
},
{
"type": "object",
"required": [
"name",
"fingerprint",
"connected",
"cost",
"noTraversal",
"disabled"
],
"properties": {
"configs": {
"type": "array",
"items": {
"type": "string"
}
},
"connected": {
"type": "boolean"
},
"cost": {
"type": "integer",
"maximum": 65535
},
"ctrlChanListeners": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"disabled": {
"type": "boolean"
},
"fingerprint": {
"type": "string"
},
"interfaces": {
"type": "array",
"items": {
"$ref": "#/definitions/interface"
}
},
"listenerAddresses": {
"type": "array",
"items": {
"$ref": "#/definitions/routerListener"
}
},
"name": {
"type": "string"
},
"noTraversal": {
"type": "boolean"
},
"versionInfo": {
"$ref": "#/definitions/versionInfo"
}
}
}
]
},
"routerList": {
"type": "array",
"items": {
"$ref": "#/definitions/routerDetail"
}
},
"routerListener": {
"type": "object",
"required": [
"address",
"protocol"
],
"properties": {
"address": {
"type": "string"
},
"protocol": {
"type": "string"
}
}
},
"routerPatch": {
"type": "object",
"properties": {
"configs": {
"type": "array",
"items": {
"type": "string"
}
},
"cost": {
"type": "integer",
"maximum": 65535,
"x-nullable": true
},
"ctrlChanListeners": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-omitempty": false
},
"disabled": {
"type": "boolean",
"x-nullable": true
},
"fingerprint": {
"type": "string",
"x-nullable": true
},
"name": {
"type": "string"
},
"noTraversal": {
"type": "boolean",
"x-nullable": true
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"routerUpdate": {
"type": "object",
"required": [
"name",
"fingerprint",
"cost",
"noTraversal"
],
"properties": {
"configs": {
"type": "array",
"items": {
"type": "string"
}
},
"cost": {
"type": "integer",
"maximum": 65535
},
"ctrlChanListeners": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-omitempty": false
},
"disabled": {
"type": "boolean",
"x-nullable": true
},
"fingerprint": {
"type": "string"
},
"name": {
"type": "string"
},
"noTraversal": {
"type": "boolean"
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"serviceCreate": {
"type": "object",
"required": [
"name"
],
"properties": {
"maxIdleTimeMillis": {
"type": "integer"
},
"name": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
},
"terminatorStrategy": {
"type": "string"
}
}
},
"serviceDetail": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/baseEntity"
},
{
"type": "object",
"required": [
"name",
"terminatorStrategy",
"maxIdleTimeMillis"
],
"properties": {
"maxIdleTimeMillis": {
"type": "integer"
},
"name": {
"type": "string"
},
"terminatorStrategy": {
"type": "string"
}
}
}
]
},
"serviceList": {
"type": "array",
"items": {
"$ref": "#/definitions/serviceDetail"
}
},
"servicePatch": {
"type": "object",
"properties": {
"maxIdleTimeMillis": {
"type": "integer"
},
"name": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
},
"terminatorStrategy": {
"type": "string"
}
}
},
"serviceUpdate": {
"type": "object",
"required": [
"name"
],
"properties": {
"maxIdleTimeMillis": {
"type": "integer"
},
"name": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
},
"terminatorStrategy": {
"type": "string"
}
}
},
"subTags": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"tags": {
"description": "A map of user defined fields and values. The values are limited to the following types/values: null, string, boolean",
"allOf": [
{
"$ref": "#/definitions/subTags"
}
],
"x-nullable": true
},
"terminatorCost": {
"type": "integer",
"maximum": 65535
},
"terminatorCostMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/terminatorCost"
}
},
"terminatorCreate": {
"type": "object",
"required": [
"service",
"router",
"address",
"binding"
],
"properties": {
"address": {
"type": "string"
},
"binding": {
"type": "string"
},
"cost": {
"$ref": "#/definitions/terminatorCost"
},
"hostId": {
"type": "string"
},
"instanceId": {
"type": "string"
},
"instanceSecret": {
"type": "string",
"format": "byte"
},
"precedence": {
"$ref": "#/definitions/terminatorPrecedence"
},
"router": {
"type": "string"
},
"service": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"terminatorDetail": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/baseEntity"
},
{
"type": "object",
"required": [
"serviceId",
"service",
"routerId",
"router",
"binding",
"address",
"instanceId",
"cost",
"precedence",
"dynamicCost",
"hostId"
],
"properties": {
"address": {
"type": "string"
},
"binding": {
"type": "string"
},
"cost": {
"$ref": "#/definitions/terminatorCost"
},
"dynamicCost": {
"$ref": "#/definitions/terminatorCost"
},
"hostId": {
"type": "string"
},
"instanceId": {
"type": "string"
},
"precedence": {
"$ref": "#/definitions/terminatorPrecedence"
},
"router": {
"$ref": "#/definitions/entityRef"
},
"routerId": {
"type": "string"
},
"service": {
"$ref": "#/definitions/entityRef"
},
"serviceId": {
"type": "string"
}
}
}
]
},
"terminatorList": {
"type": "array",
"items": {
"$ref": "#/definitions/terminatorDetail"
}
},
"terminatorPatch": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"binding": {
"type": "string"
},
"cost": {
"$ref": "#/definitions/terminatorCost"
},
"hostId": {
"type": "string"
},
"precedence": {
"$ref": "#/definitions/terminatorPrecedence"
},
"router": {
"type": "string"
},
"service": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"terminatorPrecedence": {
"type": "string",
"enum": [
"default",
"required",
"failed"
]
},
"terminatorPrecedenceMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/terminatorPrecedence"
}
},
"terminatorUpdate": {
"type": "object",
"required": [
"service",
"router",
"address",
"binding"
],
"properties": {
"address": {
"type": "string"
},
"binding": {
"type": "string"
},
"cost": {
"$ref": "#/definitions/terminatorCost"
},
"hostId": {
"type": "string"
},
"precedence": {
"$ref": "#/definitions/terminatorPrecedence"
},
"router": {
"type": "string"
},
"service": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"versionInfo": {
"description": "Application build information",
"type": "object",
"properties": {
"arch": {
"type": "string"
},
"buildDate": {
"type": "string"
},
"os": {
"type": "string"
},
"revision": {
"type": "string"
},
"version": {
"type": "string"
}
}
}
},
"parameters": {
"filter": {
"type": "string",
"name": "filter",
"in": "query"
},
"id": {
"type": "string",
"description": "The id of the requested resource",
"name": "id",
"in": "path",
"required": true
},
"limit": {
"type": "integer",
"name": "limit",
"in": "query"
},
"offset": {
"type": "integer",
"name": "offset",
"in": "query"
}
},
"responses": {
"badRequestResponse": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"cannotDeleteReferencedResourceResponse": {
"description": "The resource requested to be removed/altered cannot be as it is referenced by another object.",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"causeMessage": "referenced by /some-resource/05f4f710-c155-4a74-86d5-77558eb9cb42",
"code": "CONFLICT_CANNOT_MODIFY_REFERENCED",
"message": "The resource cannot be deleted/modified. Remove all referencing resources first.",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"clusterListMembersResponse": {
"description": "A response to a cluster list-members request",
"schema": {
"$ref": "#/definitions/clusterMemberListResponse"
}
},
"createResponse": {
"description": "The create request was successful and the resource has been added at the following location",
"schema": {
"$ref": "#/definitions/createEnvelope"
}
},
"dataIntegrityCheckResult": {
"description": "A list of data integrity issues found",
"schema": {
"$ref": "#/definitions/dataIntegrityCheckResultEnvelope"
}
},
"databaseSnapshotCreateResult": {
"description": "The path to the created snapshot",
"schema": {
"$ref": "#/definitions/databaseSnapshotCreateResultEnvelope"
}
},
"deleteResponse": {
"description": "The delete request was successful and the resource has been removed",
"schema": {
"$ref": "#/definitions/empty"
}
},
"detailCircuit": {
"description": "A single circuit",
"schema": {
"$ref": "#/definitions/detailCircuitEnvelope"
}
},
"detailLink": {
"description": "A single link",
"schema": {
"$ref": "#/definitions/detailLinkEnvelope"
}
},
"detailRouter": {
"description": "A single router",
"schema": {
"$ref": "#/definitions/detailRouterEnvelope"
}
},
"detailService": {
"description": "A single service",
"schema": {
"$ref": "#/definitions/detailServiceEnvelope"
}
},
"detailTerminator": {
"description": "A single terminator",
"schema": {
"$ref": "#/definitions/detailTerminatorEnvelope"
}
},
"emptyResponse": {
"description": "Base empty response",
"schema": {
"$ref": "#/definitions/empty"
}
},
"inspectResponse": {
"description": "A response to an inspect request",
"schema": {
"$ref": "#/definitions/inspectResponse"
}
},
"invalidAuthResponse": {
"description": "The authentication request could not be processed as the credentials are invalid",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "INVALID_AUTH",
"message": "The authentication request failed",
"requestId": "5952ed10-3091-474f-a691-47ebab6990dc"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"listCircuits": {
"description": "A list of circuits",
"schema": {
"$ref": "#/definitions/listCircuitsEnvelope"
}
},
"listLinks": {
"description": "A list of links",
"schema": {
"$ref": "#/definitions/listLinksEnvelope"
}
},
"listRouters": {
"description": "A list of routers",
"schema": {
"$ref": "#/definitions/listRoutersEnvelope"
}
},
"listServices": {
"description": "A list of services",
"schema": {
"$ref": "#/definitions/listServicesEnvelope"
}
},
"listTerminators": {
"description": "A list of terminators",
"schema": {
"$ref": "#/definitions/listTerminatorsEnvelope"
}
},
"notFoundResponse": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"patchResponse": {
"description": "The patch request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
},
"rateLimitedResponse": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"serverUnavailableResponse": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
},
"unauthorizedResponse": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"updateResponse": {
"description": "The update request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
}
},
"securityDefinitions": {
"oauth2": {
"type": "oauth2",
"flow": "accessCode",
"authorizationUrl": "/oidc/authorize",
"tokenUrl": "/oidc/token",
"scopes": {
"openid": "openid"
}
},
"ztSession": {
"description": "An API Key that is provided post authentication",
"type": "apiKey",
"name": "zt-session",
"in": "header"
}
},
"security": [
{
"ztSession": []
},
{
"oauth2": [
"openid"
]
}
]
}`))
FlatSwaggerJSON = json.RawMessage([]byte(`{
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"schemes": [
"https"
],
"swagger": "2.0",
"info": {
"description": "OpenZiti Fabric API",
"title": "Ziti Fabric",
"contact": {
"name": "OpenZiti",
"url": "https://openziti.discourse.group",
"email": "help@openziti.org"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "0.16.54"
},
"host": "demo.ziti.dev",
"basePath": "/fabric/v1",
"paths": {
"/circuits": {
"get": {
"description": "Retrieves a list of circuit resources; does not supports filtering, sorting, or pagination. Requires admin access.\n",
"tags": [
"Circuit"
],
"summary": "List circuits",
"operationId": "listCircuits",
"parameters": [
{
"type": "integer",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"name": "offset",
"in": "query"
},
{
"type": "string",
"name": "filter",
"in": "query"
}
],
"responses": {
"200": {
"description": "A list of circuits",
"schema": {
"$ref": "#/definitions/listCircuitsEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
}
},
"/circuits/{id}": {
"get": {
"description": "Retrieves a single circuit by id. Requires admin access.",
"tags": [
"Circuit"
],
"summary": "Retrieves a single circuit",
"operationId": "detailCircuit",
"responses": {
"200": {
"description": "A single circuit",
"schema": {
"$ref": "#/definitions/detailCircuitEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
},
"delete": {
"description": "Delete a circuit by id. Requires admin access.",
"tags": [
"Circuit"
],
"summary": "Delete a circuit",
"operationId": "deleteCircuit",
"parameters": [
{
"description": "A circuit delete object",
"name": "options",
"in": "body",
"schema": {
"$ref": "#/definitions/circuitDelete"
}
}
],
"responses": {
"200": {
"description": "The delete request was successful and the resource has been removed",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"409": {
"description": "The resource requested to be removed/altered cannot be as it is referenced by another object.",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"causeMessage": "referenced by /some-resource/05f4f710-c155-4a74-86d5-77558eb9cb42",
"code": "CONFLICT_CANNOT_MODIFY_REFERENCED",
"message": "The resource cannot be deleted/modified. Remove all referencing resources first.",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"parameters": [
{
"type": "string",
"description": "The id of the requested resource",
"name": "id",
"in": "path",
"required": true
}
]
},
"/cluster/add-member": {
"post": {
"description": "Add a member to the controller cluster. Requires admin access.",
"tags": [
"Cluster"
],
"summary": "Add a member to the controller cluster",
"operationId": "clusterMemberAdd",
"parameters": [
{
"description": "member parameters",
"name": "member",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/clusterMemberAdd"
}
}
],
"responses": {
"200": {
"description": "Base empty response",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
}
},
"/cluster/list-members": {
"get": {
"description": "Returns all members of a cluster and their current status",
"tags": [
"Cluster"
],
"summary": "Returns all members of a cluster and their current status",
"operationId": "clusterListMembers",
"responses": {
"200": {
"description": "A response to a cluster list-members request",
"schema": {
"$ref": "#/definitions/clusterMemberListResponse"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
}
},
"/cluster/remove-member": {
"post": {
"description": "Remove a member from the controller cluster. Requires admin access.",
"tags": [
"Cluster"
],
"summary": "Remove a member from the controller cluster",
"operationId": "clusterMemberRemove",
"parameters": [
{
"description": "member parameters",
"name": "member",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/clusterMemberRemove"
}
}
],
"responses": {
"200": {
"description": "Base empty response",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
}
},
"/cluster/transfer-leadership": {
"post": {
"description": "Attempts to transfer leadership to a different member of the cluster. Requires admin access.",
"tags": [
"Cluster"
],
"summary": "Attempts to transfer leadership to a different member of the cluster",
"operationId": "clusterTransferLeadership",
"parameters": [
{
"description": "transfer operation parameters",
"name": "member",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/clusterTransferLeadership"
}
}
],
"responses": {
"200": {
"description": "Base empty response",
"schema": {
"$ref": "#/definitions/empty"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"500": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
}
},
"/database": {
"post": {
"description": "Create a new database snapshot. Requires admin access.",
"tags": [
"Database"
],
"summary": "Create a new database snapshot",
"operationId": "createDatabaseSnapshot",
"responses": {
"200": {
"description": "Base empty response",
"schema": {
"$ref": "#/definitions/empty"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
}
},
"/database/check-data-integrity": {
"post": {
"description": "Starts a data integrity scan on the datastore. Requires admin access. Only once instance may run at a time, including runs of fixDataIntegrity.",
"tags": [
"Database"
],
"summary": "Starts a data integrity scan on the datastore",
"operationId": "checkDataIntegrity",
"responses": {
"202": {
"description": "Base empty response",
"schema": {
"$ref": "#/definitions/empty"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
}
},
"/database/data-integrity-results": {
"get": {
"description": "Returns any results found from in-progress integrity checks. Requires admin access.",
"tags": [
"Database"
],
"summary": "Returns any results found from in-progress integrity checks",
"operationId": "dataIntegrityResults",
"responses": {
"200": {
"description": "A list of data integrity issues found",
"schema": {
"$ref": "#/definitions/dataIntegrityCheckResultEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
}
},
"/database/fix-data-integrity": {
"post": {
"description": "Runs a data integrity scan on the datastore, attempts to fix any issues it can, and returns any found issues. Requires admin access. Only once instance may run at a time, including runs of checkDataIntegrity.",
"tags": [
"Database"
],
"summary": "Runs a data integrity scan on the datastore, attempts to fix any issues it can and returns any found issues",
"operationId": "fixDataIntegrity",
"responses": {
"202": {
"description": "Base empty response",
"schema": {
"$ref": "#/definitions/empty"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
}
},
"/database/snapshot": {
"post": {
"description": "Create a new database snapshot with path. Requires admin access.",
"tags": [
"Database"
],
"summary": "Create a new database snapshot with path",
"operationId": "createDatabaseSnapshotWithPath",
"parameters": [
{
"description": "snapshot parameters",
"name": "snapshot",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/databaseSnapshotCreate"
}
}
],
"responses": {
"200": {
"description": "The path to the created snapshot",
"schema": {
"$ref": "#/definitions/databaseSnapshotCreateResultEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
}
},
"/inspections": {
"post": {
"description": "Requests system information, such as stack dumps or information about capabilities. Requires admin access.\n",
"tags": [
"Inspect"
],
"summary": "Inspect system values",
"operationId": "inspect",
"parameters": [
{
"description": "An inspect request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/inspectRequest"
}
}
],
"responses": {
"200": {
"description": "A response to an inspect request",
"schema": {
"$ref": "#/definitions/inspectResponse"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
}
},
"/links": {
"get": {
"description": "Retrieves a list of link resources; does not supports filtering, sorting, or pagination. Requires admin access.\n",
"tags": [
"Link"
],
"summary": "List links",
"operationId": "listLinks",
"parameters": [
{
"type": "integer",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"name": "offset",
"in": "query"
},
{
"type": "string",
"name": "filter",
"in": "query"
}
],
"responses": {
"200": {
"description": "A list of links",
"schema": {
"$ref": "#/definitions/listLinksEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
}
},
"/links/{id}": {
"get": {
"description": "Retrieves a single link by id. Requires admin access.",
"tags": [
"Link"
],
"summary": "Retrieves a single link",
"operationId": "detailLink",
"responses": {
"200": {
"description": "A single link",
"schema": {
"$ref": "#/definitions/detailLinkEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
},
"delete": {
"description": "Delete a link by id. Requires admin access.",
"tags": [
"Link"
],
"summary": "Delete a link",
"operationId": "deleteLink",
"responses": {
"200": {
"description": "The delete request was successful and the resource has been removed",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"patch": {
"description": "Update the supplied fields on a link. Requires admin access.",
"tags": [
"Link"
],
"summary": "Update the supplied fields on a link",
"operationId": "patchLink",
"parameters": [
{
"description": "A link patch object",
"name": "link",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/linkPatch"
}
}
],
"responses": {
"200": {
"description": "The patch request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"parameters": [
{
"type": "string",
"description": "The id of the requested resource",
"name": "id",
"in": "path",
"required": true
}
]
},
"/routers": {
"get": {
"description": "Retrieves a list of router resources; supports filtering, sorting, and pagination. Requires admin access.\n",
"tags": [
"Router"
],
"summary": "List routers",
"operationId": "listRouters",
"parameters": [
{
"type": "integer",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"name": "offset",
"in": "query"
},
{
"type": "string",
"name": "filter",
"in": "query"
}
],
"responses": {
"200": {
"description": "A list of routers",
"schema": {
"$ref": "#/definitions/listRoutersEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
},
"post": {
"description": "Create a router resource. Requires admin access.",
"tags": [
"Router"
],
"summary": "Create a router resource",
"operationId": "createRouter",
"parameters": [
{
"description": "A router to create",
"name": "router",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/routerCreate"
}
}
],
"responses": {
"201": {
"description": "The create request was successful and the resource has been added at the following location",
"schema": {
"$ref": "#/definitions/createEnvelope"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
}
},
"/routers/{id}": {
"get": {
"description": "Retrieves a single router by id. Requires admin access.",
"tags": [
"Router"
],
"summary": "Retrieves a single router",
"operationId": "detailRouter",
"responses": {
"200": {
"description": "A single router",
"schema": {
"$ref": "#/definitions/detailRouterEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
},
"put": {
"description": "Update all fields on a router by id. Requires admin access.",
"tags": [
"Router"
],
"summary": "Update all fields on a router",
"operationId": "updateRouter",
"parameters": [
{
"description": "A router update object",
"name": "router",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/routerUpdate"
}
}
],
"responses": {
"200": {
"description": "The update request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"delete": {
"description": "Delete a router by id. Requires admin access.",
"tags": [
"Router"
],
"summary": "Delete a router",
"operationId": "deleteRouter",
"responses": {
"200": {
"description": "The delete request was successful and the resource has been removed",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"409": {
"description": "The resource requested to be removed/altered cannot be as it is referenced by another object.",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"causeMessage": "referenced by /some-resource/05f4f710-c155-4a74-86d5-77558eb9cb42",
"code": "CONFLICT_CANNOT_MODIFY_REFERENCED",
"message": "The resource cannot be deleted/modified. Remove all referencing resources first.",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"patch": {
"description": "Update the supplied fields on a router. Requires admin access.",
"tags": [
"Router"
],
"summary": "Update the supplied fields on a router",
"operationId": "patchRouter",
"parameters": [
{
"description": "A router patch object",
"name": "router",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/routerPatch"
}
}
],
"responses": {
"200": {
"description": "The patch request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"parameters": [
{
"type": "string",
"description": "The id of the requested resource",
"name": "id",
"in": "path",
"required": true
}
]
},
"/routers/{id}/terminators": {
"get": {
"description": "Retrieves a list of terminator resources that are assigned specific router; supports filtering, sorting, and pagination.\n",
"tags": [
"Router"
],
"summary": "List of terminators assigned to a router",
"operationId": "listRouterTerminators",
"parameters": [
{
"type": "integer",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"name": "offset",
"in": "query"
},
{
"type": "string",
"name": "filter",
"in": "query"
}
],
"responses": {
"200": {
"description": "A list of terminators",
"schema": {
"$ref": "#/definitions/listTerminatorsEnvelope"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
},
"parameters": [
{
"type": "string",
"description": "The id of the requested resource",
"name": "id",
"in": "path",
"required": true
}
]
},
"/services": {
"get": {
"description": "Retrieves a list of service resources; supports filtering, sorting, and pagination. Requires admin access.\n",
"tags": [
"Service"
],
"summary": "List services",
"operationId": "listServices",
"parameters": [
{
"type": "integer",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"name": "offset",
"in": "query"
},
{
"type": "string",
"name": "filter",
"in": "query"
}
],
"responses": {
"200": {
"description": "A list of services",
"schema": {
"$ref": "#/definitions/listServicesEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
},
"post": {
"description": "Create a service resource. Requires admin access.",
"tags": [
"Service"
],
"summary": "Create a service resource",
"operationId": "createService",
"parameters": [
{
"description": "A service to create",
"name": "service",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/serviceCreate"
}
}
],
"responses": {
"201": {
"description": "The create request was successful and the resource has been added at the following location",
"schema": {
"$ref": "#/definitions/createEnvelope"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
}
},
"/services/{id}": {
"get": {
"description": "Retrieves a single service by id. Requires admin access.",
"tags": [
"Service"
],
"summary": "Retrieves a single service",
"operationId": "detailService",
"responses": {
"200": {
"description": "A single service",
"schema": {
"$ref": "#/definitions/detailServiceEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
},
"put": {
"description": "Update all fields on a service by id. Requires admin access.",
"tags": [
"Service"
],
"summary": "Update all fields on a service",
"operationId": "updateService",
"parameters": [
{
"description": "A service update object",
"name": "service",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/serviceUpdate"
}
}
],
"responses": {
"200": {
"description": "The update request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"delete": {
"description": "Delete a service by id. Requires admin access.",
"tags": [
"Service"
],
"summary": "Delete a service",
"operationId": "deleteService",
"responses": {
"200": {
"description": "The delete request was successful and the resource has been removed",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"409": {
"description": "The resource requested to be removed/altered cannot be as it is referenced by another object.",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"causeMessage": "referenced by /some-resource/05f4f710-c155-4a74-86d5-77558eb9cb42",
"code": "CONFLICT_CANNOT_MODIFY_REFERENCED",
"message": "The resource cannot be deleted/modified. Remove all referencing resources first.",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"patch": {
"description": "Update the supplied fields on a service. Requires admin access.",
"tags": [
"Service"
],
"summary": "Update the supplied fields on a service",
"operationId": "patchService",
"parameters": [
{
"description": "A service patch object",
"name": "service",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/servicePatch"
}
}
],
"responses": {
"200": {
"description": "The patch request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"parameters": [
{
"type": "string",
"description": "The id of the requested resource",
"name": "id",
"in": "path",
"required": true
}
]
},
"/services/{id}/terminators": {
"get": {
"description": "Retrieves a list of terminator resources that are assigned specific service; supports filtering, sorting, and pagination.\n",
"tags": [
"Service"
],
"summary": "List of terminators assigned to a service",
"operationId": "listServiceTerminators",
"parameters": [
{
"type": "integer",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"name": "offset",
"in": "query"
},
{
"type": "string",
"name": "filter",
"in": "query"
}
],
"responses": {
"200": {
"description": "A list of terminators",
"schema": {
"$ref": "#/definitions/listTerminatorsEnvelope"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
},
"parameters": [
{
"type": "string",
"description": "The id of the requested resource",
"name": "id",
"in": "path",
"required": true
}
]
},
"/terminators": {
"get": {
"description": "Retrieves a list of terminator resources; supports filtering, sorting, and pagination. Requires admin access.\n",
"tags": [
"Terminator"
],
"summary": "List terminators",
"operationId": "listTerminators",
"parameters": [
{
"type": "integer",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"name": "offset",
"in": "query"
},
{
"type": "string",
"name": "filter",
"in": "query"
}
],
"responses": {
"200": {
"description": "A list of terminators",
"schema": {
"$ref": "#/definitions/listTerminatorsEnvelope"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
},
"post": {
"description": "Create a terminator resource. Requires admin access.",
"tags": [
"Terminator"
],
"summary": "Create a terminator resource",
"operationId": "createTerminator",
"parameters": [
{
"description": "A terminator to create",
"name": "terminator",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/terminatorCreate"
}
}
],
"responses": {
"201": {
"description": "The create request was successful and the resource has been added at the following location",
"schema": {
"$ref": "#/definitions/createEnvelope"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
}
},
"/terminators/{id}": {
"get": {
"description": "Retrieves a single terminator by id. Requires admin access.",
"tags": [
"Terminator"
],
"summary": "Retrieves a single terminator",
"operationId": "detailTerminator",
"responses": {
"200": {
"description": "A single terminator",
"schema": {
"$ref": "#/definitions/detailTerminatorEnvelope"
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
}
}
},
"put": {
"description": "Update all fields on a terminator by id. Requires admin access.",
"tags": [
"Terminator"
],
"summary": "Update all fields on a terminator",
"operationId": "updateTerminator",
"parameters": [
{
"description": "A terminator update object",
"name": "terminator",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/terminatorUpdate"
}
}
],
"responses": {
"200": {
"description": "The update request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"delete": {
"description": "Delete a terminator by id. Requires admin access.",
"tags": [
"Terminator"
],
"summary": "Delete a terminator",
"operationId": "deleteTerminator",
"responses": {
"200": {
"description": "The delete request was successful and the resource has been removed",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"409": {
"description": "The resource requested to be removed/altered cannot be as it is referenced by another object.",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"causeMessage": "referenced by /some-resource/05f4f710-c155-4a74-86d5-77558eb9cb42",
"code": "CONFLICT_CANNOT_MODIFY_REFERENCED",
"message": "The resource cannot be deleted/modified. Remove all referencing resources first.",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"patch": {
"description": "Update the supplied fields on a terminator. Requires admin access.",
"tags": [
"Terminator"
],
"summary": "Update the supplied fields on a terminator",
"operationId": "patchTerminator",
"parameters": [
{
"description": "A terminator patch object",
"name": "terminator",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/terminatorPatch"
}
}
],
"responses": {
"200": {
"description": "The patch request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
},
"400": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"401": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"429": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"503": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
}
}
},
"parameters": [
{
"type": "string",
"description": "The id of the requested resource",
"name": "id",
"in": "path",
"required": true
}
]
}
},
"definitions": {
"apiError": {
"type": "object",
"properties": {
"args": {
"$ref": "#/definitions/apiErrorArgs"
},
"cause": {
"$ref": "#/definitions/apiErrorCause"
},
"causeMessage": {
"type": "string"
},
"code": {
"type": "string"
},
"data": {
"type": "object",
"additionalProperties": true
},
"message": {
"type": "string"
},
"requestId": {
"type": "string"
}
}
},
"apiErrorArgs": {
"type": "object",
"properties": {
"urlVars": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"apiErrorCause": {
"allOf": [
{
"$ref": "#/definitions/apiFieldError"
},
{
"$ref": "#/definitions/apiError"
}
]
},
"apiErrorEnvelope": {
"type": "object",
"required": [
"meta",
"error"
],
"properties": {
"error": {
"$ref": "#/definitions/apiError"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"apiFieldError": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"reason": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"baseEntity": {
"description": "Fields shared by all Edge API entities",
"type": "object",
"required": [
"id",
"createdAt",
"updatedAt",
"_links",
"tags"
],
"properties": {
"_links": {
"$ref": "#/definitions/links"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"id": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"circuitDelete": {
"type": "object",
"properties": {
"immediate": {
"type": "boolean"
}
}
},
"circuitDetail": {
"allOf": [
{
"$ref": "#/definitions/baseEntity"
},
{
"type": "object",
"required": [
"service",
"terminator",
"path"
],
"properties": {
"clientId": {
"type": "string"
},
"path": {
"$ref": "#/definitions/path"
},
"service": {
"$ref": "#/definitions/entityRef"
},
"terminator": {
"$ref": "#/definitions/entityRef"
}
}
}
]
},
"circuitList": {
"type": "array",
"items": {
"$ref": "#/definitions/circuitDetail"
}
},
"clusterMemberAdd": {
"type": "object",
"required": [
"address",
"isVoter"
],
"properties": {
"address": {
"type": "string"
},
"isVoter": {
"type": "boolean"
}
}
},
"clusterMemberListResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/clusterMemberListValue"
}
}
}
},
"clusterMemberListValue": {
"type": "object",
"required": [
"id",
"address",
"voter",
"leader",
"version",
"connected",
"readOnly"
],
"properties": {
"address": {
"type": "string"
},
"connected": {
"type": "boolean"
},
"id": {
"type": "string"
},
"leader": {
"type": "boolean"
},
"preferredLeader": {
"type": "boolean"
},
"readOnly": {
"type": "boolean"
},
"version": {
"type": "string"
},
"voter": {
"type": "boolean"
}
}
},
"clusterMemberRemove": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
},
"clusterTransferLeadership": {
"type": "object",
"properties": {
"newLeaderId": {
"type": "string"
}
}
},
"createEnvelope": {
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/createLocation"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"createLocation": {
"type": "object",
"properties": {
"_links": {
"$ref": "#/definitions/links"
},
"id": {
"type": "string"
}
}
},
"dataIntegrityCheckDetail": {
"type": "object",
"required": [
"description",
"fixed"
],
"properties": {
"description": {
"type": "string"
},
"fixed": {
"type": "boolean"
}
}
},
"dataIntegrityCheckDetailList": {
"type": "array",
"items": {
"$ref": "#/definitions/dataIntegrityCheckDetail"
}
},
"dataIntegrityCheckDetails": {
"type": "object",
"required": [
"inProgress",
"fixingErrors",
"tooManyErrors",
"startTime",
"endTime",
"error",
"results"
],
"properties": {
"endTime": {
"type": "string",
"format": "date-time"
},
"error": {
"type": "string"
},
"fixingErrors": {
"type": "boolean"
},
"inProgress": {
"type": "boolean"
},
"results": {
"$ref": "#/definitions/dataIntegrityCheckDetailList"
},
"startTime": {
"type": "string",
"format": "date-time"
},
"tooManyErrors": {
"type": "boolean"
}
}
},
"dataIntegrityCheckResultEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/dataIntegrityCheckDetails"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"databaseSnapshotCreate": {
"type": "object",
"properties": {
"path": {
"type": "string"
}
}
},
"databaseSnapshotCreateDetails": {
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"type": "string"
}
}
},
"databaseSnapshotCreateResultEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/databaseSnapshotCreateDetails"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"detailCircuitEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/circuitDetail"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"detailLinkEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/linkDetail"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"detailRouterEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/routerDetail"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"detailServiceEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/serviceDetail"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"detailTerminatorEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/terminatorDetail"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"empty": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"type": "object",
"example": {}
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"entityRef": {
"description": "A reference to another resource and links to interact with it",
"type": "object",
"properties": {
"_links": {
"$ref": "#/definitions/links"
},
"entity": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"inspectRequest": {
"type": "object",
"required": [
"appRegex",
"requestedValues"
],
"properties": {
"appRegex": {
"type": "string"
},
"requestedValues": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"inspectResponse": {
"type": "object",
"required": [
"success"
],
"properties": {
"errors": {
"type": "array",
"items": {
"type": "string"
}
},
"success": {
"type": "boolean"
},
"values": {
"type": "array",
"items": {
"$ref": "#/definitions/inspectResponseValue"
}
}
}
},
"inspectResponseValue": {
"type": "object",
"required": [
"appId",
"name",
"value"
],
"properties": {
"appId": {
"type": "string"
},
"name": {
"type": "string"
},
"value": {
"type": [
"object",
"string",
"number",
"boolean"
]
}
}
},
"interface": {
"description": "A resource describing a network interface",
"type": "object",
"required": [
"name",
"hardwareAddress",
"mtu",
"index",
"isUp",
"isRunning",
"isLoopback",
"isBroadcast",
"isMulticast",
"addresses"
],
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
}
},
"hardwareAddress": {
"type": "string"
},
"index": {
"type": "integer",
"minimum": 0
},
"isBroadcast": {
"type": "boolean"
},
"isLoopback": {
"type": "boolean"
},
"isMulticast": {
"type": "boolean"
},
"isRunning": {
"type": "boolean"
},
"isUp": {
"type": "boolean"
},
"mtu": {
"type": "integer",
"minimum": 0
},
"name": {
"type": "string"
}
}
},
"link": {
"description": "A link to another resource",
"type": "object",
"required": [
"href"
],
"properties": {
"comment": {
"type": "string"
},
"href": {
"type": "string",
"format": "uri"
},
"method": {
"type": "string"
}
}
},
"linkConnection": {
"type": "object",
"properties": {
"dest": {
"type": "string"
},
"source": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"linkDetail": {
"type": "object",
"required": [
"id",
"protocol",
"sourceRouter",
"destRouter",
"state",
"staticCost",
"sourceLatency",
"destLatency",
"cost",
"down",
"iteration"
],
"properties": {
"connections": {
"type": "array",
"items": {
"$ref": "#/definitions/linkConnection"
}
},
"cost": {
"type": "integer"
},
"destLatency": {
"type": "integer"
},
"destRouter": {
"$ref": "#/definitions/entityRef"
},
"down": {
"type": "boolean"
},
"id": {
"type": "string"
},
"iteration": {
"type": "integer"
},
"protocol": {
"type": "string"
},
"sourceLatency": {
"type": "integer"
},
"sourceRouter": {
"$ref": "#/definitions/entityRef"
},
"state": {
"type": "string"
},
"staticCost": {
"type": "integer"
}
}
},
"linkList": {
"type": "array",
"items": {
"$ref": "#/definitions/linkDetail"
}
},
"linkPatch": {
"type": "object",
"properties": {
"down": {
"type": "boolean"
},
"staticCost": {
"type": "integer"
}
}
},
"links": {
"description": "A map of named links",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/link"
},
"x-omitempty": false
},
"listCircuitsEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/circuitList"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"listLinksEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/linkList"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"listRoutersEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/routerList"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"listServicesEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/serviceList"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"listTerminatorsEnvelope": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"data": {
"$ref": "#/definitions/terminatorList"
},
"meta": {
"$ref": "#/definitions/meta"
}
}
},
"meta": {
"type": "object",
"properties": {
"apiEnrollmentVersion": {
"type": "string"
},
"apiVersion": {
"type": "string"
},
"filterableFields": {
"type": "array",
"items": {
"type": "string"
},
"x-omitempty": true
},
"pagination": {
"$ref": "#/definitions/pagination"
}
}
},
"pagination": {
"type": "object",
"required": [
"limit",
"offset",
"totalCount"
],
"properties": {
"limit": {
"type": "number",
"format": "int64"
},
"offset": {
"type": "number",
"format": "int64"
},
"totalCount": {
"type": "number",
"format": "int64"
}
}
},
"path": {
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"$ref": "#/definitions/entityRef"
}
},
"nodes": {
"type": "array",
"items": {
"$ref": "#/definitions/entityRef"
}
}
}
},
"routerCreate": {
"type": "object",
"required": [
"id",
"name",
"cost",
"noTraversal"
],
"properties": {
"configs": {
"type": "array",
"items": {
"type": "string"
}
},
"cost": {
"type": "integer",
"maximum": 65535,
"minimum": 0
},
"ctrlChanListeners": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-omitempty": false
},
"disabled": {
"type": "boolean",
"x-nullable": true
},
"fingerprint": {
"type": "string",
"x-nullable": true
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"noTraversal": {
"type": "boolean"
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"routerDetail": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/baseEntity"
},
{
"type": "object",
"required": [
"name",
"fingerprint",
"connected",
"cost",
"noTraversal",
"disabled"
],
"properties": {
"configs": {
"type": "array",
"items": {
"type": "string"
}
},
"connected": {
"type": "boolean"
},
"cost": {
"type": "integer",
"maximum": 65535,
"minimum": 0
},
"ctrlChanListeners": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"disabled": {
"type": "boolean"
},
"fingerprint": {
"type": "string"
},
"interfaces": {
"type": "array",
"items": {
"$ref": "#/definitions/interface"
}
},
"listenerAddresses": {
"type": "array",
"items": {
"$ref": "#/definitions/routerListener"
}
},
"name": {
"type": "string"
},
"noTraversal": {
"type": "boolean"
},
"versionInfo": {
"$ref": "#/definitions/versionInfo"
}
}
}
]
},
"routerList": {
"type": "array",
"items": {
"$ref": "#/definitions/routerDetail"
}
},
"routerListener": {
"type": "object",
"required": [
"address",
"protocol"
],
"properties": {
"address": {
"type": "string"
},
"protocol": {
"type": "string"
}
}
},
"routerPatch": {
"type": "object",
"properties": {
"configs": {
"type": "array",
"items": {
"type": "string"
}
},
"cost": {
"type": "integer",
"maximum": 65535,
"minimum": 0,
"x-nullable": true
},
"ctrlChanListeners": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-omitempty": false
},
"disabled": {
"type": "boolean",
"x-nullable": true
},
"fingerprint": {
"type": "string",
"x-nullable": true
},
"name": {
"type": "string"
},
"noTraversal": {
"type": "boolean",
"x-nullable": true
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"routerUpdate": {
"type": "object",
"required": [
"name",
"fingerprint",
"cost",
"noTraversal"
],
"properties": {
"configs": {
"type": "array",
"items": {
"type": "string"
}
},
"cost": {
"type": "integer",
"maximum": 65535,
"minimum": 0
},
"ctrlChanListeners": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"x-omitempty": false
},
"disabled": {
"type": "boolean",
"x-nullable": true
},
"fingerprint": {
"type": "string"
},
"name": {
"type": "string"
},
"noTraversal": {
"type": "boolean"
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"serviceCreate": {
"type": "object",
"required": [
"name"
],
"properties": {
"maxIdleTimeMillis": {
"type": "integer"
},
"name": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
},
"terminatorStrategy": {
"type": "string"
}
}
},
"serviceDetail": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/baseEntity"
},
{
"type": "object",
"required": [
"name",
"terminatorStrategy",
"maxIdleTimeMillis"
],
"properties": {
"maxIdleTimeMillis": {
"type": "integer"
},
"name": {
"type": "string"
},
"terminatorStrategy": {
"type": "string"
}
}
}
]
},
"serviceList": {
"type": "array",
"items": {
"$ref": "#/definitions/serviceDetail"
}
},
"servicePatch": {
"type": "object",
"properties": {
"maxIdleTimeMillis": {
"type": "integer"
},
"name": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
},
"terminatorStrategy": {
"type": "string"
}
}
},
"serviceUpdate": {
"type": "object",
"required": [
"name"
],
"properties": {
"maxIdleTimeMillis": {
"type": "integer"
},
"name": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
},
"terminatorStrategy": {
"type": "string"
}
}
},
"subTags": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"tags": {
"description": "A map of user defined fields and values. The values are limited to the following types/values: null, string, boolean",
"allOf": [
{
"$ref": "#/definitions/subTags"
}
],
"x-nullable": true
},
"terminatorCost": {
"type": "integer",
"maximum": 65535,
"minimum": 0
},
"terminatorCostMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/terminatorCost"
}
},
"terminatorCreate": {
"type": "object",
"required": [
"service",
"router",
"address",
"binding"
],
"properties": {
"address": {
"type": "string"
},
"binding": {
"type": "string"
},
"cost": {
"$ref": "#/definitions/terminatorCost"
},
"hostId": {
"type": "string"
},
"instanceId": {
"type": "string"
},
"instanceSecret": {
"type": "string",
"format": "byte"
},
"precedence": {
"$ref": "#/definitions/terminatorPrecedence"
},
"router": {
"type": "string"
},
"service": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"terminatorDetail": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/baseEntity"
},
{
"type": "object",
"required": [
"serviceId",
"service",
"routerId",
"router",
"binding",
"address",
"instanceId",
"cost",
"precedence",
"dynamicCost",
"hostId"
],
"properties": {
"address": {
"type": "string"
},
"binding": {
"type": "string"
},
"cost": {
"$ref": "#/definitions/terminatorCost"
},
"dynamicCost": {
"$ref": "#/definitions/terminatorCost"
},
"hostId": {
"type": "string"
},
"instanceId": {
"type": "string"
},
"precedence": {
"$ref": "#/definitions/terminatorPrecedence"
},
"router": {
"$ref": "#/definitions/entityRef"
},
"routerId": {
"type": "string"
},
"service": {
"$ref": "#/definitions/entityRef"
},
"serviceId": {
"type": "string"
}
}
}
]
},
"terminatorList": {
"type": "array",
"items": {
"$ref": "#/definitions/terminatorDetail"
}
},
"terminatorPatch": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"binding": {
"type": "string"
},
"cost": {
"$ref": "#/definitions/terminatorCost"
},
"hostId": {
"type": "string"
},
"precedence": {
"$ref": "#/definitions/terminatorPrecedence"
},
"router": {
"type": "string"
},
"service": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"terminatorPrecedence": {
"type": "string",
"enum": [
"default",
"required",
"failed"
]
},
"terminatorPrecedenceMap": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/terminatorPrecedence"
}
},
"terminatorUpdate": {
"type": "object",
"required": [
"service",
"router",
"address",
"binding"
],
"properties": {
"address": {
"type": "string"
},
"binding": {
"type": "string"
},
"cost": {
"$ref": "#/definitions/terminatorCost"
},
"hostId": {
"type": "string"
},
"precedence": {
"$ref": "#/definitions/terminatorPrecedence"
},
"router": {
"type": "string"
},
"service": {
"type": "string"
},
"tags": {
"$ref": "#/definitions/tags"
}
}
},
"versionInfo": {
"description": "Application build information",
"type": "object",
"properties": {
"arch": {
"type": "string"
},
"buildDate": {
"type": "string"
},
"os": {
"type": "string"
},
"revision": {
"type": "string"
},
"version": {
"type": "string"
}
}
}
},
"parameters": {
"filter": {
"type": "string",
"name": "filter",
"in": "query"
},
"id": {
"type": "string",
"description": "The id of the requested resource",
"name": "id",
"in": "path",
"required": true
},
"limit": {
"type": "integer",
"name": "limit",
"in": "query"
},
"offset": {
"type": "integer",
"name": "offset",
"in": "query"
}
},
"responses": {
"badRequestResponse": {
"description": "The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": {
"details": {
"context": "(root)",
"field": "(root)",
"property": "fooField3"
},
"field": "(root)",
"message": "(root): fooField3 is required",
"type": "required",
"value": {
"fooField": "abc",
"fooField2": "def"
}
},
"causeMessage": "schema validation failed",
"code": "COULD_NOT_VALIDATE",
"message": "The supplied request contains an invalid document",
"requestId": "ac6766d6-3a09-44b3-8d8a-1b541d97fdd9"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"cannotDeleteReferencedResourceResponse": {
"description": "The resource requested to be removed/altered cannot be as it is referenced by another object.",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"causeMessage": "referenced by /some-resource/05f4f710-c155-4a74-86d5-77558eb9cb42",
"code": "CONFLICT_CANNOT_MODIFY_REFERENCED",
"message": "The resource cannot be deleted/modified. Remove all referencing resources first.",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"clusterListMembersResponse": {
"description": "A response to a cluster list-members request",
"schema": {
"$ref": "#/definitions/clusterMemberListResponse"
}
},
"createResponse": {
"description": "The create request was successful and the resource has been added at the following location",
"schema": {
"$ref": "#/definitions/createEnvelope"
}
},
"dataIntegrityCheckResult": {
"description": "A list of data integrity issues found",
"schema": {
"$ref": "#/definitions/dataIntegrityCheckResultEnvelope"
}
},
"databaseSnapshotCreateResult": {
"description": "The path to the created snapshot",
"schema": {
"$ref": "#/definitions/databaseSnapshotCreateResultEnvelope"
}
},
"deleteResponse": {
"description": "The delete request was successful and the resource has been removed",
"schema": {
"$ref": "#/definitions/empty"
}
},
"detailCircuit": {
"description": "A single circuit",
"schema": {
"$ref": "#/definitions/detailCircuitEnvelope"
}
},
"detailLink": {
"description": "A single link",
"schema": {
"$ref": "#/definitions/detailLinkEnvelope"
}
},
"detailRouter": {
"description": "A single router",
"schema": {
"$ref": "#/definitions/detailRouterEnvelope"
}
},
"detailService": {
"description": "A single service",
"schema": {
"$ref": "#/definitions/detailServiceEnvelope"
}
},
"detailTerminator": {
"description": "A single terminator",
"schema": {
"$ref": "#/definitions/detailTerminatorEnvelope"
}
},
"emptyResponse": {
"description": "Base empty response",
"schema": {
"$ref": "#/definitions/empty"
}
},
"inspectResponse": {
"description": "A response to an inspect request",
"schema": {
"$ref": "#/definitions/inspectResponse"
}
},
"invalidAuthResponse": {
"description": "The authentication request could not be processed as the credentials are invalid",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "INVALID_AUTH",
"message": "The authentication request failed",
"requestId": "5952ed10-3091-474f-a691-47ebab6990dc"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"listCircuits": {
"description": "A list of circuits",
"schema": {
"$ref": "#/definitions/listCircuitsEnvelope"
}
},
"listLinks": {
"description": "A list of links",
"schema": {
"$ref": "#/definitions/listLinksEnvelope"
}
},
"listRouters": {
"description": "A list of routers",
"schema": {
"$ref": "#/definitions/listRoutersEnvelope"
}
},
"listServices": {
"description": "A list of services",
"schema": {
"$ref": "#/definitions/listServicesEnvelope"
}
},
"listTerminators": {
"description": "A list of terminators",
"schema": {
"$ref": "#/definitions/listTerminatorsEnvelope"
}
},
"notFoundResponse": {
"description": "The requested resource does not exist",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {
"id": "71a3000f-7dda-491a-9b90-a19f4ee6c406"
}
},
"cause": null,
"causeMessage": "",
"code": "NOT_FOUND",
"message": "The resource requested was not found or is no longer available",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"patchResponse": {
"description": "The patch request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
},
"rateLimitedResponse": {
"description": "The resource requested is rate limited and the rate limit has been exceeded",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"causeMessage": "you have hit a rate limit in the requested operation",
"code": "RATE_LIMITED",
"message": "The resource is rate limited and the rate limit has been exceeded. Please try again later",
"requestId": "270908d6-f2ef-4577-b973-67bec18ae376"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"serverUnavailableResponse": {
"description": "The request could not be completed due to the server being busy or in a temporarily bad state",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
}
},
"unauthorizedResponse": {
"description": "The currently supplied session does not have the correct access rights to request this resource",
"schema": {
"$ref": "#/definitions/apiErrorEnvelope"
},
"examples": {
"application/json": {
"error": {
"args": {
"urlVars": {}
},
"cause": "",
"causeMessage": "",
"code": "UNAUTHORIZED",
"message": "The request could not be completed. The session is not authorized or the credentials are invalid",
"requestId": "0bfe7a04-9229-4b7a-812c-9eb3cc0eac0f"
},
"meta": {
"apiEnrollmentVersion": "0.0.1",
"apiVersion": "0.0.1"
}
}
}
},
"updateResponse": {
"description": "The update request was successful and the resource has been altered",
"schema": {
"$ref": "#/definitions/empty"
}
}
},
"securityDefinitions": {
"oauth2": {
"type": "oauth2",
"flow": "accessCode",
"authorizationUrl": "/oidc/authorize",
"tokenUrl": "/oidc/token",
"scopes": {
"openid": "openid"
}
},
"ztSession": {
"description": "An API Key that is provided post authentication",
"type": "apiKey",
"name": "zt-session",
"in": "header"
}
},
"security": [
{
"ztSession": []
},
{
"oauth2": [
"openid"
]
}
]
}`))
}