6843 lines
160 KiB
JSON
6843 lines
160 KiB
JSON
{
|
|
"openapi": "3.1.1",
|
|
"info": {
|
|
"title": "monitor-backend | v1",
|
|
"version": "1.0.0"
|
|
},
|
|
"paths": {
|
|
"/api/public/overview": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Ranking of all lines over a time range",
|
|
"operationId": "overview_get",
|
|
"parameters": [
|
|
{
|
|
"name": "range",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "preset",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "metrics",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "sort",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "order",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OverviewDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable Entity",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"429": {
|
|
"description": "Too Many Requests",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"503": {
|
|
"description": "Service Unavailable",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/lines/{line_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "One line",
|
|
"operationId": "lines_get",
|
|
"parameters": [
|
|
{
|
|
"name": "line_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LineDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/lines/{line_id}/series": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Time series of one line (columnar)",
|
|
"operationId": "lines_series",
|
|
"parameters": [
|
|
{
|
|
"name": "line_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "range",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "step",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "tz",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "preset",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "metrics",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "anchor",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable Entity",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"429": {
|
|
"description": "Too Many Requests",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"503": {
|
|
"description": "Service Unavailable",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/compare": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "One metric across several lines, aligned on one time axis",
|
|
"operationId": "lines_compare",
|
|
"parameters": [
|
|
{
|
|
"name": "lines",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "metric",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "range",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "step",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CompareDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable Entity",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"429": {
|
|
"description": "Too Many Requests",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"503": {
|
|
"description": "Service Unavailable",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/lines/{line_id}/distribution": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Histogram and CDF of a histogram metric",
|
|
"operationId": "lines_distribution",
|
|
"parameters": [
|
|
{
|
|
"name": "line_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "metric",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "range",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DistributionDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable Entity",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"429": {
|
|
"description": "Too Many Requests",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"503": {
|
|
"description": "Service Unavailable",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/lines/{line_id}/heatmap": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Time by latency heat map",
|
|
"operationId": "lines_heatmap",
|
|
"parameters": [
|
|
{
|
|
"name": "line_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "metric",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "range",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "step",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HeatmapDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable Entity",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"429": {
|
|
"description": "Too Many Requests",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"503": {
|
|
"description": "Service Unavailable",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/tests/{test_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "A test with its result",
|
|
"operationId": "tests_get",
|
|
"parameters": [
|
|
{
|
|
"name": "test_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/live": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Server-sent events: nodes, overview, series and test topics",
|
|
"operationId": "live_stream",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable Entity",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"429": {
|
|
"description": "Too Many Requests",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/hosts": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Latest host resource usage of every visible agent (no hardware model, no addresses)",
|
|
"operationId": "hosts_list",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfHostItemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/agents/{agent_id}/host": {
|
|
"get": {
|
|
"tags": [
|
|
"public"
|
|
],
|
|
"summary": "Host resource usage history of one agent (columnar, averaged per step)",
|
|
"operationId": "hosts_history",
|
|
"parameters": [
|
|
{
|
|
"name": "agent_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "range",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HostSeriesDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable Entity",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/catalog/kinds": {
|
|
"get": {
|
|
"tags": [
|
|
"catalog"
|
|
],
|
|
"summary": "Measurement kinds with their building blocks and parameter specs",
|
|
"operationId": "catalog_kinds",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfKindDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/catalog/plans": {
|
|
"get": {
|
|
"tags": [
|
|
"catalog"
|
|
],
|
|
"summary": "On-demand test plans",
|
|
"operationId": "catalog_plans",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfPlanDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/catalog/metrics": {
|
|
"get": {
|
|
"tags": [
|
|
"catalog"
|
|
],
|
|
"summary": "Metric ids with unit, label, direction, thresholds and version",
|
|
"operationId": "catalog_metrics",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfMetricDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/catalog/presets": {
|
|
"get": {
|
|
"tags": [
|
|
"catalog"
|
|
],
|
|
"summary": "Metric groups the front end can display",
|
|
"operationId": "catalog_presets",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfPresetDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/public/catalog/models": {
|
|
"get": {
|
|
"tags": [
|
|
"catalog"
|
|
],
|
|
"summary": "Service models and the metrics they need",
|
|
"operationId": "catalog_models",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfModelDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/auth/login": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-auth"
|
|
],
|
|
"summary": "Sign in with a username and password",
|
|
"operationId": "auth_login",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"429": {
|
|
"description": "Too Many Requests",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/auth/logout": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-auth"
|
|
],
|
|
"summary": "Sign out and clear the session cookie",
|
|
"operationId": "auth_logout",
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { }
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/auth/me": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-auth"
|
|
],
|
|
"summary": "The current identity",
|
|
"operationId": "auth_me",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/agents": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-agents"
|
|
],
|
|
"summary": "All agents including pending and disabled ones",
|
|
"operationId": "agents_list",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfAgentDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/agents/{id}": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-agents"
|
|
],
|
|
"summary": "One agent",
|
|
"operationId": "agents_get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"admin-agents"
|
|
],
|
|
"summary": "Update name, labels, public host or visibility (merge-patch, If-Match supported)",
|
|
"operationId": "agents_update",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/merge-patch+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentPatchRequest"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentPatchRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"409": {
|
|
"description": "Conflict",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"description": "Precondition Failed",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"admin-agents"
|
|
],
|
|
"summary": "Delete an agent; history expires with the retention policy",
|
|
"operationId": "agents_delete",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { }
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/agents/{id}/approve": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-agents"
|
|
],
|
|
"summary": "Approve a pending agent",
|
|
"operationId": "agents_approve",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"409": {
|
|
"description": "Conflict",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/agents/{id}/disable": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-agents"
|
|
],
|
|
"summary": "Disable an agent and drop its connection",
|
|
"operationId": "agents_disable",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"409": {
|
|
"description": "Conflict",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/agents/{id}/enable": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-agents"
|
|
],
|
|
"summary": "Enable a disabled agent",
|
|
"operationId": "agents_enable",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"409": {
|
|
"description": "Conflict",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/agents/{id}/takeover": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-agents"
|
|
],
|
|
"summary": "Replace the existing node of the same name with this pending one, keeping history",
|
|
"operationId": "agents_takeover",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/join-tokens": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-join-tokens"
|
|
],
|
|
"summary": "Join tokens",
|
|
"operationId": "join_tokens_list",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfJoinTokenDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"admin-join-tokens"
|
|
],
|
|
"summary": "Create a join token; the plaintext is returned only once",
|
|
"operationId": "join_tokens_create",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateJoinTokenRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreatedJoinTokenDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/join-tokens/{id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"admin-join-tokens"
|
|
],
|
|
"summary": "Revoke a join token; with purge=true delete the record for good",
|
|
"operationId": "join_tokens_revoke",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "purge",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { }
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/probes": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-probe"
|
|
],
|
|
"summary": "All probes, with the agents each one is connected to",
|
|
"operationId": "probes_list",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfProbeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"admin-probe"
|
|
],
|
|
"summary": "Create a probe identity; the private key is returned only once",
|
|
"operationId": "probes_create",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"oneOf": [
|
|
{
|
|
"type": "null"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/CreateProbeRequest"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProbeIdentityDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"409": {
|
|
"description": "Conflict",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/probes/{id}": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-probe"
|
|
],
|
|
"summary": "One probe",
|
|
"operationId": "probes_get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProbeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"admin-probe"
|
|
],
|
|
"summary": "Rename a probe",
|
|
"operationId": "probes_update",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchProbeRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProbeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"409": {
|
|
"description": "Conflict",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"admin-probe"
|
|
],
|
|
"summary": "Delete a probe and its lines; stored data expires with the retention policy",
|
|
"operationId": "probes_delete",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { }
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/probes/{id}/rotate": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-probe"
|
|
],
|
|
"summary": "Give a probe a new key (same id): the old key stops working and its sessions are dropped; the new probe.json is returned only once",
|
|
"operationId": "probes_rotate",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProbeIdentityDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"409": {
|
|
"description": "Conflict",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/probes/{id}/revoke": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-probe"
|
|
],
|
|
"summary": "Revoke a probe: every agent drops its session and refuses it; history stays until it expires",
|
|
"operationId": "probes_revoke",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProbeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/agents/{id}/probes/{probe_id}/disconnect": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-agents"
|
|
],
|
|
"summary": "Make an agent drop one probe's session (the probe reconnects unless it is revoked)",
|
|
"operationId": "agents_probe_disconnect",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "probe_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { }
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"409": {
|
|
"description": "Conflict",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/tasks": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-tasks"
|
|
],
|
|
"summary": "Tasks: line templates, per-agent overrides and target tasks",
|
|
"operationId": "tasks_list",
|
|
"parameters": [
|
|
{
|
|
"name": "agent_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "scope",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfTaskDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"admin-tasks"
|
|
],
|
|
"summary": "Create a task; params are validated against the kind",
|
|
"operationId": "tasks_create",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateTaskRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TaskDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/tasks/{id}": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-tasks"
|
|
],
|
|
"summary": "One task",
|
|
"operationId": "tasks_get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TaskDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"admin-tasks"
|
|
],
|
|
"summary": "Change params, schedule, target or enabled (merge-patch, If-Match supported)",
|
|
"operationId": "tasks_update",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/merge-patch+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchTaskRequest"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchTaskRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TaskDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"description": "Precondition Failed",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"admin-tasks"
|
|
],
|
|
"summary": "Delete a task",
|
|
"operationId": "tasks_delete",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { }
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/lines/{line_id}/tests": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-tests"
|
|
],
|
|
"summary": "Start an on-demand test on a line",
|
|
"operationId": "tests_start",
|
|
"parameters": [
|
|
{
|
|
"name": "line_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StartTestRequestDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"202": {
|
|
"description": "Accepted",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"409": {
|
|
"description": "Conflict",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"tags": [
|
|
"admin-tests"
|
|
],
|
|
"summary": "Recent tests of a line",
|
|
"operationId": "tests_list",
|
|
"parameters": [
|
|
{
|
|
"name": "line_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"schema": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfTestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/tests/{id}/cancel": {
|
|
"post": {
|
|
"tags": [
|
|
"admin-tests"
|
|
],
|
|
"summary": "Cancel a running test",
|
|
"operationId": "tests_cancel",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/raw/chunks": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-data"
|
|
],
|
|
"summary": "Raw chunk metadata",
|
|
"operationId": "raw_chunks_list",
|
|
"parameters": [
|
|
{
|
|
"name": "agent_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "kind",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "test_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"schema": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfRawChunkMetaDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/raw/chunks/{chunk_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-data"
|
|
],
|
|
"summary": "Download a raw chunk (application/vnd.monitor.rawchunk)",
|
|
"operationId": "raw_chunks_get",
|
|
"parameters": [
|
|
{
|
|
"name": "chunk_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"410": {
|
|
"description": "Gone",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/events": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-data"
|
|
],
|
|
"summary": "Agent events",
|
|
"operationId": "events_list",
|
|
"parameters": [
|
|
{
|
|
"name": "agent_id",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "kind",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "from",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "to",
|
|
"in": "query",
|
|
"schema": {
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"schema": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfEventDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/analysis/recompute": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-data"
|
|
],
|
|
"summary": "Progress of the metric backfill",
|
|
"operationId": "analysis_recompute_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RecomputeDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/api-tokens": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-api-tokens"
|
|
],
|
|
"summary": "API tokens",
|
|
"operationId": "api_tokens_list",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfApiTokenDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"admin-api-tokens"
|
|
],
|
|
"summary": "Create an API token (scope read or admin); the plaintext is returned only once",
|
|
"operationId": "api_tokens_create",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateApiTokenRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreatedApiTokenDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/api-tokens/{id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"admin-api-tokens"
|
|
],
|
|
"summary": "Revoke an API token",
|
|
"operationId": "api_tokens_revoke",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { }
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/settings": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-settings"
|
|
],
|
|
"summary": "Site settings and retention periods",
|
|
"operationId": "settings_list",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfSettingDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"admin-settings"
|
|
],
|
|
"summary": "Change settings (merge-patch)",
|
|
"operationId": "settings_update",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/merge-patch+json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfSettingDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/users": {
|
|
"get": {
|
|
"tags": [
|
|
"admin-users"
|
|
],
|
|
"summary": "Panel users",
|
|
"operationId": "users_list",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageDtoOfUserDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"admin-users"
|
|
],
|
|
"summary": "Create a panel user",
|
|
"operationId": "users_create",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateUserRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"409": {
|
|
"description": "Conflict",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/admin/users/{id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"admin-users"
|
|
],
|
|
"summary": "Change a user's password",
|
|
"operationId": "users_update",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChangePasswordRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": { }
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/healthz": {
|
|
"get": {
|
|
"tags": [
|
|
"ops"
|
|
],
|
|
"summary": "SQLite and the raw data directory are both writable",
|
|
"operationId": "health_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HealthDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"503": {
|
|
"description": "Service Unavailable",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/metrics": {
|
|
"get": {
|
|
"tags": [
|
|
"ops"
|
|
],
|
|
"summary": "Prometheus metrics (admin token)",
|
|
"operationId": "metrics_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/install.sh": {
|
|
"get": {
|
|
"tags": [
|
|
"ops"
|
|
],
|
|
"summary": "Installer for Linux nodes",
|
|
"operationId": "install_sh",
|
|
"responses": {
|
|
"501": {
|
|
"description": "Not Implemented",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/install.ps1": {
|
|
"get": {
|
|
"tags": [
|
|
"ops"
|
|
],
|
|
"summary": "Installer for Windows nodes",
|
|
"operationId": "install_ps1",
|
|
"responses": {
|
|
"501": {
|
|
"description": "Not Implemented",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProblemDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/agent/v1/enroll": {
|
|
"post": {
|
|
"tags": [
|
|
"agent"
|
|
],
|
|
"summary": "Enroll a node with a join token",
|
|
"operationId": "fleet_enroll",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"AgentDto": {
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"status",
|
|
"online",
|
|
"probe_connected",
|
|
"probes",
|
|
"host",
|
|
"public_host",
|
|
"probe_tcp_port",
|
|
"probe_udp_ports",
|
|
"labels",
|
|
"public_visible",
|
|
"kinds",
|
|
"agent_version",
|
|
"local_limits",
|
|
"task_version",
|
|
"applied_task_version",
|
|
"rejected",
|
|
"heartbeat",
|
|
"endpoint_changes",
|
|
"created_at",
|
|
"last_seen_at"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"online": {
|
|
"type": "boolean"
|
|
},
|
|
"probe_connected": {
|
|
"type": "boolean"
|
|
},
|
|
"probes": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConnectedProbeDto"
|
|
}
|
|
},
|
|
"host": {
|
|
"oneOf": [
|
|
{
|
|
"type": "null"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/HostDto"
|
|
}
|
|
]
|
|
},
|
|
"public_host": {
|
|
"type": "string"
|
|
},
|
|
"probe_tcp_port": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"probe_udp_ports": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"public_visible": {
|
|
"type": "boolean"
|
|
},
|
|
"kinds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"agent_version": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"local_limits": {
|
|
"oneOf": [
|
|
{
|
|
"type": "null"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/LocalLimitsDto"
|
|
}
|
|
]
|
|
},
|
|
"task_version": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"applied_task_version": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"rejected": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RejectedDto"
|
|
}
|
|
},
|
|
"heartbeat": {
|
|
"oneOf": [
|
|
{
|
|
"type": "null"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/HeartbeatDto"
|
|
}
|
|
]
|
|
},
|
|
"endpoint_changes": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time"
|
|
},
|
|
"last_seen_at": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"AgentPatchRequest": {
|
|
"required": [
|
|
"name",
|
|
"labels",
|
|
"public_host",
|
|
"public_visible"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"labels": {
|
|
"type": [
|
|
"null",
|
|
"array"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"public_host": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"public_visible": {
|
|
"type": [
|
|
"null",
|
|
"boolean"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"ApiTokenDto": {
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"scope",
|
|
"created_at",
|
|
"last_used_at",
|
|
"revoked_at"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time"
|
|
},
|
|
"last_used_at": {
|
|
"format": "date-time"
|
|
},
|
|
"revoked_at": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"BlocksDto": {
|
|
"required": [
|
|
"transport",
|
|
"pacer",
|
|
"payload",
|
|
"behavior",
|
|
"samplers"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"transport": {
|
|
"type": "string"
|
|
},
|
|
"pacer": {
|
|
"type": "string"
|
|
},
|
|
"payload": {
|
|
"type": "string"
|
|
},
|
|
"behavior": {
|
|
"type": "string"
|
|
},
|
|
"samplers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"BootstrapAgentDto": {
|
|
"required": [
|
|
"agent_id",
|
|
"host",
|
|
"tcp_port",
|
|
"spki"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"agent_id": {
|
|
"type": "string"
|
|
},
|
|
"host": {
|
|
"type": "string"
|
|
},
|
|
"tcp_port": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"spki": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ChangePasswordRequest": {
|
|
"required": [
|
|
"password"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ColumnDto": {
|
|
"required": [
|
|
"name",
|
|
"type",
|
|
"encoding",
|
|
"nullable",
|
|
"role"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"encoding": {
|
|
"type": "string"
|
|
},
|
|
"nullable": {
|
|
"type": "boolean"
|
|
},
|
|
"role": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"CompareDto": {
|
|
"required": [
|
|
"metric",
|
|
"from",
|
|
"to",
|
|
"step",
|
|
"source",
|
|
"degraded",
|
|
"t",
|
|
"values",
|
|
"summary"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"metric": {
|
|
"type": "string"
|
|
},
|
|
"from": {
|
|
"format": "date-time"
|
|
},
|
|
"to": {
|
|
"format": "date-time"
|
|
},
|
|
"step": {
|
|
"type": "string"
|
|
},
|
|
"source": {
|
|
"type": "string"
|
|
},
|
|
"degraded": {
|
|
"type": "boolean"
|
|
},
|
|
"t": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"values": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
}
|
|
},
|
|
"summary": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ConnectedProbeDto": {
|
|
"required": [
|
|
"probe_id",
|
|
"version",
|
|
"remote",
|
|
"connected_since"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"probe_id": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"remote": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"connected_since": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"CreateApiTokenRequest": {
|
|
"required": [
|
|
"name",
|
|
"scope"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"CreateJoinTokenRequest": {
|
|
"required": [
|
|
"note",
|
|
"labels",
|
|
"auto_approve",
|
|
"max_uses",
|
|
"expires_in_hours"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"note": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"labels": {
|
|
"type": [
|
|
"null",
|
|
"array"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"auto_approve": {
|
|
"type": [
|
|
"null",
|
|
"boolean"
|
|
]
|
|
},
|
|
"max_uses": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"expires_in_hours": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"CreateProbeRequest": {
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"CreateTaskRequest": {
|
|
"required": [
|
|
"scope",
|
|
"kind",
|
|
"target",
|
|
"params",
|
|
"schedule",
|
|
"enabled",
|
|
"agent_id",
|
|
"base_task_id"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"scope": {
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"type": "string"
|
|
},
|
|
"target": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"params": {
|
|
"type": [
|
|
"null",
|
|
"object"
|
|
]
|
|
},
|
|
"schedule": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"enabled": {
|
|
"type": [
|
|
"null",
|
|
"boolean"
|
|
]
|
|
},
|
|
"agent_id": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"base_task_id": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"CreateUserRequest": {
|
|
"required": [
|
|
"username",
|
|
"password"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"CreatedApiTokenDto": {
|
|
"required": [
|
|
"token",
|
|
"plaintext"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"token": {
|
|
"$ref": "#/components/schemas/ApiTokenDto"
|
|
},
|
|
"plaintext": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"CreatedJoinTokenDto": {
|
|
"required": [
|
|
"token",
|
|
"plaintext",
|
|
"install_commands"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"token": {
|
|
"$ref": "#/components/schemas/JoinTokenDto"
|
|
},
|
|
"plaintext": {
|
|
"type": "string"
|
|
},
|
|
"install_commands": {
|
|
"$ref": "#/components/schemas/InstallCommandsDto"
|
|
}
|
|
}
|
|
},
|
|
"DimensionDto": {
|
|
"required": [
|
|
"id",
|
|
"label",
|
|
"weight",
|
|
"value",
|
|
"score"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"weight": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"value": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"score": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
}
|
|
},
|
|
"DistributionBucketDto": {
|
|
"required": [
|
|
"le",
|
|
"count"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"le": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"count": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"DistributionDto": {
|
|
"required": [
|
|
"metric",
|
|
"unit",
|
|
"buckets",
|
|
"p50",
|
|
"p95",
|
|
"p99",
|
|
"count"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"metric": {
|
|
"type": "string"
|
|
},
|
|
"unit": {
|
|
"type": "string"
|
|
},
|
|
"buckets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DistributionBucketDto"
|
|
}
|
|
},
|
|
"p50": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"p95": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"p99": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"count": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"EdgePartialDto": {
|
|
"required": [
|
|
"first",
|
|
"last"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"first": {
|
|
"type": "boolean"
|
|
},
|
|
"last": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"EventDto": {
|
|
"required": [
|
|
"id",
|
|
"agent_id",
|
|
"kind",
|
|
"at",
|
|
"detail"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"agent_id": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"kind": {
|
|
"type": "string"
|
|
},
|
|
"at": {
|
|
"format": "date-time"
|
|
},
|
|
"detail": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"GapDto": {
|
|
"required": [
|
|
"from",
|
|
"to",
|
|
"reason"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"from": {
|
|
"format": "date-time"
|
|
},
|
|
"to": {
|
|
"format": "date-time"
|
|
},
|
|
"reason": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"HealthDto": {
|
|
"required": [
|
|
"status",
|
|
"database",
|
|
"raw_directory"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"database": {
|
|
"type": "boolean"
|
|
},
|
|
"raw_directory": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"HeartbeatDto": {
|
|
"required": [
|
|
"sessions",
|
|
"pps_in",
|
|
"pps_out",
|
|
"dropped_invalid",
|
|
"dropped_rate_limited",
|
|
"queue_bytes",
|
|
"at"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"sessions": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"pps_in": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"pps_out": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"dropped_invalid": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"dropped_rate_limited": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"queue_bytes": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"at": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"HeatmapDto": {
|
|
"required": [
|
|
"metric",
|
|
"step",
|
|
"source",
|
|
"degraded",
|
|
"t",
|
|
"edges",
|
|
"counts"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"metric": {
|
|
"type": "string"
|
|
},
|
|
"step": {
|
|
"type": "string"
|
|
},
|
|
"source": {
|
|
"type": "string"
|
|
},
|
|
"degraded": {
|
|
"type": "boolean"
|
|
},
|
|
"t": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"edges": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
},
|
|
"counts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"HostDto": {
|
|
"required": [
|
|
"cpu_percent",
|
|
"mem_used",
|
|
"mem_total",
|
|
"disk_used",
|
|
"disk_total",
|
|
"net_rx_total",
|
|
"net_tx_total",
|
|
"net_rx_bps",
|
|
"net_tx_bps",
|
|
"uptime_seconds",
|
|
"at"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"cpu_percent": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"mem_used": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"mem_total": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"disk_used": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"disk_total": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"net_rx_total": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"net_tx_total": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"net_rx_bps": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"net_tx_bps": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"uptime_seconds": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"at": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"HostItemDto": {
|
|
"required": [
|
|
"agent_id",
|
|
"name",
|
|
"online",
|
|
"stale",
|
|
"last_seen_at",
|
|
"host"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"agent_id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"online": {
|
|
"type": "boolean"
|
|
},
|
|
"stale": {
|
|
"type": "boolean"
|
|
},
|
|
"last_seen_at": {
|
|
"format": "date-time"
|
|
},
|
|
"host": {
|
|
"oneOf": [
|
|
{
|
|
"type": "null"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/HostDto"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"HostSeriesDto": {
|
|
"required": [
|
|
"agent_id",
|
|
"from",
|
|
"to",
|
|
"step",
|
|
"t",
|
|
"values"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"agent_id": {
|
|
"type": "string"
|
|
},
|
|
"from": {
|
|
"format": "date-time"
|
|
},
|
|
"to": {
|
|
"format": "date-time"
|
|
},
|
|
"step": {
|
|
"type": "string"
|
|
},
|
|
"t": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"values": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"InstallCommandsDto": {
|
|
"required": [
|
|
"linux",
|
|
"macos",
|
|
"windows"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"linux": {
|
|
"type": "string"
|
|
},
|
|
"macos": {
|
|
"type": "string"
|
|
},
|
|
"windows": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"JoinTokenDto": {
|
|
"required": [
|
|
"id",
|
|
"note",
|
|
"labels",
|
|
"auto_approve",
|
|
"max_uses",
|
|
"uses",
|
|
"expires_at",
|
|
"revoked_at",
|
|
"created_at"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"note": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"auto_approve": {
|
|
"type": "boolean"
|
|
},
|
|
"max_uses": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"uses": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"expires_at": {
|
|
"format": "date-time"
|
|
},
|
|
"revoked_at": {
|
|
"format": "date-time"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"JsonElement": { },
|
|
"KindDto": {
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"description",
|
|
"scopes",
|
|
"blocks",
|
|
"params",
|
|
"streams"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"scopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"blocks": {
|
|
"$ref": "#/components/schemas/BlocksDto"
|
|
},
|
|
"params": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ParamDto"
|
|
}
|
|
},
|
|
"streams": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/StreamDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"LineDto": {
|
|
"required": [
|
|
"id",
|
|
"agent_id",
|
|
"probe_id",
|
|
"probe_name",
|
|
"name",
|
|
"labels",
|
|
"online",
|
|
"probe_connected",
|
|
"data_since",
|
|
"kinds",
|
|
"last_test"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"agent_id": {
|
|
"type": "string"
|
|
},
|
|
"probe_id": {
|
|
"type": "string"
|
|
},
|
|
"probe_name": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"online": {
|
|
"type": "boolean"
|
|
},
|
|
"probe_connected": {
|
|
"type": "boolean"
|
|
},
|
|
"data_since": {
|
|
"format": "date-time"
|
|
},
|
|
"kinds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"last_test": {
|
|
"oneOf": [
|
|
{
|
|
"type": "null"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/TestSummaryDto"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"LocalLimitsDto": {
|
|
"required": [
|
|
"max_total_mbps",
|
|
"max_total_pps",
|
|
"allowed_target_cidrs",
|
|
"max_concurrent_tests"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"max_total_mbps": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"max_total_pps": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"allowed_target_cidrs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"max_concurrent_tests": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"LoginRequest": {
|
|
"required": [
|
|
"username",
|
|
"password"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"LoginResponse": {
|
|
"required": [
|
|
"user_id",
|
|
"username",
|
|
"csrf_token",
|
|
"expires_at"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"user_id": {
|
|
"type": "string"
|
|
},
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"csrf_token": {
|
|
"type": "string"
|
|
},
|
|
"expires_at": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"MeDto": {
|
|
"required": [
|
|
"kind",
|
|
"scope",
|
|
"user_id",
|
|
"username",
|
|
"csrf_token"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string"
|
|
},
|
|
"user_id": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"username": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"csrf_token": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"MetricDto": {
|
|
"required": [
|
|
"id",
|
|
"definition_id",
|
|
"accumulator",
|
|
"stat",
|
|
"label",
|
|
"description",
|
|
"unit",
|
|
"better",
|
|
"good",
|
|
"poor",
|
|
"version",
|
|
"from"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"definition_id": {
|
|
"type": "string"
|
|
},
|
|
"accumulator": {
|
|
"type": "string"
|
|
},
|
|
"stat": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"unit": {
|
|
"type": "string"
|
|
},
|
|
"better": {
|
|
"type": "string"
|
|
},
|
|
"good": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"poor": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
},
|
|
"from": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ModelDto": {
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"version",
|
|
"needs"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"needs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"OverviewDto": {
|
|
"required": [
|
|
"range",
|
|
"from",
|
|
"to",
|
|
"step",
|
|
"source",
|
|
"degraded",
|
|
"lines"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"range": {
|
|
"type": "string"
|
|
},
|
|
"from": {
|
|
"format": "date-time"
|
|
},
|
|
"to": {
|
|
"format": "date-time"
|
|
},
|
|
"step": {
|
|
"type": "string"
|
|
},
|
|
"source": {
|
|
"type": "string"
|
|
},
|
|
"degraded": {
|
|
"type": "boolean"
|
|
},
|
|
"lines": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/OverviewLineDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"OverviewLineDto": {
|
|
"required": [
|
|
"id",
|
|
"agent_id",
|
|
"probe_id",
|
|
"probe_name",
|
|
"name",
|
|
"labels",
|
|
"online",
|
|
"probe_connected",
|
|
"endpoint_changes",
|
|
"summary",
|
|
"last_test"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"agent_id": {
|
|
"type": "string"
|
|
},
|
|
"probe_id": {
|
|
"type": "string"
|
|
},
|
|
"probe_name": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"online": {
|
|
"type": "boolean"
|
|
},
|
|
"probe_connected": {
|
|
"type": "boolean"
|
|
},
|
|
"endpoint_changes": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"summary": {
|
|
"$ref": "#/components/schemas/SummaryDto"
|
|
},
|
|
"last_test": {
|
|
"oneOf": [
|
|
{
|
|
"type": "null"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/TestSummaryDto"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfAgentDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgentDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfApiTokenDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ApiTokenDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfEventDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EventDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfHostItemDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/HostItemDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfJoinTokenDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/JoinTokenDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfKindDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/KindDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfMetricDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MetricDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfModelDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ModelDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfPlanDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PlanDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfPresetDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PresetDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfProbeDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProbeDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfRawChunkMetaDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RawChunkMetaDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfSettingDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SettingDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfTaskDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TaskDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfTestDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TestDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PageDtoOfUserDto": {
|
|
"required": [
|
|
"items",
|
|
"next_cursor"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"ParamDto": {
|
|
"required": [
|
|
"name",
|
|
"type",
|
|
"default",
|
|
"min",
|
|
"max",
|
|
"unit",
|
|
"values",
|
|
"description"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/schemas/JsonElement"
|
|
},
|
|
"min": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"max": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"unit": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"values": {
|
|
"type": [
|
|
"null",
|
|
"array"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"PatchProbeRequest": {
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PatchTaskRequest": {
|
|
"required": [
|
|
"params",
|
|
"schedule",
|
|
"enabled",
|
|
"target"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"params": {
|
|
"type": [
|
|
"null",
|
|
"object"
|
|
]
|
|
},
|
|
"schedule": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"enabled": {
|
|
"type": [
|
|
"null",
|
|
"boolean"
|
|
]
|
|
},
|
|
"target": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"PhaseDto": {
|
|
"required": [
|
|
"kind",
|
|
"duration_s",
|
|
"params"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string"
|
|
},
|
|
"duration_s": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"params": {
|
|
"$ref": "#/components/schemas/JsonElement"
|
|
}
|
|
}
|
|
},
|
|
"PlanDto": {
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"description",
|
|
"phases"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"phases": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PhaseDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"PresetDto": {
|
|
"required": [
|
|
"id",
|
|
"label",
|
|
"metrics"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"metrics": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ProbeConnectionDto": {
|
|
"required": [
|
|
"agent_id",
|
|
"agent_name",
|
|
"agent_online",
|
|
"version",
|
|
"remote",
|
|
"connected_since"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"agent_id": {
|
|
"type": "string"
|
|
},
|
|
"agent_name": {
|
|
"type": "string"
|
|
},
|
|
"agent_online": {
|
|
"type": "boolean"
|
|
},
|
|
"version": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"remote": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"connected_since": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"ProbeDto": {
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"created_at",
|
|
"revoked_at",
|
|
"revoked",
|
|
"connections"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time"
|
|
},
|
|
"revoked_at": {
|
|
"format": "date-time"
|
|
},
|
|
"revoked": {
|
|
"type": "boolean"
|
|
},
|
|
"connections": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProbeConnectionDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ProbeIdentityDto": {
|
|
"required": [
|
|
"probe_id",
|
|
"private_key",
|
|
"bootstrap",
|
|
"limits"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"probe_id": {
|
|
"type": "string"
|
|
},
|
|
"private_key": {
|
|
"type": "string"
|
|
},
|
|
"bootstrap": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BootstrapAgentDto"
|
|
}
|
|
},
|
|
"limits": {
|
|
"$ref": "#/components/schemas/ProbeLimitsDto"
|
|
}
|
|
}
|
|
},
|
|
"ProbeLimitsDto": {
|
|
"required": [
|
|
"max_test_mbps",
|
|
"max_total_pps"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"max_test_mbps": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"max_total_pps": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"ProblemDto": {
|
|
"required": [
|
|
"type",
|
|
"title",
|
|
"status",
|
|
"code",
|
|
"detail",
|
|
"trace_id",
|
|
"errors"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"detail": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"trace_id": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"errors": {
|
|
"type": [
|
|
"null",
|
|
"object"
|
|
],
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"RawChunkMetaDto": {
|
|
"required": [
|
|
"chunk_id",
|
|
"agent_id",
|
|
"series",
|
|
"kind",
|
|
"task_id",
|
|
"test_id",
|
|
"phase",
|
|
"start",
|
|
"duration_ms",
|
|
"partial",
|
|
"bytes"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"chunk_id": {
|
|
"type": "string"
|
|
},
|
|
"agent_id": {
|
|
"type": "string"
|
|
},
|
|
"series": {
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"type": "string"
|
|
},
|
|
"task_id": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"test_id": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"phase": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"start": {
|
|
"format": "date-time"
|
|
},
|
|
"duration_ms": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"partial": {
|
|
"type": "boolean"
|
|
},
|
|
"bytes": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"RecomputeDto": {
|
|
"required": [
|
|
"state",
|
|
"metrics",
|
|
"windows_done",
|
|
"windows_total",
|
|
"from",
|
|
"to",
|
|
"queue_length"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"state": {
|
|
"type": "string"
|
|
},
|
|
"metrics": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"windows_done": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"windows_total": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
},
|
|
"from": {
|
|
"format": "date-time"
|
|
},
|
|
"to": {
|
|
"format": "date-time"
|
|
},
|
|
"queue_length": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"RejectedDto": {
|
|
"required": [
|
|
"id",
|
|
"reason"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"reason": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ScoreDto": {
|
|
"required": [
|
|
"score",
|
|
"version",
|
|
"estimated",
|
|
"dimensions",
|
|
"caveats"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"score": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"version": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"estimated": {
|
|
"type": "boolean"
|
|
},
|
|
"dimensions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DimensionDto"
|
|
}
|
|
},
|
|
"caveats": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"SeriesDto": {
|
|
"required": [
|
|
"line_id",
|
|
"agent_id",
|
|
"probe_id",
|
|
"from",
|
|
"to",
|
|
"step",
|
|
"source",
|
|
"live",
|
|
"degraded",
|
|
"t",
|
|
"values",
|
|
"summary",
|
|
"edge_partial",
|
|
"gaps",
|
|
"events",
|
|
"versions"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"line_id": {
|
|
"type": "string"
|
|
},
|
|
"agent_id": {
|
|
"type": "string"
|
|
},
|
|
"probe_id": {
|
|
"type": "string"
|
|
},
|
|
"from": {
|
|
"format": "date-time"
|
|
},
|
|
"to": {
|
|
"format": "date-time"
|
|
},
|
|
"step": {
|
|
"type": "string"
|
|
},
|
|
"source": {
|
|
"type": "string"
|
|
},
|
|
"live": {
|
|
"type": "boolean"
|
|
},
|
|
"degraded": {
|
|
"type": "boolean"
|
|
},
|
|
"t": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"values": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
}
|
|
},
|
|
"summary": {
|
|
"$ref": "#/components/schemas/SummaryDto"
|
|
},
|
|
"edge_partial": {
|
|
"$ref": "#/components/schemas/EdgePartialDto"
|
|
},
|
|
"gaps": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GapDto"
|
|
}
|
|
},
|
|
"events": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/EventDto"
|
|
}
|
|
},
|
|
"versions": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"SettingDto": {
|
|
"required": [
|
|
"key",
|
|
"type",
|
|
"value",
|
|
"default",
|
|
"description"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
},
|
|
"default": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"StartTestRequestDto": {
|
|
"required": [
|
|
"plan",
|
|
"params"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"plan": {
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"type": [
|
|
"null",
|
|
"object"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"StreamDto": {
|
|
"required": [
|
|
"name",
|
|
"columns"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"columns": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ColumnDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"SummaryDto": {
|
|
"required": [
|
|
"metrics",
|
|
"samples",
|
|
"coverage"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"metrics": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
},
|
|
"samples": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"coverage": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
}
|
|
},
|
|
"TaskDto": {
|
|
"required": [
|
|
"id",
|
|
"scope",
|
|
"agent_id",
|
|
"base_task_id",
|
|
"kind",
|
|
"target",
|
|
"params",
|
|
"schedule",
|
|
"enabled",
|
|
"updated_at"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string"
|
|
},
|
|
"agent_id": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"base_task_id": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"kind": {
|
|
"type": "string"
|
|
},
|
|
"target": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"params": {
|
|
"type": "object"
|
|
},
|
|
"schedule": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"TestDto": {
|
|
"required": [
|
|
"id",
|
|
"agent_id",
|
|
"probe_id",
|
|
"plan",
|
|
"phases",
|
|
"status",
|
|
"phase",
|
|
"error_code",
|
|
"trigger",
|
|
"requested_at",
|
|
"started_at",
|
|
"finished_at",
|
|
"result"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"agent_id": {
|
|
"type": "string"
|
|
},
|
|
"probe_id": {
|
|
"type": "string"
|
|
},
|
|
"plan": {
|
|
"type": "string"
|
|
},
|
|
"phases": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"phase": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"null",
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"error_code": {
|
|
"type": [
|
|
"null",
|
|
"string"
|
|
]
|
|
},
|
|
"trigger": {
|
|
"type": "string"
|
|
},
|
|
"requested_at": {
|
|
"format": "date-time"
|
|
},
|
|
"started_at": {
|
|
"format": "date-time"
|
|
},
|
|
"finished_at": {
|
|
"format": "date-time"
|
|
},
|
|
"result": {
|
|
"oneOf": [
|
|
{
|
|
"type": "null"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/TestResultDto"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"TestResultDto": {
|
|
"required": [
|
|
"metrics",
|
|
"scores",
|
|
"series",
|
|
"steps",
|
|
"caveats"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"metrics": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
},
|
|
"scores": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ScoreDto"
|
|
}
|
|
},
|
|
"series": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
}
|
|
},
|
|
"steps": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TestStepDto"
|
|
}
|
|
},
|
|
"caveats": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"TestStepDto": {
|
|
"required": [
|
|
"index",
|
|
"target_mbps",
|
|
"loss_pct",
|
|
"jitter_p95_ms",
|
|
"delivered_mbps"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"index": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)$",
|
|
"type": [
|
|
"integer",
|
|
"string"
|
|
],
|
|
"format": "int32"
|
|
},
|
|
"target_mbps": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"loss_pct": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"jitter_p95_ms": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"null",
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
},
|
|
"delivered_mbps": {
|
|
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
|
|
"type": [
|
|
"number",
|
|
"string"
|
|
],
|
|
"format": "double"
|
|
}
|
|
}
|
|
},
|
|
"TestSummaryDto": {
|
|
"required": [
|
|
"id",
|
|
"plan",
|
|
"status",
|
|
"requested_at",
|
|
"finished_at"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"plan": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"requested_at": {
|
|
"format": "date-time"
|
|
},
|
|
"finished_at": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"UserDto": {
|
|
"required": [
|
|
"id",
|
|
"username",
|
|
"created_at"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"username": {
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tags": [
|
|
{
|
|
"name": "public"
|
|
},
|
|
{
|
|
"name": "catalog"
|
|
},
|
|
{
|
|
"name": "admin-auth"
|
|
},
|
|
{
|
|
"name": "admin-agents"
|
|
},
|
|
{
|
|
"name": "admin-join-tokens"
|
|
},
|
|
{
|
|
"name": "admin-probe"
|
|
},
|
|
{
|
|
"name": "admin-tasks"
|
|
},
|
|
{
|
|
"name": "admin-tests"
|
|
},
|
|
{
|
|
"name": "admin-data"
|
|
},
|
|
{
|
|
"name": "admin-api-tokens"
|
|
},
|
|
{
|
|
"name": "admin-settings"
|
|
},
|
|
{
|
|
"name": "admin-users"
|
|
},
|
|
{
|
|
"name": "ops"
|
|
},
|
|
{
|
|
"name": "agent"
|
|
}
|
|
]
|
|
} |