mirror of
https://github.com/openziti/ziti.git
synced 2026-09-11 13:29:03 +00:00
8888 lines
257 KiB
Go
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"
|
|
]
|
|
}
|
|
]
|
|
}`))
|
|
}
|