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: &#x60;element.subelement&#x60;. 
+| 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: &#x60;element.subelement&#x60;. 
+| 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
+
+|===
+
+

Reply via email to