This is an automated email from the ASF dual-hosted git repository. sk0x50 pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push: new 550d4a5981 IGNITE-18821 Added REST specification to doc. Fixes #1687 550d4a5981 is described below commit 550d4a5981b71afd94e7769bb5304a1f81599a9a Author: IgGusev <des...@mail.ru> AuthorDate: Tue Feb 21 11:23:00 2023 +0200 IGNITE-18821 Added REST specification to doc. Fixes #1687 Signed-off-by: Slava Koptilin <slava.kopti...@gmail.com> --- docs/_data/toc.yaml | 8 +- docs/_docs/rest/reference.adoc | 1675 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1681 insertions(+), 2 deletions(-) diff --git a/docs/_data/toc.yaml b/docs/_data/toc.yaml index 526946636a..5bd7e9b2cf 100644 --- a/docs/_data/toc.yaml +++ b/docs/_data/toc.yaml @@ -43,8 +43,12 @@ url: sql-reference/dml - title: Supported Operators and Functions url: sql-reference/operators-and-functions -- title: REST API - url: rest/rest-api +- title: REST + items: + - title: Overview + url: rest/rest-api + - title: Reference + url: rest/reference - title: Clients items: - title: Clients Overview diff --git a/docs/_docs/rest/reference.adoc b/docs/_docs/rest/reference.adoc new file mode 100644 index 0000000000..a2613aa54f --- /dev/null +++ b/docs/_docs/rest/reference.adoc @@ -0,0 +1,1675 @@ +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + += Ignite REST module + +== Endpoints + + +[.ClusterConfiguration] +=== ClusterConfiguration + + +[.getClusterConfiguration] +==== getClusterConfiguration + +`GET /management/v1/configuration/cluster` + + + +===== Description + +Gets the current configuration of the cluster. + + +// markup not found, no include::{specDir}management/v1/configuration/cluster/GET/spec.adoc[opts=optional] + + + +===== Parameters + + + + + + + +===== Return Type + + +<<String>> + + +===== Content Type + +* text/plain +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Get cluster configuration +| <<String>> + + +| 500 +| Internal error. +| <<Problem>> + + +| 400 +| Incorrect configuration. +| <<Problem>> + + +| 404 +| Configuration not found. Most likely, the cluster is not initialized. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/configuration/cluster/GET/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/configuration/cluster/GET/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/configuration/cluster/GET/GET.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/configuration/cluster/GET/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.getClusterConfigurationByPath] +==== getClusterConfigurationByPath + +`GET /management/v1/configuration/cluster/{path}` + + + +===== Description + +Gets the configuration on the specific path. Configuration is in HOCON format + + +// markup not found, no include::{specDir}management/v1/configuration/cluster/\{path\}/GET/spec.adoc[opts=optional] + + + +===== Parameters + +====== Path Parameters + +[cols="2,3,1,1,1"] +|=== +|Name| Description| Required| Default| Pattern + +| path +| Configuration tree address. For example: `element.subelement`. +| X +| null +| + +|=== + + + + + + +===== Return Type + + +<<String>> + + +===== Content Type + +* text/plain +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Configuration of the cluster on the specified path. +| <<String>> + + +| 500 +| Internal error. +| <<Problem>> + + +| 400 +| Incorrect configuration. +| <<Problem>> + + +| 404 +| Configuration not found. Most likely, the cluster is not initialized. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/configuration/cluster/\{path\}/GET/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/configuration/cluster/\{path\}/GET/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/configuration/cluster/{path}/GET/GET.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/configuration/cluster/\{path\}/GET/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.updateClusterConfiguration] +==== updateClusterConfiguration + +`PATCH /management/v1/configuration/cluster` + + + +===== Description + +Updates cluster configuration. New configuration should be provided in HOCON format. + + +// markup not found, no include::{specDir}management/v1/configuration/cluster/PATCH/spec.adoc[opts=optional] + + + +===== Parameters + + +====== Body Parameter + +[cols="2,3,1,1,1"] +|=== +|Name| Description| Required| Default| Pattern + +| body +| <<string>> +| X +| +| + +|=== + + + + + +===== Return Type + + +<<Object>> + + +===== Content Type + +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Configuration updated. +| <<Object>> + + +| 500 +| Internal error. +| <<Problem>> + + +| 400 +| Incorrect configuration. +| <<Problem>> + + +| 404 +| Configuration not found. Most likely, the cluster is not initialized. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/configuration/cluster/PATCH/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/configuration/cluster/PATCH/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/configuration/cluster/PATCH/PATCH.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/configuration/cluster/PATCH/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.ClusterManagement] +=== ClusterManagement + + +[.clusterState] +==== clusterState + +`GET /management/v1/cluster/state` + + + +===== Description + +Returns current cluster status. + + +// markup not found, no include::{specDir}management/v1/cluster/state/GET/spec.adoc[opts=optional] + + + +===== Parameters + + + + + + + +===== Return Type + +<<ClusterState>> + + +===== Content Type + +* application/json +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Cluster status returned. +| <<ClusterState>> + + +| 404 +| Cluster state not found. Most likely, the cluster is not initialized. +| <<Problem>> + + +| 500 +| Internal error. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/cluster/state/GET/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/cluster/state/GET/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/cluster/state/GET/GET.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/cluster/state/GET/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.init] +==== init + +`POST /management/v1/cluster/init` + + + +===== Description + +Initializes a new cluster. + + +// markup not found, no include::{specDir}management/v1/cluster/init/POST/spec.adoc[opts=optional] + + + +===== Parameters + + +====== Body Parameter + +[cols="2,3,1,1,1"] +|=== +|Name| Description| Required| Default| Pattern + +| InitCommand +| <<InitCommand>> +| X +| +| + +|=== + + + + + +===== Return Type + + +<<Object>> + + +===== Content Type + +* application/json +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Cluster initialized. +| <<Object>> + + +| 500 +| Internal error. +| <<Problem>> + + +| 400 +| Incorrect configuration. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/cluster/init/POST/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/cluster/init/POST/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/cluster/init/POST/POST.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/cluster/init/POST/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.NodeConfiguration] +=== NodeConfiguration + + +[.getNodeConfiguration] +==== getNodeConfiguration + +`GET /management/v1/configuration/node` + + + +===== Description + +Gets node configuration in HOCON format. + + +// markup not found, no include::{specDir}management/v1/configuration/node/GET/spec.adoc[opts=optional] + + + +===== Parameters + + + + + + + +===== Return Type + + +<<String>> + + +===== Content Type + +* text/plain +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Whole node configuration. +| <<String>> + + +| 500 +| Internal error. +| <<Problem>> + + +| 400 +| Incorrect configuration. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/configuration/node/GET/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/configuration/node/GET/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/configuration/node/GET/GET.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/configuration/node/GET/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.getNodeConfigurationByPath] +==== getNodeConfigurationByPath + +`GET /management/v1/configuration/node/{path}` + + + +===== Description + +Gets a configuration of a specific node, in HOCON format. + + +// markup not found, no include::{specDir}management/v1/configuration/node/\{path\}/GET/spec.adoc[opts=optional] + + + +===== Parameters + +====== Path Parameters + +[cols="2,3,1,1,1"] +|=== +|Name| Description| Required| Default| Pattern + +| path +| Configuration tree address. For example: `element.subelement`. +| X +| null +| + +|=== + + + + + + +===== Return Type + + +<<String>> + + +===== Content Type + +* text/plain +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Returned node configuration. +| <<String>> + + +| 500 +| Internal error. +| <<Problem>> + + +| 400 +| Incorrect configuration. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/configuration/node/\{path\}/GET/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/configuration/node/\{path\}/GET/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/configuration/node/{path}/GET/GET.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/configuration/node/\{path\}/GET/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.updateNodeConfiguration] +==== updateNodeConfiguration + +`PATCH /management/v1/configuration/node` + + + +===== Description + +Updates node configuration. New configuration should be provided in HOCON format. + + +// markup not found, no include::{specDir}management/v1/configuration/node/PATCH/spec.adoc[opts=optional] + + + +===== Parameters + + +====== Body Parameter + +[cols="2,3,1,1,1"] +|=== +|Name| Description| Required| Default| Pattern + +| body +| <<string>> +| X +| +| + +|=== + + + + + +===== Return Type + + +<<Object>> + + +===== Content Type + +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Configuration successfully updated. +| <<Object>> + + +| 500 +| Internal error. +| <<Problem>> + + +| 400 +| Incorrect configuration. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/configuration/node/PATCH/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/configuration/node/PATCH/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/configuration/node/PATCH/PATCH.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/configuration/node/PATCH/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.NodeManagement] +=== NodeManagement + + +[.nodeState] +==== nodeState + +`GET /management/v1/node/state` + + + +===== Description + +Gets current network status. + + +// markup not found, no include::{specDir}management/v1/node/state/GET/spec.adoc[opts=optional] + + + +===== Parameters + + + + + + + +===== Return Type + +<<NodeState>> + + +===== Content Type + +* application/json +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Current node status. +| <<NodeState>> + + +| 500 +| Internal error. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/node/state/GET/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/node/state/GET/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/node/state/GET/GET.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/node/state/GET/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.nodeVersion] +==== nodeVersion + +`GET /management/v1/node/version` + + + +===== Description + +Gets the version of Apache Ignite the node uses. + + +// markup not found, no include::{specDir}management/v1/node/version/GET/spec.adoc[opts=optional] + + + +===== Parameters + + + + + + + +===== Return Type + + +<<String>> + + +===== Content Type + +* text/plain +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Node version. +| <<String>> + + +| 500 +| Internal error +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/node/version/GET/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/node/version/GET/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/node/version/GET/GET.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/node/version/GET/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.NodeMetric] +=== NodeMetric + + +[.disableNodeMetric] +==== disableNodeMetric + +`POST /management/v1/metric/node/disable` + + + +===== Description + +Disables a specific metric source. + + +// markup not found, no include::{specDir}management/v1/metric/node/disable/POST/spec.adoc[opts=optional] + + + +===== Parameters + + +====== Body Parameter + +[cols="2,3,1,1,1"] +|=== +|Name| Description| Required| Default| Pattern + +| body +| <<string>> +| X +| +| + +|=== + + + + + +===== Return Type + + + +- + +===== Content Type + +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Metric source disabled. +| <<>> + + +| 500 +| Internal error. +| <<Problem>> + + +| 404 +| Metric source not found. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/metric/node/disable/POST/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/metric/node/disable/POST/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/metric/node/disable/POST/POST.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/metric/node/disable/POST/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.enableNodeMetric] +==== enableNodeMetric + +`POST /management/v1/metric/node/enable` + + + +===== Description + +Enables a specific metric source. + + +// markup not found, no include::{specDir}management/v1/metric/node/enable/POST/spec.adoc[opts=optional] + + + +===== Parameters + + +====== Body Parameter + +[cols="2,3,1,1,1"] +|=== +|Name| Description| Required| Default| Pattern + +| body +| <<string>> +| X +| +| + +|=== + + + + + +===== Return Type + + + +- + +===== Content Type + +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Metric source enabled. +| <<>> + + +| 500 +| Internal error. +| <<Problem>> + + +| 404 +| Metric source not found. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/metric/node/enable/POST/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/metric/node/enable/POST/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/metric/node/enable/POST/POST.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/metric/node/enable/POST/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.listNodeMetrics] +==== listNodeMetrics + +`GET /management/v1/metric/node` + + + +===== Description + +Provides a list of all available metric sources. + + +// markup not found, no include::{specDir}management/v1/metric/node/GET/spec.adoc[opts=optional] + + + +===== Parameters + + + + + + + +===== Return Type + +array[<<MetricSource>>] + + +===== Content Type + +* application/json +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Returned a list of metric sources. +| List[<<MetricSource>>] + + +| 500 +| Internal error. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/metric/node/GET/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/metric/node/GET/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/metric/node/GET/GET.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/metric/node/GET/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.Topology] +=== Topology + + +[.logical] +==== logical + +`GET /management/v1/cluster/topology/logical` + + + +===== Description + +Gets information about logical cluster topology. + + +// markup not found, no include::{specDir}management/v1/cluster/topology/logical/GET/spec.adoc[opts=optional] + + + +===== Parameters + + + + + + + +===== Return Type + +array[<<ClusterNode>>] + + +===== Content Type + +* application/json +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Logical topology returned. +| List[<<ClusterNode>>] + + +| 404 +| Logical topology not found. Most likely, the cluster is not initialized. +| <<Problem>> + + +| 500 +| Internal error +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/cluster/topology/logical/GET/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/cluster/topology/logical/GET/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/cluster/topology/logical/GET/GET.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/cluster/topology/logical/GET/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[.physical] +==== physical + +`GET /management/v1/cluster/topology/physical` + + + +===== Description + +Gets information about physical cluster topology. + + +// markup not found, no include::{specDir}management/v1/cluster/topology/physical/GET/spec.adoc[opts=optional] + + + +===== Parameters + + + + + + + +===== Return Type + +array[<<ClusterNode>>] + + +===== Content Type + +* application/json +* application/problem+json + +===== Responses + +.http response codes +[cols="2,3,1"] +|=== +| Code | Message | Datatype + + +| 200 +| Physical topology returned. +| List[<<ClusterNode>>] + + +| 500 +| Internal error. +| <<Problem>> + +|=== + +===== Samples + + +// markup not found, no include::{snippetDir}management/v1/cluster/topology/physical/GET/http-request.adoc[opts=optional] + + +// markup not found, no include::{snippetDir}management/v1/cluster/topology/physical/GET/http-response.adoc[opts=optional] + + + +// file not found, no * wiremock data link :management/v1/cluster/topology/physical/GET/GET.json[] + + +ifdef::internal-generation[] +===== Implementation + +// markup not found, no include::{specDir}management/v1/cluster/topology/physical/GET/implementation.adoc[opts=optional] + + +endif::internal-generation[] + + +[#models] +== Models + + +[#ClusterNode] +=== _ClusterNode_ + +Information about the cluster node. + +[.fields-ClusterNode] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +| id +| +| String +| Node ID. +| + +| name +| +| String +| Unique cluster name. +| + +| address +| +| NetworkAddress +| +| + +| metadata +| +| NodeMetadata +| +| + +|=== + + +[#ClusterState] +=== _ClusterState_ + +Information about current cluster state. + +[.fields-ClusterState] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +| cmgNodes +| +| List of <<string>> +| List of cluster management group nodes. These nodes are responsible for maintaining RAFT cluster topology. +| + +| msNodes +| +| List of <<string>> +| List of metastorage nodes. These nodes are responsible for storing RAFT cluster metadata. +| + +| igniteVersion +| +| String +| Version of Apache Ignite that the cluster was created on. +| + +| clusterTag +| +| ClusterTag +| +| + +|=== + + +[#ClusterTag] +=== _ClusterTag_ + +Unique tag that identifies the cluster. + +[.fields-ClusterTag] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +| clusterId +| +| UUID +| Unique cluster UUID. Generated automatically. +| uuid + +| clusterName +| +| String +| Unique cluster name. +| + +|=== + + +[#InitCommand] +=== _InitCommand_ + + + +[.fields-InitCommand] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +| metaStorageNodes +| +| List of <<string>> +| A list of RAFT metastorage nodes. +| + +| cmgNodes +| +| List of <<string>> +| A list of RAFT cluster management nodes. +| + +| clusterName +| +| String +| The name of the cluster. +| + +|=== + + +[#InvalidParam] +=== _InvalidParam_ + +Information about invalid request parameter. + +[.fields-InvalidParam] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +| name +| +| String +| Parameter name. +| + +| reason +| +| String +| The issue with the parameter. +| + +|=== + + +[#MetricSource] +=== _MetricSource_ + +Metric sources provided by modules. + +[.fields-MetricSource] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +| name +| +| String +| Metric source name. +| + +| enabled +| +| Boolean +| If True, the metric is tracked. Otherwise, the metric is not tracked. +| + +|=== + + +[#NetworkAddress] +=== _NetworkAddress_ + +Node network address information. + +[.fields-NetworkAddress] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +| host +| +| String +| Name of the host node is on. +| + +| port +| +| Integer +| Port the node runs on. +| int32 + +|=== + + +[#NodeMetadata] +=== _NodeMetadata_ + +Node metadata information. + +[.fields-NodeMetadata] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +| restHost +| +| String +| The host exposed to REST API. +| + +| httpPort +| +| Integer +| The HTTP port exposed to REST API. +| int32 + +| httpsPort +| +| Integer +| The HTTPS port exposed to REST API. +| int32 + +|=== + + +[#NodeState] +=== _NodeState_ + +Node state. + +[.fields-NodeState] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +| name +| +| String +| Unique node name. +| + +| state +| +| State +| +| + +|=== + + +[#Problem] +=== _Problem_ + +Extended description of the problem with the request. + +[.fields-Problem] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +| title +| +| String +| Short summary of the issue. +| + +| status +| +| Integer +| Returned HTTP status code. +| int32 + +| code +| +| String +| Ignite 3 error code. +| + +| type +| +| String +| URI to documentation regarding the issue. +| + +| detail +| +| String +| Extended explanation of the issue. +| + +| node +| +| String +| Name of the node the issue happened on. +| + +| traceId +| +| UUID +| Unique issue identifier. Thid identifier can be used to find logs related to the issue +| uuid + +| invalidParams +| +| List of <<InvalidParam>> +| Parameters that did not pass validation. +| + +|=== + + +[#State] +=== _State_ + +Possible node statuses. + +[.fields-State] +[cols="2,1,2,4,1"] +|=== +| Field Name| Required| Type| Description| Format + +|=== + +