From 0327edcaf356919f220a4162fb12f2eb2c1ed33a Mon Sep 17 00:00:00 2001 From: Ingo Oppermann Date: Thu, 5 Sep 2024 13:58:59 +0200 Subject: [PATCH] Update openapi specification --- cluster/docs/ClusterAPI_docs.go | 117 +++++++++++---- cluster/docs/ClusterAPI_swagger.json | 114 +++++++++++---- cluster/docs/ClusterAPI_swagger.yaml | 77 +++++++--- docs/docs.go | 203 +++++++++++++++++++++++---- docs/swagger.json | 200 ++++++++++++++++++++++---- docs/swagger.yaml | 139 +++++++++++++++--- http/handler/api/cluster_node.go | 2 +- 7 files changed, 699 insertions(+), 153 deletions(-) diff --git a/cluster/docs/ClusterAPI_docs.go b/cluster/docs/ClusterAPI_docs.go index be2fd046..2adc2b3c 100644 --- a/cluster/docs/ClusterAPI_docs.go +++ b/cluster/docs/ClusterAPI_docs.go @@ -1,5 +1,4 @@ -// Code generated by swaggo/swag. DO NOT EDIT. - +// Package docs Code generated by swaggo/swag. DO NOT EDIT package docs import "github.com/swaggo/swag" @@ -769,6 +768,64 @@ const docTemplateClusterAPI = `{ } }, "/v1/process/{id}": { + "get": { + "description": "Get a process from the cluster DB", + "produces": [ + "application/json" + ], + "tags": [ + "v1.0.0" + ], + "summary": "Get a process", + "operationId": "cluster-1-get-process", + "parameters": [ + { + "type": "string", + "description": "Process ID", + "name": "id", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Domain to act on", + "name": "domain", + "in": "query" + }, + { + "type": "string", + "description": "Origin ID of request", + "name": "X-Cluster-Origin", + "in": "header" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/cluster.Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/cluster.Error" + } + }, + "508": { + "description": "Loop Detected", + "schema": { + "$ref": "#/definitions/cluster.Error" + } + } + } + }, "put": { "description": "Replace an existing process in the cluster DB", "consumes": [ @@ -1225,32 +1282,6 @@ const docTemplateClusterAPI = `{ } }, "definitions": { - "access.Policy": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "type": "string" - } - }, - "domain": { - "type": "string" - }, - "name": { - "type": "string" - }, - "resource": { - "type": "string" - }, - "types": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, "app.Config": { "type": "object", "properties": { @@ -1285,7 +1316,7 @@ const docTemplateClusterAPI = `{ "type": "integer" }, "logPatterns": { - "description": "will we interpreted as regular expressions", + "description": "will be interpreted as regular expressions", "type": "array", "items": { "type": "string" @@ -1444,7 +1475,7 @@ const docTemplateClusterAPI = `{ "policies": { "type": "array", "items": { - "$ref": "#/definitions/access.Policy" + "$ref": "#/definitions/policy.Policy" } } } @@ -2218,6 +2249,32 @@ const docTemplateClusterAPI = `{ } } }, + "policy.Policy": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "type": "string" + } + }, + "domain": { + "type": "string" + }, + "name": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "types": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, "skills.Codec": { "type": "object", "properties": { diff --git a/cluster/docs/ClusterAPI_swagger.json b/cluster/docs/ClusterAPI_swagger.json index 70cf3f4e..debab33c 100644 --- a/cluster/docs/ClusterAPI_swagger.json +++ b/cluster/docs/ClusterAPI_swagger.json @@ -761,6 +761,64 @@ } }, "/v1/process/{id}": { + "get": { + "description": "Get a process from the cluster DB", + "produces": [ + "application/json" + ], + "tags": [ + "v1.0.0" + ], + "summary": "Get a process", + "operationId": "cluster-1-get-process", + "parameters": [ + { + "type": "string", + "description": "Process ID", + "name": "id", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "Domain to act on", + "name": "domain", + "in": "query" + }, + { + "type": "string", + "description": "Origin ID of request", + "name": "X-Cluster-Origin", + "in": "header" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/cluster.Error" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/cluster.Error" + } + }, + "508": { + "description": "Loop Detected", + "schema": { + "$ref": "#/definitions/cluster.Error" + } + } + } + }, "put": { "description": "Replace an existing process in the cluster DB", "consumes": [ @@ -1217,32 +1275,6 @@ } }, "definitions": { - "access.Policy": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "type": "string" - } - }, - "domain": { - "type": "string" - }, - "name": { - "type": "string" - }, - "resource": { - "type": "string" - }, - "types": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, "app.Config": { "type": "object", "properties": { @@ -1277,7 +1309,7 @@ "type": "integer" }, "logPatterns": { - "description": "will we interpreted as regular expressions", + "description": "will be interpreted as regular expressions", "type": "array", "items": { "type": "string" @@ -1436,7 +1468,7 @@ "policies": { "type": "array", "items": { - "$ref": "#/definitions/access.Policy" + "$ref": "#/definitions/policy.Policy" } } } @@ -2210,6 +2242,32 @@ } } }, + "policy.Policy": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "type": "string" + } + }, + "domain": { + "type": "string" + }, + "name": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "types": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, "skills.Codec": { "type": "object", "properties": { diff --git a/cluster/docs/ClusterAPI_swagger.yaml b/cluster/docs/ClusterAPI_swagger.yaml index c0628aca..1e6f1745 100644 --- a/cluster/docs/ClusterAPI_swagger.yaml +++ b/cluster/docs/ClusterAPI_swagger.yaml @@ -1,22 +1,5 @@ basePath: / definitions: - access.Policy: - properties: - actions: - items: - type: string - type: array - domain: - type: string - name: - type: string - resource: - type: string - types: - items: - type: string - type: array - type: object app.Config: properties: autostart: @@ -41,7 +24,7 @@ definitions: description: seconds type: integer logPatterns: - description: will we interpreted as regular expressions + description: will be interpreted as regular expressions items: type: string type: array @@ -145,7 +128,7 @@ definitions: properties: policies: items: - $ref: '#/definitions/access.Policy' + $ref: '#/definitions/policy.Policy' type: array type: object client.SetProcessCommandRequest: @@ -662,6 +645,23 @@ definitions: type: string type: array type: object + policy.Policy: + properties: + actions: + items: + type: string + type: array + domain: + type: string + name: + type: string + resource: + type: string + types: + items: + type: string + type: array + type: object skills.Codec: properties: decoders: @@ -1410,6 +1410,45 @@ paths: summary: Remove a process tags: - v1.0.0 + get: + description: Get a process from the cluster DB + operationId: cluster-1-get-process + parameters: + - description: Process ID + in: path + name: id + required: true + type: string + - description: Domain to act on + in: query + name: domain + type: string + - description: Origin ID of request + in: header + name: X-Cluster-Origin + type: string + produces: + - application/json + responses: + "200": + description: OK + schema: + type: string + "404": + description: Not Found + schema: + $ref: '#/definitions/cluster.Error' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/cluster.Error' + "508": + description: Loop Detected + schema: + $ref: '#/definitions/cluster.Error' + summary: Get a process + tags: + - v1.0.0 put: consumes: - application/json diff --git a/docs/docs.go b/docs/docs.go index ee197903..c8d44e9f 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -1,5 +1,4 @@ -// Code generated by swaggo/swag. DO NOT EDIT. - +// Package docs Code generated by swaggo/swag. DO NOT EDIT package docs import "github.com/swaggo/swag" @@ -404,6 +403,46 @@ const docTemplate = `{ } } }, + "/api/v3/cluster/events": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Stream of events of whats happening on each node in the cluster", + "consumes": [ + "application/json" + ], + "produces": [ + "text/event-stream", + "application/x-json-stream" + ], + "tags": [ + "v16.?.?" + ], + "summary": "Stream of events", + "operationId": "cluster-3-events", + "parameters": [ + { + "description": "Event filters", + "name": "filters", + "in": "body", + "schema": { + "$ref": "#/definitions/api.EventFilters" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/api.Event" + } + } + } + } + }, "/api/v3/cluster/fs/{storage}": { "get": { "security": [ @@ -1540,7 +1579,7 @@ const docTemplate = `{ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/api.Version" + "$ref": "#/definitions/api.AboutVersion" } }, "404": { @@ -5039,6 +5078,14 @@ const docTemplate = `{ "type": "integer", "format": "uint64" }, + "channels": { + "type": "integer", + "format": "uint64" + }, + "codec": { + "description": "Codec parameter", + "type": "string" + }, "drop": { "type": "integer", "format": "uint64" @@ -5057,9 +5104,19 @@ const docTemplate = `{ "gop": { "type": "string" }, + "height": { + "type": "integer", + "format": "uint64" + }, "input": { "$ref": "#/definitions/api.AVstreamIO" }, + "layout": { + "type": "string" + }, + "level": { + "type": "integer" + }, "looping": { "type": "boolean" }, @@ -5073,9 +5130,26 @@ const docTemplate = `{ "output": { "$ref": "#/definitions/api.AVstreamIO" }, + "pix_fmt": { + "type": "string" + }, + "profile": { + "type": "integer" + }, "queue": { "type": "integer", "format": "uint64" + }, + "sample_fmt": { + "type": "string" + }, + "sampling_hz": { + "type": "integer", + "format": "uint64" + }, + "width": { + "type": "integer", + "format": "uint64" } } }, @@ -5123,11 +5197,79 @@ const docTemplate = `{ "name": { "type": "string" }, + "resources": { + "$ref": "#/definitions/api.AboutResources" + }, "uptime_seconds": { "type": "integer" }, "version": { - "$ref": "#/definitions/api.Version" + "$ref": "#/definitions/api.AboutVersion" + } + } + }, + "api.AboutResources": { + "type": "object", + "properties": { + "cpu_core": { + "description": "Current CPU load of the core itself, 0-100*ncpu", + "type": "number" + }, + "cpu_limit": { + "description": "Defined CPU load limit, 0-100*ncpu", + "type": "number" + }, + "cpu_used": { + "description": "Current CPU load, 0-100*ncpu", + "type": "number" + }, + "is_throttling": { + "description": "Whether this core is currently throttling", + "type": "boolean" + }, + "memory_core_bytes": { + "description": "Current used memory of the core itself in bytes", + "type": "integer" + }, + "memory_limit_bytes": { + "description": "Defined memory limit in bytes", + "type": "integer" + }, + "memory_total_bytes": { + "description": "Total available memory in bytes", + "type": "integer" + }, + "memory_used_bytes": { + "description": "Currently used memory in bytes", + "type": "integer" + }, + "ncpu": { + "description": "Number of CPU on this node", + "type": "number" + } + } + }, + "api.AboutVersion": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "build_date": { + "description": "RFC3339", + "type": "string" + }, + "compiler": { + "type": "string" + }, + "number": { + "type": "string" + }, + "repository_branch": { + "type": "string" + }, + "repository_commit": { + "type": "string" } } }, @@ -5313,6 +5455,10 @@ const docTemplate = `{ "api.ClusterNodeResources": { "type": "object", "properties": { + "cpu_core": { + "description": "percent 0-100*ncpu", + "type": "number" + }, "cpu_limit": { "description": "percent 0-100*npcu", "type": "number" @@ -5327,10 +5473,18 @@ const docTemplate = `{ "is_throttling": { "type": "boolean" }, + "memory_core_bytes": { + "description": "bytes", + "type": "integer" + }, "memory_limit_bytes": { "description": "bytes", "type": "integer" }, + "memory_total_bytes": { + "description": "bytes", + "type": "integer" + }, "memory_used_bytes": { "description": "bytes", "type": "integer" @@ -6089,6 +6243,9 @@ const docTemplate = `{ "caller": { "type": "string" }, + "core_id": { + "type": "string" + }, "data": { "type": "object", "additionalProperties": { @@ -6116,6 +6273,9 @@ const docTemplate = `{ "caller": { "type": "string" }, + "core_id": { + "type": "string" + }, "data": { "type": "object", "additionalProperties": { @@ -7243,6 +7403,9 @@ const docTemplate = `{ "layout": { "type": "string" }, + "level": { + "type": "integer" + }, "packet": { "type": "integer", "format": "uint64" @@ -7254,11 +7417,17 @@ const docTemplate = `{ "pps": { "type": "number" }, + "profile": { + "type": "integer" + }, "q": { "type": "number" }, - "sampling_hz": { + "sample_fmt": { "description": "Audio", + "type": "string" + }, + "sampling_hz": { "type": "integer", "format": "uint64" }, @@ -8671,30 +8840,6 @@ const docTemplate = `{ } } }, - "api.Version": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "build_date": { - "description": "RFC3339", - "type": "string" - }, - "compiler": { - "type": "string" - }, - "number": { - "type": "string" - }, - "repository_branch": { - "type": "string" - }, - "repository_commit": { - "type": "string" - } - } - }, "api.WidgetProcess": { "type": "object", "properties": { diff --git a/docs/swagger.json b/docs/swagger.json index ba1fbbe4..eab2ce04 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -396,6 +396,46 @@ } } }, + "/api/v3/cluster/events": { + "post": { + "security": [ + { + "ApiKeyAuth": [] + } + ], + "description": "Stream of events of whats happening on each node in the cluster", + "consumes": [ + "application/json" + ], + "produces": [ + "text/event-stream", + "application/x-json-stream" + ], + "tags": [ + "v16.?.?" + ], + "summary": "Stream of events", + "operationId": "cluster-3-events", + "parameters": [ + { + "description": "Event filters", + "name": "filters", + "in": "body", + "schema": { + "$ref": "#/definitions/api.EventFilters" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/api.Event" + } + } + } + } + }, "/api/v3/cluster/fs/{storage}": { "get": { "security": [ @@ -1532,7 +1572,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/api.Version" + "$ref": "#/definitions/api.AboutVersion" } }, "404": { @@ -5031,6 +5071,14 @@ "type": "integer", "format": "uint64" }, + "channels": { + "type": "integer", + "format": "uint64" + }, + "codec": { + "description": "Codec parameter", + "type": "string" + }, "drop": { "type": "integer", "format": "uint64" @@ -5049,9 +5097,19 @@ "gop": { "type": "string" }, + "height": { + "type": "integer", + "format": "uint64" + }, "input": { "$ref": "#/definitions/api.AVstreamIO" }, + "layout": { + "type": "string" + }, + "level": { + "type": "integer" + }, "looping": { "type": "boolean" }, @@ -5065,9 +5123,26 @@ "output": { "$ref": "#/definitions/api.AVstreamIO" }, + "pix_fmt": { + "type": "string" + }, + "profile": { + "type": "integer" + }, "queue": { "type": "integer", "format": "uint64" + }, + "sample_fmt": { + "type": "string" + }, + "sampling_hz": { + "type": "integer", + "format": "uint64" + }, + "width": { + "type": "integer", + "format": "uint64" } } }, @@ -5115,11 +5190,79 @@ "name": { "type": "string" }, + "resources": { + "$ref": "#/definitions/api.AboutResources" + }, "uptime_seconds": { "type": "integer" }, "version": { - "$ref": "#/definitions/api.Version" + "$ref": "#/definitions/api.AboutVersion" + } + } + }, + "api.AboutResources": { + "type": "object", + "properties": { + "cpu_core": { + "description": "Current CPU load of the core itself, 0-100*ncpu", + "type": "number" + }, + "cpu_limit": { + "description": "Defined CPU load limit, 0-100*ncpu", + "type": "number" + }, + "cpu_used": { + "description": "Current CPU load, 0-100*ncpu", + "type": "number" + }, + "is_throttling": { + "description": "Whether this core is currently throttling", + "type": "boolean" + }, + "memory_core_bytes": { + "description": "Current used memory of the core itself in bytes", + "type": "integer" + }, + "memory_limit_bytes": { + "description": "Defined memory limit in bytes", + "type": "integer" + }, + "memory_total_bytes": { + "description": "Total available memory in bytes", + "type": "integer" + }, + "memory_used_bytes": { + "description": "Currently used memory in bytes", + "type": "integer" + }, + "ncpu": { + "description": "Number of CPU on this node", + "type": "number" + } + } + }, + "api.AboutVersion": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "build_date": { + "description": "RFC3339", + "type": "string" + }, + "compiler": { + "type": "string" + }, + "number": { + "type": "string" + }, + "repository_branch": { + "type": "string" + }, + "repository_commit": { + "type": "string" } } }, @@ -5305,6 +5448,10 @@ "api.ClusterNodeResources": { "type": "object", "properties": { + "cpu_core": { + "description": "percent 0-100*ncpu", + "type": "number" + }, "cpu_limit": { "description": "percent 0-100*npcu", "type": "number" @@ -5319,10 +5466,18 @@ "is_throttling": { "type": "boolean" }, + "memory_core_bytes": { + "description": "bytes", + "type": "integer" + }, "memory_limit_bytes": { "description": "bytes", "type": "integer" }, + "memory_total_bytes": { + "description": "bytes", + "type": "integer" + }, "memory_used_bytes": { "description": "bytes", "type": "integer" @@ -6081,6 +6236,9 @@ "caller": { "type": "string" }, + "core_id": { + "type": "string" + }, "data": { "type": "object", "additionalProperties": { @@ -6108,6 +6266,9 @@ "caller": { "type": "string" }, + "core_id": { + "type": "string" + }, "data": { "type": "object", "additionalProperties": { @@ -7235,6 +7396,9 @@ "layout": { "type": "string" }, + "level": { + "type": "integer" + }, "packet": { "type": "integer", "format": "uint64" @@ -7246,11 +7410,17 @@ "pps": { "type": "number" }, + "profile": { + "type": "integer" + }, "q": { "type": "number" }, - "sampling_hz": { + "sample_fmt": { "description": "Audio", + "type": "string" + }, + "sampling_hz": { "type": "integer", "format": "uint64" }, @@ -8663,30 +8833,6 @@ } } }, - "api.Version": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "build_date": { - "description": "RFC3339", - "type": "string" - }, - "compiler": { - "type": "string" - }, - "number": { - "type": "string" - }, - "repository_branch": { - "type": "string" - }, - "repository_commit": { - "type": "string" - } - } - }, "api.WidgetProcess": { "type": "object", "properties": { diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 61e9d8b2..5a5c0746 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -5,6 +5,12 @@ definitions: aqueue: format: uint64 type: integer + channels: + format: uint64 + type: integer + codec: + description: Codec parameter + type: string drop: format: uint64 type: integer @@ -18,8 +24,15 @@ definitions: type: integer gop: type: string + height: + format: uint64 + type: integer input: $ref: '#/definitions/api.AVstreamIO' + layout: + type: string + level: + type: integer looping: type: boolean looping_runtime: @@ -29,9 +42,21 @@ definitions: type: string output: $ref: '#/definitions/api.AVstreamIO' + pix_fmt: + type: string + profile: + type: integer queue: format: uint64 type: integer + sample_fmt: + type: string + sampling_hz: + format: uint64 + type: integer + width: + format: uint64 + type: integer type: object api.AVstreamIO: properties: @@ -63,10 +88,58 @@ definitions: type: string name: type: string + resources: + $ref: '#/definitions/api.AboutResources' uptime_seconds: type: integer version: - $ref: '#/definitions/api.Version' + $ref: '#/definitions/api.AboutVersion' + type: object + api.AboutResources: + properties: + cpu_core: + description: Current CPU load of the core itself, 0-100*ncpu + type: number + cpu_limit: + description: Defined CPU load limit, 0-100*ncpu + type: number + cpu_used: + description: Current CPU load, 0-100*ncpu + type: number + is_throttling: + description: Whether this core is currently throttling + type: boolean + memory_core_bytes: + description: Current used memory of the core itself in bytes + type: integer + memory_limit_bytes: + description: Defined memory limit in bytes + type: integer + memory_total_bytes: + description: Total available memory in bytes + type: integer + memory_used_bytes: + description: Currently used memory in bytes + type: integer + ncpu: + description: Number of CPU on this node + type: number + type: object + api.AboutVersion: + properties: + arch: + type: string + build_date: + description: RFC3339 + type: string + compiler: + type: string + number: + type: string + repository_branch: + type: string + repository_commit: + type: string type: object api.ClusterAbout: properties: @@ -188,6 +261,9 @@ definitions: type: object api.ClusterNodeResources: properties: + cpu_core: + description: percent 0-100*ncpu + type: number cpu_limit: description: percent 0-100*npcu type: number @@ -198,9 +274,15 @@ definitions: type: string is_throttling: type: boolean + memory_core_bytes: + description: bytes + type: integer memory_limit_bytes: description: bytes type: integer + memory_total_bytes: + description: bytes + type: integer memory_used_bytes: description: bytes type: integer @@ -710,6 +792,8 @@ definitions: properties: caller: type: string + core_id: + type: string data: additionalProperties: type: string @@ -728,6 +812,8 @@ definitions: properties: caller: type: string + core_id: + type: string data: additionalProperties: type: string @@ -1490,6 +1576,8 @@ definitions: type: integer layout: type: string + level: + type: integer packet: format: uint64 type: integer @@ -1498,10 +1586,14 @@ definitions: type: string pps: type: number + profile: + type: integer q: type: number - sampling_hz: + sample_fmt: description: Audio + type: string + sampling_hz: format: uint64 type: integer size_kb: @@ -2513,22 +2605,6 @@ definitions: $ref: '#/definitions/api.GraphMapping' type: array type: object - api.Version: - properties: - arch: - type: string - build_date: - description: RFC3339 - type: string - compiler: - type: string - number: - type: string - repository_branch: - type: string - repository_commit: - type: string - type: object api.WidgetProcess: properties: current_sessions: @@ -2838,6 +2914,31 @@ paths: summary: List of identities in the cluster tags: - v16.?.? + /api/v3/cluster/events: + post: + consumes: + - application/json + description: Stream of events of whats happening on each node in the cluster + operationId: cluster-3-events + parameters: + - description: Event filters + in: body + name: filters + schema: + $ref: '#/definitions/api.EventFilters' + produces: + - text/event-stream + - application/x-json-stream + responses: + "200": + description: OK + schema: + $ref: '#/definitions/api.Event' + security: + - ApiKeyAuth: [] + summary: Stream of events + tags: + - v16.?.? /api/v3/cluster/fs/{storage}: get: description: List all files on a filesystem. The listing can be ordered by name, @@ -3577,7 +3678,7 @@ paths: "200": description: OK schema: - $ref: '#/definitions/api.Version' + $ref: '#/definitions/api.AboutVersion' "404": description: Not Found schema: diff --git a/http/handler/api/cluster_node.go b/http/handler/api/cluster_node.go index 51f4c463..9276884b 100644 --- a/http/handler/api/cluster_node.go +++ b/http/handler/api/cluster_node.go @@ -86,7 +86,7 @@ func (h *ClusterHandler) NodeGet(c echo.Context) error { // @ID cluster-3-get-node-version // @Produce json // @Param id path string true "Node ID" -// @Success 200 {object} api.Version +// @Success 200 {object} api.AboutVersion // @Failure 404 {object} api.Error // @Security ApiKeyAuth // @Router /api/v3/cluster/node/{id}/version [get]