diff --git a/apps/emqx_dashboard/src/emqx_dashboard.app.src b/apps/emqx_dashboard/src/emqx_dashboard.app.src
index bd022f226..02fbdfb74 100644
--- a/apps/emqx_dashboard/src/emqx_dashboard.app.src
+++ b/apps/emqx_dashboard/src/emqx_dashboard.app.src
@@ -2,7 +2,7 @@
{application, emqx_dashboard, [
{description, "EMQX Web Dashboard"},
% strict semver, bump manually!
- {vsn, "5.0.20"},
+ {vsn, "5.0.21"},
{modules, []},
{registered, [emqx_dashboard_sup]},
{applications, [kernel, stdlib, mnesia, minirest, emqx, emqx_ctl]},
diff --git a/apps/emqx_dashboard/src/emqx_dashboard_error_code_api.erl b/apps/emqx_dashboard/src/emqx_dashboard_error_code_api.erl
index 131b08313..47ba02ebf 100644
--- a/apps/emqx_dashboard/src/emqx_dashboard_error_code_api.erl
+++ b/apps/emqx_dashboard/src/emqx_dashboard_error_code_api.erl
@@ -20,6 +20,7 @@
-include_lib("emqx/include/http_api.hrl").
-include("emqx_dashboard.hrl").
-include_lib("typerefl/include/types.hrl").
+-include_lib("hocon/include/hoconsc.hrl").
-export([
api_spec/0,
@@ -50,7 +51,7 @@ schema("/error_codes") ->
'operationId' => error_codes,
get => #{
security => [],
- description => <<"API Error Codes">>,
+ description => ?DESC(error_codes),
tags => [<<"Error Codes">>],
responses => #{
200 => hoconsc:array(hoconsc:ref(?MODULE, error_code))
@@ -62,7 +63,7 @@ schema("/error_codes/:code") ->
'operationId' => error_code,
get => #{
security => [],
- description => <<"API Error Codes">>,
+ description => ?DESC(error_codes_u),
tags => [<<"Error Codes">>],
parameters => [
{code,
diff --git a/apps/emqx_dashboard/src/emqx_dashboard_monitor_api.erl b/apps/emqx_dashboard/src/emqx_dashboard_monitor_api.erl
index c0e162b62..d86dffba0 100644
--- a/apps/emqx_dashboard/src/emqx_dashboard_monitor_api.erl
+++ b/apps/emqx_dashboard/src/emqx_dashboard_monitor_api.erl
@@ -6,6 +6,7 @@
-include("emqx_dashboard.hrl").
-include_lib("typerefl/include/types.hrl").
+-include_lib("hocon/include/hocon_types.hrl").
-behaviour(minirest_api).
@@ -38,7 +39,7 @@ schema("/monitor") ->
'operationId' => monitor,
get => #{
tags => [<<"Metrics">>],
- desc => <<"List monitor data.">>,
+ description => ?DESC(list_monitor),
parameters => [parameter_latest()],
responses => #{
200 => hoconsc:mk(hoconsc:array(hoconsc:ref(sampler)), #{}),
@@ -51,7 +52,7 @@ schema("/monitor/nodes/:node") ->
'operationId' => monitor,
get => #{
tags => [<<"Metrics">>],
- desc => <<"List the monitor data on the node.">>,
+ description => ?DESC(list_monitor_node),
parameters => [parameter_node(), parameter_latest()],
responses => #{
200 => hoconsc:mk(hoconsc:array(hoconsc:ref(sampler)), #{}),
@@ -64,7 +65,7 @@ schema("/monitor_current") ->
'operationId' => monitor_current,
get => #{
tags => [<<"Metrics">>],
- desc => <<"Current status. Gauge and rate.">>,
+ description => ?DESC(current_status),
responses => #{
200 => hoconsc:mk(hoconsc:ref(sampler_current), #{})
}
@@ -75,7 +76,7 @@ schema("/monitor_current/nodes/:node") ->
'operationId' => monitor_current,
get => #{
tags => [<<"Metrics">>],
- desc => <<"Node current status. Gauge and rate.">>,
+ description => ?DESC(current_status_node),
parameters => [parameter_node()],
responses => #{
200 => hoconsc:mk(hoconsc:ref(sampler_current), #{}),
diff --git a/apps/emqx_management/src/emqx_management.app.src b/apps/emqx_management/src/emqx_management.app.src
index 34f3dd1fe..f51a83923 100644
--- a/apps/emqx_management/src/emqx_management.app.src
+++ b/apps/emqx_management/src/emqx_management.app.src
@@ -2,7 +2,7 @@
{application, emqx_management, [
{description, "EMQX Management API and CLI"},
% strict semver, bump manually!
- {vsn, "5.0.21"},
+ {vsn, "5.0.22"},
{modules, []},
{registered, [emqx_management_sup]},
{applications, [kernel, stdlib, emqx_plugins, minirest, emqx, emqx_ctl]},
diff --git a/apps/emqx_management/src/emqx_mgmt_api_api_keys.erl b/apps/emqx_management/src/emqx_mgmt_api_api_keys.erl
index c39b11273..ba21adaa5 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_api_keys.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_api_keys.erl
@@ -18,6 +18,7 @@
-behaviour(minirest_api).
-include_lib("typerefl/include/types.hrl").
+-include_lib("hocon/include/hoconsc.hrl").
-export([api_spec/0, fields/1, paths/0, schema/1, namespace/0]).
-export([api_key/2, api_key_by_name/2]).
@@ -36,14 +37,14 @@ schema("/api_key") ->
#{
'operationId' => api_key,
get => #{
- description => "Return api_key list",
+ description => ?DESC(api_key_list),
tags => ?TAGS,
responses => #{
200 => delete([api_secret], fields(app))
}
},
post => #{
- description => "Create new api_key",
+ description => ?DESC(create_new_api_key),
tags => ?TAGS,
'requestBody' => delete([created_at, api_key, api_secret], fields(app)),
responses => #{
@@ -56,7 +57,7 @@ schema("/api_key/:name") ->
#{
'operationId' => api_key_by_name,
get => #{
- description => "Return the specific api_key",
+ description => ?DESC(get_api_key),
tags => ?TAGS,
parameters => [hoconsc:ref(name)],
responses => #{
@@ -65,7 +66,7 @@ schema("/api_key/:name") ->
}
},
put => #{
- description => "Update the specific api_key",
+ description => ?DESC(update_api_key),
tags => ?TAGS,
parameters => [hoconsc:ref(name)],
'requestBody' => delete([created_at, api_key, api_secret, name], fields(app)),
@@ -75,7 +76,7 @@ schema("/api_key/:name") ->
}
},
delete => #{
- description => "Delete the specific api_key",
+ description => ?DESC(delete_api_key),
tags => ?TAGS,
parameters => [hoconsc:ref(name)],
responses => #{
diff --git a/apps/emqx_management/src/emqx_mgmt_api_clients.erl b/apps/emqx_management/src/emqx_mgmt_api_clients.erl
index 681c851bf..27dc8c492 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_clients.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_clients.erl
@@ -20,6 +20,7 @@
-include_lib("typerefl/include/types.hrl").
-include_lib("emqx/include/emqx.hrl").
+-include_lib("hocon/include/hoconsc.hrl").
-include_lib("emqx/include/logger.hrl").
@@ -101,7 +102,7 @@ schema("/clients") ->
#{
'operationId' => clients,
get => #{
- description => <<"List clients">>,
+ description => ?DESC(list_clients),
tags => ?TAGS,
parameters => [
hoconsc:ref(emqx_dashboard_swagger, page),
@@ -214,7 +215,7 @@ schema("/clients/:clientid") ->
#{
'operationId' => client,
get => #{
- description => <<"Get clients info by client ID">>,
+ description => ?DESC(clients_info_from_id),
tags => ?TAGS,
parameters => [{clientid, hoconsc:mk(binary(), #{in => path})}],
responses => #{
@@ -225,7 +226,7 @@ schema("/clients/:clientid") ->
}
},
delete => #{
- description => <<"Kick out client by client ID">>,
+ description => ?DESC(kick_client_id),
tags => ?TAGS,
parameters => [
{clientid, hoconsc:mk(binary(), #{in => path})}
@@ -242,7 +243,7 @@ schema("/clients/:clientid/authorization/cache") ->
#{
'operationId' => authz_cache,
get => #{
- description => <<"Get client authz cache in the cluster.">>,
+ description => ?DESC(get_authz_cache),
tags => ?TAGS,
parameters => [{clientid, hoconsc:mk(binary(), #{in => path})}],
responses => #{
@@ -253,7 +254,7 @@ schema("/clients/:clientid/authorization/cache") ->
}
},
delete => #{
- description => <<"Clean client authz cache in the cluster.">>,
+ description => ?DESC(clean_authz_cache),
tags => ?TAGS,
parameters => [{clientid, hoconsc:mk(binary(), #{in => path})}],
responses => #{
@@ -268,7 +269,7 @@ schema("/clients/:clientid/subscriptions") ->
#{
'operationId' => subscriptions,
get => #{
- description => <<"Get client subscriptions">>,
+ description => ?DESC(get_client_subs),
tags => ?TAGS,
parameters => [{clientid, hoconsc:mk(binary(), #{in => path})}],
responses => #{
@@ -285,7 +286,7 @@ schema("/clients/:clientid/subscribe") ->
#{
'operationId' => subscribe,
post => #{
- description => <<"Subscribe">>,
+ description => ?DESC(subscribe),
tags => ?TAGS,
parameters => [{clientid, hoconsc:mk(binary(), #{in => path})}],
'requestBody' => hoconsc:mk(hoconsc:ref(?MODULE, subscribe)),
@@ -301,7 +302,7 @@ schema("/clients/:clientid/subscribe/bulk") ->
#{
'operationId' => subscribe_batch,
post => #{
- description => <<"Subscribe">>,
+ description => ?DESC(subscribe_g),
tags => ?TAGS,
parameters => [{clientid, hoconsc:mk(binary(), #{in => path})}],
'requestBody' => hoconsc:mk(hoconsc:array(hoconsc:ref(?MODULE, subscribe))),
@@ -317,7 +318,7 @@ schema("/clients/:clientid/unsubscribe") ->
#{
'operationId' => unsubscribe,
post => #{
- description => <<"Unsubscribe">>,
+ description => ?DESC(unsubscribe),
tags => ?TAGS,
parameters => [{clientid, hoconsc:mk(binary(), #{in => path})}],
'requestBody' => hoconsc:mk(hoconsc:ref(?MODULE, unsubscribe)),
@@ -333,7 +334,7 @@ schema("/clients/:clientid/unsubscribe/bulk") ->
#{
'operationId' => unsubscribe_batch,
post => #{
- description => <<"Unsubscribe">>,
+ description => ?DESC(unsubscribe_g),
tags => ?TAGS,
parameters => [{clientid, hoconsc:mk(binary(), #{in => path})}],
'requestBody' => hoconsc:mk(hoconsc:array(hoconsc:ref(?MODULE, unsubscribe))),
@@ -349,7 +350,7 @@ schema("/clients/:clientid/keepalive") ->
#{
'operationId' => set_keepalive,
put => #{
- description => <<"Set the online client keepalive by seconds">>,
+ description => ?DESC(set_keepalive_seconds),
tags => ?TAGS,
parameters => [{clientid, hoconsc:mk(binary(), #{in => path})}],
'requestBody' => hoconsc:mk(hoconsc:ref(?MODULE, keepalive)),
diff --git a/apps/emqx_management/src/emqx_mgmt_api_cluster.erl b/apps/emqx_management/src/emqx_mgmt_api_cluster.erl
index e74b6c362..ba185e369 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_cluster.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_cluster.erl
@@ -39,7 +39,7 @@ schema("/cluster") ->
#{
'operationId' => cluster_info,
get => #{
- description => "Get cluster info",
+ desc => ?DESC(get_cluster_info),
tags => [<<"Cluster">>],
responses => #{
200 => [
@@ -54,7 +54,7 @@ schema("/cluster/:node/invite") ->
#{
'operationId' => invite_node,
put => #{
- description => "Invite node to cluster",
+ desc => ?DESC(invite_node),
tags => [<<"Cluster">>],
parameters => [hoconsc:ref(node)],
responses => #{
@@ -67,7 +67,7 @@ schema("/cluster/:node/force_leave") ->
#{
'operationId' => force_leave,
delete => #{
- description => "Force leave node from cluster",
+ desc => ?DESC(force_remove_node),
tags => [<<"Cluster">>],
parameters => [hoconsc:ref(node)],
responses => #{
diff --git a/apps/emqx_management/src/emqx_mgmt_api_configs.erl b/apps/emqx_management/src/emqx_mgmt_api_configs.erl
index 1d691c536..14fb07497 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_configs.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_configs.erl
@@ -67,8 +67,7 @@ schema("/configs") ->
'operationId' => configs,
get => #{
tags => ?TAGS,
- description =>
- <<"Get all the configurations of the specified node, including hot and non-hot updatable items.">>,
+ description => ?DESC(get_conf_node),
parameters => [
{node,
hoconsc:mk(
@@ -77,8 +76,7 @@ schema("/configs") ->
in => query,
required => false,
example => <<"emqx@127.0.0.1">>,
- desc =>
- <<"Node's name: If you do not fill in the fields, this node will be used by default.">>
+ description => ?DESC(node_name)
}
)}
],
@@ -95,12 +93,7 @@ schema("/configs_reset/:rootname") ->
'operationId' => config_reset,
post => #{
tags => ?TAGS,
- description =>
- <<
- "Reset the config entry specified by the query string parameter `conf_path`.
"
- "- For a config entry that has default value, this resets it to the default value;\n"
- "- For a config entry that has no default value, an error 400 will be returned"
- >>,
+ description => ?DESC(rest_conf_query),
%% We only return "200" rather than the new configs that has been changed, as
%% the schema of the changed configs is depends on the request parameter
%% `conf_path`, it cannot be defined here.
@@ -134,12 +127,12 @@ schema("/configs/global_zone") ->
'operationId' => global_zone_configs,
get => #{
tags => ?TAGS,
- description => <<"Get the global zone configs">>,
+ description => ?DESC(get_global_zone_configs),
responses => #{200 => Schema}
},
put => #{
tags => ?TAGS,
- description => <<"Update globbal zone configs">>,
+ description => ?DESC(update_globar_zone_configs),
'requestBody' => Schema,
responses => #{
200 => Schema,
@@ -153,7 +146,7 @@ schema("/configs/limiter") ->
'operationId' => limiter,
get => #{
tags => ?TAGS,
- description => <<"Get the node-level limiter configs">>,
+ description => ?DESC(get_node_level_limiter_congigs),
responses => #{
200 => hoconsc:mk(hoconsc:ref(emqx_limiter_schema, limiter)),
404 => emqx_dashboard_swagger:error_codes(['NOT_FOUND'], <<"config not found">>)
@@ -161,7 +154,7 @@ schema("/configs/limiter") ->
},
put => #{
tags => ?TAGS,
- description => <<"Update the node-level limiter configs">>,
+ description => ?DESC(update_node_level_limiter_congigs),
'requestBody' => hoconsc:mk(hoconsc:ref(emqx_limiter_schema, limiter)),
responses => #{
200 => hoconsc:mk(hoconsc:ref(emqx_limiter_schema, limiter)),
@@ -172,15 +165,22 @@ schema("/configs/limiter") ->
};
schema(Path) ->
{RootKey, {_Root, Schema}} = find_schema(Path),
+ GetDesc = iolist_to_binary([
+ <<"Get the sub-configurations under *">>,
+ RootKey,
+ <<"*">>
+ ]),
+ PutDesc = iolist_to_binary([
+ <<"Update the sub-configurations under *">>,
+ RootKey,
+ <<"*">>
+ ]),
#{
'operationId' => config,
get => #{
tags => ?TAGS,
- description => iolist_to_binary([
- <<"Get the sub-configurations under *">>,
- RootKey,
- <<"*">>
- ]),
+ desc => GetDesc,
+ summary => GetDesc,
responses => #{
200 => Schema,
404 => emqx_dashboard_swagger:error_codes(['NOT_FOUND'], <<"config not found">>)
@@ -188,11 +188,8 @@ schema(Path) ->
},
put => #{
tags => ?TAGS,
- description => iolist_to_binary([
- <<"Update the sub-configurations under *">>,
- RootKey,
- <<"*">>
- ]),
+ desc => PutDesc,
+ summary => PutDesc,
'requestBody' => Schema,
responses => #{
200 => Schema,
diff --git a/apps/emqx_management/src/emqx_mgmt_api_listeners.erl b/apps/emqx_management/src/emqx_mgmt_api_listeners.erl
index 152ccc599..1f1dda5f2 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_listeners.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_listeners.erl
@@ -66,7 +66,7 @@ schema("/listeners_status") ->
'operationId' => listener_type_status,
get => #{
tags => [<<"listeners">>],
- desc => <<"List all running node's listeners live status. group by listener type">>,
+ description => ?DESC(list_node_live_statuses),
responses => #{
200 =>
emqx_dashboard_swagger:schema_with_example(
@@ -81,7 +81,7 @@ schema("/listeners") ->
'operationId' => list_listeners,
get => #{
tags => [<<"listeners">>],
- desc => <<"List all running node's listeners for the specified type.">>,
+ description => ?DESC(list_listeners),
parameters => [
{type,
?HOCON(
@@ -99,7 +99,7 @@ schema("/listeners") ->
},
post => #{
tags => [<<"listeners">>],
- desc => <<"Create the specified listener on all nodes.">>,
+ description => ?DESC(create_on_all_nodes),
parameters => [],
'requestBody' => create_listener_schema(#{bind => true}),
responses => #{
@@ -113,7 +113,7 @@ schema("/listeners/:id") ->
'operationId' => crud_listeners_by_id,
get => #{
tags => [<<"listeners">>],
- desc => <<"List all running node's listeners for the specified id.">>,
+ description => ?DESC(list_by_id),
parameters => [?R_REF(listener_id)],
responses => #{
200 => listener_schema(#{bind => true}),
@@ -122,7 +122,7 @@ schema("/listeners/:id") ->
},
put => #{
tags => [<<"listeners">>],
- desc => <<"Update the specified listener on all nodes.">>,
+ description => ?DESC(update_lisener),
parameters => [?R_REF(listener_id)],
'requestBody' => listener_schema(#{bind => false}),
responses => #{
@@ -133,7 +133,7 @@ schema("/listeners/:id") ->
},
post => #{
tags => [<<"listeners">>],
- desc => <<"Create the specified listener on all nodes.">>,
+ description => ?DESC(create_on_all_nodes),
parameters => [?R_REF(listener_id)],
'requestBody' => listener_schema(#{bind => true}),
responses => #{
@@ -144,7 +144,7 @@ schema("/listeners/:id") ->
},
delete => #{
tags => [<<"listeners">>],
- desc => <<"Delete the specified listener on all nodes.">>,
+ description => ?DESC(delete_on_all_nodes),
parameters => [?R_REF(listener_id)],
responses => #{
204 => <<"Listener deleted">>,
@@ -157,7 +157,7 @@ schema("/listeners/:id/start") ->
'operationId' => start_listeners_by_id,
post => #{
tags => [<<"listeners">>],
- desc => <<"Start the listener on all nodes.">>,
+ description => ?DESC(start_on_all_nodes),
parameters => [
?R_REF(listener_id)
],
@@ -172,7 +172,7 @@ schema("/listeners/:id/stop") ->
'operationId' => stop_listeners_by_id,
post => #{
tags => [<<"listeners">>],
- desc => <<"Stop the listener on all nodes.">>,
+ description => ?DESC(stop_on_all_nodes),
parameters => [
?R_REF(listener_id)
],
@@ -187,7 +187,7 @@ schema("/listeners/:id/restart") ->
'operationId' => restart_listeners_by_id,
post => #{
tags => [<<"listeners">>],
- desc => <<"Restart listeners on all nodes.">>,
+ description => ?DESC(restart_on_all_nodes),
parameters => [
?R_REF(listener_id)
],
diff --git a/apps/emqx_management/src/emqx_mgmt_api_metrics.erl b/apps/emqx_management/src/emqx_mgmt_api_metrics.erl
index 0fcc45d8e..7ad0777c7 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_metrics.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_metrics.erl
@@ -19,6 +19,7 @@
-behaviour(minirest_api).
-include_lib("typerefl/include/types.hrl").
+-include_lib("hocon/include/hocon_types.hrl").
-import(hoconsc, [mk/2, ref/2]).
@@ -73,7 +74,7 @@ schema("/metrics") ->
'operationId' => metrics,
get =>
#{
- description => <<"EMQX metrics">>,
+ description => ?DESC(emqx_metrics),
tags => [<<"Metrics">>],
parameters =>
[
diff --git a/apps/emqx_management/src/emqx_mgmt_api_nodes.erl b/apps/emqx_management/src/emqx_mgmt_api_nodes.erl
index ecf465f43..827fea44a 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_nodes.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_nodes.erl
@@ -18,6 +18,7 @@
-behaviour(minirest_api).
-include_lib("typerefl/include/types.hrl").
+-include_lib("hocon/include/hoconsc.hrl").
-import(hoconsc, [mk/2, ref/1, ref/2, enum/1, array/1]).
@@ -60,7 +61,7 @@ schema("/nodes") ->
'operationId' => nodes,
get =>
#{
- description => <<"List EMQX nodes">>,
+ description => ?DESC(list_nodes),
tags => [<<"Nodes">>],
responses =>
#{
@@ -76,7 +77,7 @@ schema("/nodes/:node") ->
'operationId' => node,
get =>
#{
- description => <<"Get node info">>,
+ description => ?DESC(get_node_info),
tags => [<<"Nodes">>],
parameters => [ref(node_name)],
responses =>
@@ -94,7 +95,7 @@ schema("/nodes/:node/metrics") ->
'operationId' => node_metrics,
get =>
#{
- description => <<"Get node metrics">>,
+ description => ?DESC(get_node_metrics),
tags => [<<"Nodes">>],
parameters => [ref(node_name)],
responses =>
@@ -112,7 +113,7 @@ schema("/nodes/:node/stats") ->
'operationId' => node_stats,
get =>
#{
- description => <<"Get node stats">>,
+ description => ?DESC(get_node_stats),
tags => [<<"Nodes">>],
parameters => [ref(node_name)],
responses =>
diff --git a/apps/emqx_management/src/emqx_mgmt_api_stats.erl b/apps/emqx_management/src/emqx_mgmt_api_stats.erl
index 5f4bbce65..b57565671 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_stats.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_stats.erl
@@ -18,6 +18,7 @@
-behaviour(minirest_api).
-include_lib("typerefl/include/types.hrl").
+-include_lib("hocon/include/hoconsc.hrl").
-import(
hoconsc,
@@ -49,7 +50,7 @@ schema("/stats") ->
'operationId' => list,
get =>
#{
- description => <<"EMQX stats">>,
+ description => ?DESC(emqx_stats),
tags => [<<"Metrics">>],
parameters => [ref(aggregate)],
responses =>
diff --git a/apps/emqx_management/src/emqx_mgmt_api_subscriptions.erl b/apps/emqx_management/src/emqx_mgmt_api_subscriptions.erl
index 1b69835f9..08a90e623 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_subscriptions.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_subscriptions.erl
@@ -21,6 +21,7 @@
-include_lib("typerefl/include/types.hrl").
-include_lib("emqx/include/emqx.hrl").
-include_lib("emqx/include/emqx_mqtt.hrl").
+-include_lib("hocon/include/hoconsc.hrl").
-export([
api_spec/0,
@@ -58,7 +59,7 @@ schema("/subscriptions") ->
#{
'operationId' => subscriptions,
get => #{
- description => <<"List subscriptions">>,
+ description => ?DESC(list_subs),
tags => [<<"Subscriptions">>],
parameters => parameters(),
responses => #{
diff --git a/apps/emqx_management/src/emqx_mgmt_api_topics.erl b/apps/emqx_management/src/emqx_mgmt_api_topics.erl
index 4100269e5..6b0e1f622 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_topics.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_topics.erl
@@ -18,6 +18,7 @@
-include_lib("emqx/include/emqx.hrl").
-include_lib("typerefl/include/types.hrl").
+-include_lib("hocon/include/hoconsc.hrl").
%% API
-behaviour(minirest_api).
@@ -51,7 +52,7 @@ schema("/topics") ->
#{
'operationId' => topics,
get => #{
- description => <<"Topics list">>,
+ description => ?DESC(topic_list),
tags => ?TAGS,
parameters => [
topic_param(query),
@@ -71,7 +72,7 @@ schema("/topics/:topic") ->
#{
'operationId' => topic,
get => #{
- description => <<"Lookup topic info by name">>,
+ description => ?DESC(topic_info_by_name),
tags => ?TAGS,
parameters => [topic_param(path)],
responses => #{
diff --git a/apps/emqx_management/src/emqx_mgmt_api_trace.erl b/apps/emqx_management/src/emqx_mgmt_api_trace.erl
index 25cc2734f..331c62681 100644
--- a/apps/emqx_management/src/emqx_mgmt_api_trace.erl
+++ b/apps/emqx_management/src/emqx_mgmt_api_trace.erl
@@ -21,6 +21,7 @@
-include_lib("typerefl/include/types.hrl").
-include_lib("emqx/include/logger.hrl").
-include_lib("snabbkaffe/include/snabbkaffe.hrl").
+-include_lib("hocon/include/hoconsc.hrl").
-export([
api_spec/0,
@@ -73,14 +74,14 @@ schema("/trace") ->
#{
'operationId' => trace,
get => #{
- description => "List all trace",
+ description => ?DESC(list_all),
tags => ?TAGS,
responses => #{
200 => hoconsc:array(hoconsc:ref(trace))
}
},
post => #{
- description => "Create new trace",
+ description => ?DESC(create_new),
tags => ?TAGS,
'requestBody' => delete([status, log_size], fields(trace)),
responses => #{
@@ -102,7 +103,7 @@ schema("/trace") ->
}
},
delete => #{
- description => "Clear all traces",
+ description => ?DESC(clear_all),
tags => ?TAGS,
responses => #{
204 => <<"No Content">>
@@ -113,7 +114,7 @@ schema("/trace/:name") ->
#{
'operationId' => delete_trace,
delete => #{
- description => "Delete specified trace",
+ description => ?DESC(delete_trace),
tags => ?TAGS,
parameters => [hoconsc:ref(name)],
responses => #{
@@ -126,7 +127,7 @@ schema("/trace/:name/stop") ->
#{
'operationId' => update_trace,
put => #{
- description => "Stop trace by name",
+ description => ?DESC(stop_trace),
tags => ?TAGS,
parameters => [hoconsc:ref(name)],
responses => #{
@@ -139,7 +140,7 @@ schema("/trace/:name/download") ->
#{
'operationId' => download_trace_log,
get => #{
- description => "Download trace log by name",
+ description => ?DESC(download_log_by_name),
tags => ?TAGS,
parameters => [hoconsc:ref(name), hoconsc:ref(node)],
responses => #{
@@ -161,7 +162,7 @@ schema("/trace/:name/log_detail") ->
#{
'operationId' => log_file_detail,
get => #{
- description => "get trace log file's metadata, such as size, last update time",
+ description => ?DESC(get_trace_file_metadata),
tags => ?TAGS,
parameters => [hoconsc:ref(name)],
responses => #{
@@ -174,7 +175,7 @@ schema("/trace/:name/log") ->
#{
'operationId' => stream_log_file,
get => #{
- description => "view trace log",
+ description => ?DESC(view_trace_log),
tags => ?TAGS,
parameters => [
hoconsc:ref(name),
@@ -204,9 +205,8 @@ schema("/trace/:name/log") ->
fields(log_file_detail) ->
fields(node) ++
[
- {size, hoconsc:mk(integer(), #{desc => "file size"})},
- {mtime,
- hoconsc:mk(integer(), #{desc => "the modification and last access times of a file"})}
+ {size, hoconsc:mk(integer(), #{description => ?DESC(file_size)})},
+ {mtime, hoconsc:mk(integer(), #{description => ?DESC(modification_date)})}
];
fields(trace) ->
[
@@ -214,7 +214,7 @@ fields(trace) ->
hoconsc:mk(
binary(),
#{
- desc => "Unique and format by [a-zA-Z0-9-_]",
+ description => ?DESC(format),
validator => fun ?MODULE:validate_name/1,
required => true,
example => <<"EMQX-TRACE-1">>
@@ -224,7 +224,7 @@ fields(trace) ->
hoconsc:mk(
hoconsc:enum([clientid, topic, ip_address]),
#{
- desc => "" "Filter type" "",
+ description => ?DESC(filter_type),
required => true,
example => <<"clientid">>
}
@@ -233,7 +233,7 @@ fields(trace) ->
hoconsc:mk(
binary(),
#{
- desc => "" "support mqtt wildcard topic." "",
+ description => ?DESC(support_wildcard),
required => false,
example => <<"/dev/#">>
}
@@ -242,7 +242,7 @@ fields(trace) ->
hoconsc:mk(
binary(),
#{
- desc => "" "mqtt clientid." "",
+ description => ?DESC(mqtt_clientid),
required => false,
example => <<"dev-001">>
}
@@ -252,7 +252,7 @@ fields(trace) ->
hoconsc:mk(
binary(),
#{
- desc => "client ip address",
+ description => ?DESC(client_ip_addess),
required => false,
example => <<"127.0.0.1">>
}
@@ -261,7 +261,7 @@ fields(trace) ->
hoconsc:mk(
hoconsc:enum([running, stopped, waiting]),
#{
- desc => "trace status",
+ description => ?DESC(trace_status),
required => false,
example => running
}
@@ -283,7 +283,7 @@ fields(trace) ->
hoconsc:mk(
emqx_datetime:epoch_second(),
#{
- desc => "rfc3339 timestamp or epoch second",
+ description => ?DESC(time_format),
required => false,
example => <<"2021-11-04T18:17:38+08:00">>
}
@@ -292,7 +292,7 @@ fields(trace) ->
hoconsc:mk(
emqx_datetime:epoch_second(),
#{
- desc => "rfc3339 timestamp or epoch second",
+ description => ?DESC(time_format),
required => false,
example => <<"2021-11-05T18:17:38+08:00">>
}
@@ -301,7 +301,7 @@ fields(trace) ->
hoconsc:mk(
hoconsc:array(map()),
#{
- desc => "trace log size",
+ description => ?DESC(trace_log_size),
example => [#{<<"node">> => <<"emqx@127.0.0.1">>, <<"size">> => 1024}],
required => false
}
@@ -326,7 +326,7 @@ fields(node) ->
hoconsc:mk(
binary(),
#{
- desc => "Node name",
+ description => ?DESC(node_name),
in => query,
required => false,
example => "emqx@127.0.0.1"
@@ -341,7 +341,7 @@ fields(bytes) ->
%% across different OS
range(0, ?MAX_SINT32),
#{
- desc => "Maximum number of bytes to send in response",
+ description => ?DESC(max_response_bytes),
in => query,
required => false,
default => 1000,
@@ -356,7 +356,7 @@ fields(position) ->
hoconsc:mk(
integer(),
#{
- desc => "Offset from the current trace position.",
+ description => ?DESC(current_trace_offset),
in => query,
required => false,
default => 0
diff --git a/apps/emqx_prometheus/src/emqx_prometheus.app.src b/apps/emqx_prometheus/src/emqx_prometheus.app.src
index f94b22d81..a0d4dee04 100644
--- a/apps/emqx_prometheus/src/emqx_prometheus.app.src
+++ b/apps/emqx_prometheus/src/emqx_prometheus.app.src
@@ -2,7 +2,7 @@
{application, emqx_prometheus, [
{description, "Prometheus for EMQX"},
% strict semver, bump manually!
- {vsn, "5.0.10"},
+ {vsn, "5.0.11"},
{modules, []},
{registered, [emqx_prometheus_sup]},
{applications, [kernel, stdlib, prometheus, emqx, emqx_management]},
diff --git a/apps/emqx_prometheus/src/emqx_prometheus_api.erl b/apps/emqx_prometheus/src/emqx_prometheus_api.erl
index d3bfc0224..6fb57483d 100644
--- a/apps/emqx_prometheus/src/emqx_prometheus_api.erl
+++ b/apps/emqx_prometheus/src/emqx_prometheus_api.erl
@@ -19,6 +19,7 @@
-behaviour(minirest_api).
-include("emqx_prometheus.hrl").
+-include_lib("hocon/include/hoconsc.hrl").
-import(hoconsc, [ref/2]).
@@ -50,14 +51,14 @@ schema("/prometheus") ->
'operationId' => prometheus,
get =>
#{
- description => <<"Get Prometheus config info">>,
+ description => ?DESC(get_prom_conf_info),
tags => ?TAGS,
responses =>
#{200 => prometheus_config_schema()}
},
put =>
#{
- description => <<"Update Prometheus config">>,
+ description => ?DESC(update_prom_conf_info),
tags => ?TAGS,
'requestBody' => prometheus_config_schema(),
responses =>
@@ -69,7 +70,7 @@ schema("/prometheus/stats") ->
'operationId' => stats,
get =>
#{
- description => <<"Get Prometheus Data">>,
+ description => ?DESC(get_prom_data),
tags => ?TAGS,
security => [],
responses =>
diff --git a/changes/ce/fix-10724.en.md b/changes/ce/fix-10724.en.md
new file mode 100644
index 000000000..a38a9e842
--- /dev/null
+++ b/changes/ce/fix-10724.en.md
@@ -0,0 +1 @@
+A summary has been added for all endpoints in the HTTP API documentation (accessible at "http://emqx_host_name:18083/api-docs").
diff --git a/rel/i18n/emqx_authn_api.hocon b/rel/i18n/emqx_authn_api.hocon
index 07f9c6c3e..90240c4f4 100644
--- a/rel/i18n/emqx_authn_api.hocon
+++ b/rel/i18n/emqx_authn_api.hocon
@@ -2,42 +2,68 @@ emqx_authn_api {
authentication_get.desc:
"""List authenticators for global authentication."""
+authentication_get.label:
+"""List authenticators"""
authentication_id_delete.desc:
"""Delete authenticator from global authentication chain."""
+authentication_id_delete.label:
+"""Delete authenticator"""
authentication_id_get.desc:
"""Get authenticator from global authentication chain."""
+authentication_id_get.label:
+"""Get authenticator"""
authentication_id_position_put.desc:
"""Move authenticator in global authentication chain."""
+authentication_id_position_put.label:
+"""Move authenticator"""
authentication_id_put.desc:
"""Update authenticator from global authentication chain."""
+authentication_id_put.label:
+"""Update authenticator"""
authentication_id_status_get.desc:
"""Get authenticator status from global authentication chain."""
+authentication_id_status_get.label:
+"""Get authenticator status"""
authentication_id_users_get.desc:
"""List users in authenticator in global authentication chain."""
+authentication_id_users_get.label:
+"""List users in authenticator"""
authentication_id_users_post.desc:
"""Create users for authenticator in global authentication chain."""
+authentication_id_users_post.label:
+"""Create users for authenticator"""
authentication_id_users_user_id_delete.desc:
"""Delete user in authenticator in global authentication chain."""
+authentication_id_users_user_id_delete.label:
+"""Delete user in authenticator"""
authentication_id_users_user_id_get.desc:
"""Get user from authenticator in global authentication chain."""
+authentication_id_users_user_id_get.label:
+"""Get user from authenticator"""
authentication_id_users_user_id_put.desc:
"""Update user in authenticator in global authentication chain."""
+authentication_id_users_user_id_put.label:
+"""Update user in authenticator"""
authentication_post.desc:
"""Create authenticator for global authentication."""
+authentication_post.label:
+"""Create authenticator"""
is_superuser.desc:
"""Is superuser"""
+is_superuser.label:
+"""Is superuser"""
like_user_id.desc:
"""Fuzzy search user_id (username or clientid)."""
@@ -47,50 +73,82 @@ like_user_id.label:
listeners_listener_id_authentication_get.desc:
"""List authenticators for listener authentication."""
+listeners_listener_id_authentication_get.label:
+"""List authenticators for listener"""
listeners_listener_id_authentication_id_delete.desc:
"""Delete authenticator from listener authentication chain."""
+listeners_listener_id_authentication_id_delete.label:
+"""Delete authenticator from listener"""
listeners_listener_id_authentication_id_get.desc:
"""Get authenticator from listener authentication chain."""
+listeners_listener_id_authentication_id_get.label:
+"""Get authenticator from listener"""
listeners_listener_id_authentication_id_position_put.desc:
"""Move authenticator in listener authentication chain."""
+listeners_listener_id_authentication_id_position_put.label:
+"""Move authenticator in listener"""
listeners_listener_id_authentication_id_put.desc:
"""Update authenticator from listener authentication chain."""
+listeners_listener_id_authentication_id_put.label:
+"""Update authenticator from listener"""
listeners_listener_id_authentication_id_status_get.desc:
"""Get authenticator status from listener authentication chain."""
+listeners_listener_id_authentication_id_status_get.label:
+"""Get authenticator status from listener"""
listeners_listener_id_authentication_id_users_get.desc:
"""List users in authenticator in listener authentication chain."""
+listeners_listener_id_authentication_id_users_get.label:
+"""List users in authenticator in listener"""
listeners_listener_id_authentication_id_users_post.desc:
"""Create users for authenticator in listener authentication chain."""
+listeners_listener_id_authentication_id_users_post.label:
+"""Create users for authenticator in listener"""
listeners_listener_id_authentication_id_users_user_id_delete.desc:
"""Delete user in authenticator in listener authentication chain."""
+listeners_listener_id_authentication_id_users_user_id_delete.label:
+"""Delete user in authenticator in listener"""
listeners_listener_id_authentication_id_users_user_id_get.desc:
"""Get user from authenticator in listener authentication chain."""
+listeners_listener_id_authentication_id_users_user_id_get.label:
+"""Get user from authenticator in listener"""
listeners_listener_id_authentication_id_users_user_id_put.desc:
"""Update user in authenticator in listener authentication chain."""
+listeners_listener_id_authentication_id_users_user_id_put.label:
+"""Update user in authenticator in listener"""
listeners_listener_id_authentication_post.desc:
"""Create authenticator for listener authentication."""
+listeners_listener_id_authentication_post.label:
+"""Create authenticator for listener"""
param_auth_id.desc:
"""Authenticator ID."""
+param_auth_id.label:
+"""Authenticator ID"""
param_listener_id.desc:
"""Listener ID."""
+param_listener_id.label:
+"""Listener ID"""
param_position.desc:
"""Position of authenticator in chain. Possible values are 'front', 'rear', 'before:{other_authenticator}', 'after:{other_authenticator}'."""
+param_position.label:
+"""Position of authenticator"""
param_user_id.desc:
"""User ID."""
+param_user_id.label:
+"""User ID"""
}
diff --git a/rel/i18n/emqx_authn_user_import_api.hocon b/rel/i18n/emqx_authn_user_import_api.hocon
index f8fb1757c..3a97823df 100644
--- a/rel/i18n/emqx_authn_user_import_api.hocon
+++ b/rel/i18n/emqx_authn_user_import_api.hocon
@@ -2,8 +2,12 @@ emqx_authn_user_import_api {
authentication_id_import_users_post.desc:
"""Import users into authenticator in global authentication chain."""
+authentication_id_import_users_post.label:
+"""Global import users into authenticator"""
listeners_listener_id_authentication_id_import_users_post.desc:
"""Import users into authenticator in listener authentication chain."""
+listeners_listener_id_authentication_id_import_users_post.label:
+"""Import users into authenticator in listener"""
}
diff --git a/rel/i18n/emqx_authz_api_cache.hocon b/rel/i18n/emqx_authz_api_cache.hocon
index 0789c1e71..f3e933d4b 100644
--- a/rel/i18n/emqx_authz_api_cache.hocon
+++ b/rel/i18n/emqx_authz_api_cache.hocon
@@ -2,5 +2,7 @@ emqx_authz_api_cache {
authorization_cache_delete.desc:
"""Clean all authorization cache in the cluster."""
+authorization_cache_delete.label:
+"""Clean authorization cache in cluster"""
}
diff --git a/rel/i18n/emqx_authz_api_mnesia.hocon b/rel/i18n/emqx_authz_api_mnesia.hocon
index 4cfed2970..d0021c6a5 100644
--- a/rel/i18n/emqx_authz_api_mnesia.hocon
+++ b/rel/i18n/emqx_authz_api_mnesia.hocon
@@ -2,13 +2,11 @@ emqx_authz_api_mnesia {
action.desc:
"""Authorized action (pub/sub/all)"""
-
action.label:
"""action"""
clientid.desc:
"""ClientID"""
-
clientid.label:
"""clientid"""
@@ -26,62 +24,87 @@ fuzzy_username.label:
permission.desc:
"""Permission"""
-
permission.label:
"""permission"""
rules_all_delete.desc:
"""Delete rules for 'all'"""
+rules_all_delete.label:
+"""Delete rules for 'all'"""
rules_all_get.desc:
"""Show the list of rules for 'all'"""
+rules_all_get.label:
+"""Show rules for 'all'"""
rules_all_post.desc:
"""Create/Update the list of rules for 'all'."""
+rules_all_post.label:
+"""Update rules for 'all'"""
rules_delete.desc:
"""Delete all rules for all 'users', 'clients' and 'all'"""
+rules_delete.label:
+"""Delete all rules"""
topic.desc:
"""Rule on specific topic"""
-
topic.label:
"""topic"""
user_clientid_delete.desc:
"""Delete rule for 'clientid'"""
+user_clientid_delete.label:
+"""Delete rule for 'clientid'"""
user_clientid_get.desc:
"""Get rule for 'clientid'"""
+user_clientid_get.label:
+"""Get rule for 'clientid'"""
user_clientid_put.desc:
"""Set rule for 'clientid'"""
+user_clientid_put.label:
+"""Set rule for 'clientid'"""
user_username_delete.desc:
"""Delete rule for 'username'"""
+user_username_delete.label:
+"""Delete rule for 'username'"""
user_username_get.desc:
"""Get rule for 'username'"""
+user_username_get.label:
+"""Get rule for 'username'"""
user_username_put.desc:
"""Set rule for 'username'"""
+user_username_put.label:
+"""Set rule for 'username'"""
username.desc:
"""Username"""
-
username.label:
"""username"""
users_clientid_get.desc:
"""Show the list of rules for clients"""
+users_clientid_get.label:
+"""Show rules for clients"""
users_clientid_post.desc:
"""Add new rule for 'clientid'"""
+users_clientid_post.label:
+"""Add rule for 'clientid'"""
users_username_get.desc:
"""Show the list of rules for users"""
+users_username_get.label:
+"""Show rules for users"""
users_username_post.desc:
"""Add new rule for 'username'"""
+users_username_post.label:
+"""Add rule for 'username'"""
}
diff --git a/rel/i18n/emqx_authz_api_sources.hocon b/rel/i18n/emqx_authz_api_sources.hocon
index 5d2dda69e..1257d9eb8 100644
--- a/rel/i18n/emqx_authz_api_sources.hocon
+++ b/rel/i18n/emqx_authz_api_sources.hocon
@@ -2,46 +2,56 @@ emqx_authz_api_sources {
authorization_sources_get.desc:
"""List all authorization sources"""
+authorization_sources_get.label:
+"""List all authorization sources"""
authorization_sources_post.desc:
"""Add a new source"""
+authorization_sources_post.label:
+"""Add a new source"""
authorization_sources_type_delete.desc:
"""Delete source"""
+authorization_sources_type_delete.label:
+"""Delete source"""
authorization_sources_type_get.desc:
"""Get a authorization source"""
+authorization_sources_type_get.label:
+"""Get a authorization source"""
authorization_sources_type_move_post.desc:
"""Change the exection order of sources"""
+authorization_sources_type_move_post.label:
+"""Change order of sources"""
authorization_sources_type_put.desc:
"""Update source"""
+authorization_sources_type_put.label:
+"""Update source"""
authorization_sources_type_status_get.desc:
"""Get a authorization source"""
+authorization_sources_type_status_get.label:
+"""Get a authorization source"""
source.desc:
"""Authorization source"""
-
source.label:
"""source"""
source_config.desc:
"""Source config"""
-
source_config.label:
"""source_config"""
source_type.desc:
"""Authorization type"""
-
source_type.label:
"""source_type"""
sources.desc:
"""Authorization sources"""
-
sources.label:
"""sources"""
diff --git a/rel/i18n/emqx_auto_subscribe_api.hocon b/rel/i18n/emqx_auto_subscribe_api.hocon
index df8e87e1a..518878a50 100644
--- a/rel/i18n/emqx_auto_subscribe_api.hocon
+++ b/rel/i18n/emqx_auto_subscribe_api.hocon
@@ -2,11 +2,17 @@ emqx_auto_subscribe_api {
list_auto_subscribe_api.desc:
"""Get auto subscribe topic list"""
+list_auto_subscribe_api.label:
+"""Get auto subscribe topics"""
update_auto_subscribe_api.desc:
"""Update auto subscribe topic list"""
+update_auto_subscribe_api.label:
+"""Update auto subscribe topics"""
update_auto_subscribe_api_response409.desc:
"""Auto Subscribe topics max limit"""
+update_auto_subscribe_api_response409.label:
+"""Auto Subscribe topics max limit"""
}
diff --git a/rel/i18n/emqx_dashboard_api.hocon b/rel/i18n/emqx_dashboard_api.hocon
index 3e5bb6239..01fc6eb16 100644
--- a/rel/i18n/emqx_dashboard_api.hocon
+++ b/rel/i18n/emqx_dashboard_api.hocon
@@ -2,24 +2,36 @@ emqx_dashboard_api {
change_pwd_api.desc:
"""Change dashboard user password"""
+change_pwd_api.label:
+"""Change dashboard user password"""
create_user_api.desc:
"""Create dashboard user"""
+create_user_api.label:
+"""Create dashboard user"""
create_user_api_success.desc:
"""Create dashboard user success"""
+create_user_api_success.label:
+"""Create dashboard user success"""
delete_user_api.desc:
"""Delete dashboard user"""
+delete_user_api.label:
+"""Delete dashboard user"""
license.desc:
"""EMQX License. opensource or enterprise"""
list_users_api.desc:
"""Dashboard list users"""
+list_users_api.label:
+"""Dashboard list users"""
login_api.desc:
"""Get Dashboard Auth Token."""
+login_api.label:
+"""Get Dashboard Auth Token."""
login_failed401.desc:
"""Login failed. Bad username or password"""
@@ -32,6 +44,8 @@ login_success.desc:
logout_api.desc:
"""Dashboard user logout"""
+logout_api.label:
+"""Dashboard user logout"""
new_pwd.desc:
"""New password"""
@@ -47,6 +61,8 @@ token.desc:
update_user_api.desc:
"""Update dashboard user description"""
+update_user_api.label:
+"""Update dashboard user description"""
update_user_api200.desc:
"""Update dashboard user success"""
diff --git a/rel/i18n/emqx_dashboard_error_code_api.hocon b/rel/i18n/emqx_dashboard_error_code_api.hocon
new file mode 100644
index 000000000..835f200ab
--- /dev/null
+++ b/rel/i18n/emqx_dashboard_error_code_api.hocon
@@ -0,0 +1,13 @@
+emqx_dashboard_error_code_api {
+
+error_codes.desc:
+"""API Error Codes"""
+error_codes.label:
+"""API Error Codes"""
+
+error_codes_u.desc:
+"""API Error Codes"""
+error_codes_u.label:
+"""API Error Codes"""
+
+}
diff --git a/rel/i18n/emqx_dashboard_monitor_api.hocon b/rel/i18n/emqx_dashboard_monitor_api.hocon
new file mode 100644
index 000000000..1d45c45ae
--- /dev/null
+++ b/rel/i18n/emqx_dashboard_monitor_api.hocon
@@ -0,0 +1,23 @@
+emqx_dashboard_monitor_api {
+
+list_monitor.desc:
+"""List monitor data."""
+list_monitor.label:
+"""List monitor data."""
+
+list_monitor_node.desc:
+"""List the monitor data on the node."""
+list_monitor_node.label:
+"""List the monitor data on the node."""
+
+current_status.desc:
+"""Current status. Gauge and rate."""
+current_status.label:
+"""Current status. Gauge and rate."""
+
+current_status_node.desc:
+"""Node current status. Gauge and rate."""
+current_status_node.label:
+"""Node current status. Gauge and rate."""
+
+}
diff --git a/rel/i18n/emqx_delayed_api.hocon b/rel/i18n/emqx_delayed_api.hocon
index 62e0fd775..b891c618c 100644
--- a/rel/i18n/emqx_delayed_api.hocon
+++ b/rel/i18n/emqx_delayed_api.hocon
@@ -2,71 +2,117 @@ emqx_delayed_api {
bad_msgid_format.desc:
"""Bad Message ID format"""
+bad_msgid_format.label:
+"""Bad Message ID format"""
count.desc:
"""Count of delayed messages"""
+count.label:
+"""Count of delayed messages"""
delayed_interval.desc:
"""Delayed interval(second)"""
+delayed_interval.label:
+"""Delayed interval"""
delayed_remaining.desc:
"""Delayed remaining(second)"""
+delayed_remaining.label:
+"""Delayed remaining"""
delete_api.desc:
"""Delete delayed message"""
+delete_api.label:
+"""Delete delayed message"""
expected_at.desc:
"""Expect publish time, in RFC 3339 format"""
+expected_at.label:
+"""Expect publish time"""
from_clientid.desc:
"""From ClientID"""
+from_clientid.label:
+"""From ClientID"""
from_username.desc:
"""From Username"""
+from_username.label:
+"""From Username"""
get_message_api.desc:
"""View delayed message"""
+get_message_api.label:
+"""View delayed message"""
illegality_limit.desc:
"""Max limit illegality"""
+illegality_limit.label:
+"""Max limit illegality"""
list_api.desc:
"""List delayed messages"""
+list_api.label:
+"""List delayed messages"""
msgid.desc:
"""Delayed Message ID"""
+msgid.label:
+"""Delayed Message ID"""
msgid_not_found.desc:
"""Message ID not found"""
+msgid_not_found.label:
+"""Message ID not found"""
node.desc:
"""The node where message from"""
+node.label:
+"""Node where message from"""
payload.desc:
"""Payload, base64 encoded. Payload will be set to 'PAYLOAD_TO_LARGE' if its length is larger than 2048 bytes"""
+payload.label:
+"""Payload"""
publish_at.desc:
"""Clinet publish message time, in RFC 3339 format"""
+publish_at.label:
+"""Client publish message time"""
qos.desc:
"""QoS"""
+qos.label:
+"""QoS"""
topic.desc:
"""Topic"""
+topic.label:
+"""Topic"""
update_api.desc:
"""Enable or disable delayed, set max delayed messages"""
+update_api.label:
+"""Enable or disable delayed"""
update_success.desc:
"""Enable or disable delayed successfully"""
+update_success.label:
+"""Enable or disable delayed successfully"""
view_limit.desc:
"""Page limit"""
+view_limit.label:
+"""Page limit"""
view_page.desc:
"""View page"""
+view_page.label:
+"""View page"""
view_status_api.desc:
"""Get delayed status"""
+view_status_api.label:
+"""Get delayed status"""
}
diff --git a/rel/i18n/emqx_exhook_api.hocon b/rel/i18n/emqx_exhook_api.hocon
index 9cb7177c1..dabf89364 100644
--- a/rel/i18n/emqx_exhook_api.hocon
+++ b/rel/i18n/emqx_exhook_api.hocon
@@ -2,70 +2,109 @@ emqx_exhook_api {
add_server.desc:
"""Add a server"""
+add_server.label:
+"""Add a server"""
delete_server.desc:
"""Delete the server"""
+delete_server.label:
+"""Delete the server"""
get_detail.desc:
"""Get the detail information of Exhook server"""
+get_detail.label:
+"""Get server details"""
get_hooks.desc:
"""Get the hooks information of server"""
+get_hooks.label:
+"""Get server hooks information"""
hook_metrics.desc:
"""Metrics information of this hook in the current node"""
+hook_metrics.label:
+"""Hook metrics"""
hook_name.desc:
"""The hook's name"""
+hook_name.label:
+"""Hook name"""
hook_params.desc:
"""The parameters used when the hook is registered"""
+hook_params.label:
+"""Hook parameters"""
list_all_servers.desc:
"""List all servers"""
+list_all_servers.label:
+"""List servers"""
metric_failed.desc:
"""The number of times the hook execution failed"""
+metric_failed.label:
+"""Failed executions count"""
metric_max_rate.desc:
"""Maximum call rate of hooks"""
+metric_max_rate.label:
+"""Max hook call rate"""
metric_rate.desc:
"""The call rate of hooks"""
+metric_rate.label:
+"""Hook call rate"""
metric_succeed.desc:
"""The number of times the hooks execution successful"""
+metric_succeed.label:
+"""Successful executions count"""
metrics.desc:
"""Metrics information"""
+metrics.label:
+"""Metrics information"""
move_api.desc:
"""Move the server.
NOTE: The position should be "front | rear | before:{name} | after:{name}"""
-
move_api.label:
"""Change order of execution for registered Exhook server"""
move_position.desc:
"""The target position to be moved"""
+move_position.label:
+"""Target position"""
node.desc:
"""Node name"""
+node.label:
+"""Node name"""
node_hook_metrics.desc:
"""Metrics information of this hook in all nodes"""
+node_hook_metrics.label:
+"""Node-wise hook metrics"""
node_metrics.desc:
"""Metrics information of this server in all nodes"""
+node_metrics.label:
+"""Node-wise server metrics"""
node_status.desc:
"""status of this server in all nodes"""
+node_status.label:
+"""Node-wise server status"""
server_metrics.desc:
"""Metrics information of this server in the current node"""
+server_metrics.label:
+"""Server metrics"""
server_name.desc:
"""The Exhook server name"""
+server_name.label:
+"""Server name"""
status.desc:
"""The status of Exhook server.
@@ -74,8 +113,12 @@ connecting: connection failed, reconnecting
disconnected: failed to connect and didn't reconnect
disabled: this server is disabled
error: failed to view the status of this server"""
+status.label:
+"""Server status"""
update_server.desc:
"""Update the server"""
+update_server.label:
+"""Update the server"""
}
diff --git a/rel/i18n/emqx_mgmt_api_alarms.hocon b/rel/i18n/emqx_mgmt_api_alarms.hocon
index 0327fffcd..b9c289114 100644
--- a/rel/i18n/emqx_mgmt_api_alarms.hocon
+++ b/rel/i18n/emqx_mgmt_api_alarms.hocon
@@ -8,6 +8,8 @@ deactivate_at.desc:
delete_alarms_api.desc:
"""Remove all historical alarms."""
+delete_alarms_api.label:
+"""Remove all historical alarms."""
delete_alarms_api_response204.desc:
"""Historical alarms have been cleared successfully."""
@@ -26,6 +28,8 @@ The default is false."""
list_alarms_api.desc:
"""List currently activated alarms or historical alarms, determined by query parameters."""
+list_alarms_api.label:
+"""List alarms"""
message.desc:
"""Alarm message, which describes the alarm content in a human-readable format."""
diff --git a/rel/i18n/emqx_mgmt_api_api_keys.hocon b/rel/i18n/emqx_mgmt_api_api_keys.hocon
new file mode 100644
index 000000000..85d5c4ec7
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_api_keys.hocon
@@ -0,0 +1,33 @@
+emqx_mgmt_api_api_keys {
+
+api_key_list.desc:
+"""Return api_key list"""
+api_key_list.label:
+"""Return api_key list"""
+
+create_new_api_key.desc:
+"""Create new api_key"""
+create_new_api_key.label:
+"""Create new api_key"""
+
+get_api_key.desc:
+"""Return the specific api_key"""
+get_api_key.label:
+"""Return the specific api_key"""
+
+update_api_key.desc:
+"""Update the specific api_key"""
+update_api_key.label:
+"""Update the specific api_key"""
+
+delete_api_key.desc:
+"""Delete the specific api_key"""
+delete_api_key.label:
+"""Delete the specific api_key"""
+
+format.desc:
+"""Unique and format by [a-zA-Z0-9-_]"""
+format.label:
+"""Unique and format by [a-zA-Z0-9-_]"""
+
+}
diff --git a/rel/i18n/emqx_mgmt_api_banned.hocon b/rel/i18n/emqx_mgmt_api_banned.hocon
index 1a9700641..0a5439402 100644
--- a/rel/i18n/emqx_mgmt_api_banned.hocon
+++ b/rel/i18n/emqx_mgmt_api_banned.hocon
@@ -20,18 +20,24 @@ by.label:
create_banned_api.desc:
"""Add a client ID, username or IP address to the blacklist."""
+create_banned_api.label:
+"""Ban client ID, username or IP address"""
create_banned_api_response400.desc:
"""Bad request, possibly due to wrong parameters or the existence of a banned object."""
delete_banned_api.desc:
"""Remove a client ID, username or IP address from the blacklist."""
+delete_banned_api.label:
+"""Unban a client ID, username or IP address"""
delete_banned_api_response404.desc:
"""The banned object was not found in the blacklist."""
list_banned_api.desc:
"""List all currently banned client IDs, usernames and IP addresses."""
+list_banned_api.label:
+"""List all banned client IDs"""
reason.desc:
"""Ban reason, record the reason why the current object was banned."""
diff --git a/rel/i18n/emqx_mgmt_api_clients.hocon b/rel/i18n/emqx_mgmt_api_clients.hocon
new file mode 100644
index 000000000..d82642b1e
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_clients.hocon
@@ -0,0 +1,58 @@
+emqx_mgmt_api_clients {
+
+list_clients.desc:
+"""List clients"""
+list_clients.label:
+"""List clients"""
+
+clients_info_from_id.desc:
+"""Get clients info by client ID"""
+clients_info_from_id.label:
+"""Get clients info by client ID"""
+
+kick_client_id.desc:
+"""Kick out client by client ID"""
+kick_client_id.label:
+"""Kick out client by client ID"""
+
+get_authz_cache.desc:
+"""Get client authz cache in the cluster."""
+get_authz_cache.label:
+"""Get client authz cache in the cluster."""
+
+clean_authz_cache.desc:
+"""Clean client authz cache in the cluster."""
+clean_authz_cache.label:
+"""Clean client authz cache in the cluster."""
+
+get_client_subs.desc:
+"""Get client subscriptions"""
+get_client_subs.label:
+"""Get client subscriptions"""
+
+subscribe.desc:
+"""Subscribe"""
+subscribe.label:
+"""Subscribe"""
+
+subscribe_g.desc:
+"""Subscribe bulk"""
+subscribe_g.label:
+"""Subscribe bulk"""
+
+unsubscribe.desc:
+"""Unsubscribe"""
+unsubscribe.label:
+"""Unsubscribe"""
+
+unsubscribe_g.desc:
+"""Unsubscribe bulk"""
+unsubscribe_g.label:
+"""Unsubscribe bulk"""
+
+set_keepalive_seconds.desc:
+"""Set the online client keepalive by seconds"""
+set_keepalive_seconds.label:
+"""Set the online client keepalive by seconds"""
+
+}
diff --git a/rel/i18n/emqx_mgmt_api_cluster.hocon b/rel/i18n/emqx_mgmt_api_cluster.hocon
new file mode 100644
index 000000000..f8b6de1a4
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_cluster.hocon
@@ -0,0 +1,18 @@
+emqx_mgmt_api_cluster {
+
+get_cluster_info.desc:
+"""Get cluster info"""
+get_cluster_info.label:
+"""Get cluster info"""
+
+invite_node.desc:
+"""Invite node to cluster"""
+invite_node.label:
+"""Invite node to cluster"""
+
+force_remove_node.desc:
+"""Force leave node from cluster"""
+force_remove_node.label:
+"""Force leave node from cluster"""
+
+}
diff --git a/rel/i18n/emqx_mgmt_api_configs.hocon b/rel/i18n/emqx_mgmt_api_configs.hocon
new file mode 100644
index 000000000..42bda7899
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_configs.hocon
@@ -0,0 +1,40 @@
+emqx_mgmt_api_configs {
+
+get_conf_node.desc:
+"""Get all the configurations of the specified node, including hot and non-hot updatable items."""
+get_conf_node.label:
+"""Get all the configurations for node."""
+
+node_name.desc:
+"""Node's name: If you do not fill in the fields, this node will be used by default."""
+node_name.label:
+"""Node's name."""
+
+rest_conf_query.desc:
+"""Reset the config entry specified by the query string parameter `conf_path`.
+- For a config entry that has default value, this resets it to the default value;
+- For a config entry that has no default value, an error 400 will be returned"""
+rest_conf_query.label:
+"""Reset the config entry with query"""
+
+get_global_zone_configs.desc:
+"""Get the global zone configs"""
+get_global_zone_configs.label:
+"""Get the global zone configs"""
+
+update_globar_zone_configs.desc:
+"""Update globbal zone configs"""
+update_globar_zone_configs.label:
+"""Update globbal zone configs"""
+
+get_node_level_limiter_congigs.desc:
+"""Get the node-level limiter configs"""
+get_node_level_limiter_congigs.label:
+"""Get the node-level limiter configs"""
+
+update_node_level_limiter_congigs.desc:
+"""Update the node-level limiter configs"""
+update_node_level_limiter_congigs.label:
+"""Update the node-level limiter configs"""
+
+}
diff --git a/rel/i18n/emqx_mgmt_api_listeners.hocon b/rel/i18n/emqx_mgmt_api_listeners.hocon
new file mode 100644
index 000000000..b45f55977
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_listeners.hocon
@@ -0,0 +1,59 @@
+emqx_mgmt_api_listeners {
+
+list_node_live_statuses.desc:
+"""List all running node's listeners live status. group by listener type"""
+list_node_live_statuses.label:
+"""List all running node's listeners live status. group by listener type"""
+
+list_listeners.desc:
+"""List all running node's listeners for the specified type."""
+list_listeners.label:
+"""List all running node's listeners for the specified type."""
+
+listener_type.desc:
+"""Listener type"""
+listener_type.label:
+"""Listener type"""
+
+create_on_all_nodes.desc:
+"""Create the specified listener on all nodes."""
+create_on_all_nodes.label:
+"""Create the specified listener on all nodes."""
+
+list_by_id.desc:
+"""List all running node's listeners for the specified id."""
+list_by_id.label:
+"""List all running node's listeners for the specified id."""
+
+update_lisener.desc:
+"""Update the specified listener on all nodes."""
+update_lisener.label:
+"""Update the specified listener on all nodes."""
+
+create_on_all_nodes_2.desc:
+"""Create the specified listener on all nodes."""
+create_on_all_nodes_2.label:
+"""Create the specified listener on all nodes."""
+
+delete_on_all_nodes.desc:
+"""Delete the specified listener on all nodes."""
+delete_on_all_nodes.label:
+"""Delete the specified listener on all nodes."""
+
+start_on_all_nodes.desc:
+"""Start the listener on all nodes."""
+start_on_all_nodes.label:
+"""Start the listener on all nodes."""
+
+stop_on_all_nodes.desc:
+"""Stop the listener on all nodes."""
+stop_on_all_nodes.label:
+"""Stop the listener on all nodes."""
+
+restart_on_all_nodes.desc:
+"""Restart listeners on all nodes."""
+restart_on_all_nodes.label:
+"""Restart listeners on all nodes."""
+
+
+}
diff --git a/rel/i18n/emqx_mgmt_api_metrics.hocon b/rel/i18n/emqx_mgmt_api_metrics.hocon
new file mode 100644
index 000000000..de1e7f20c
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_metrics.hocon
@@ -0,0 +1,8 @@
+emqx_mgmt_api_metrics {
+
+emqx_metrics.desc:
+"""EMQX metrics"""
+emqx_metrics.label:
+"""EMQX metrics"""
+
+}
diff --git a/rel/i18n/emqx_mgmt_api_nodes.hocon b/rel/i18n/emqx_mgmt_api_nodes.hocon
new file mode 100644
index 000000000..e875b0dcc
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_nodes.hocon
@@ -0,0 +1,23 @@
+emqx_mgmt_api_nodes {
+
+list_nodes.desc:
+"""List EMQX nodes"""
+list_nodes.label:
+"""List EMQX nodes"""
+
+get_node_info.desc:
+"""Get node info"""
+get_node_info.label:
+"""Get node info"""
+
+get_node_metrics.desc:
+"""Get node metrics"""
+get_node_metrics.label:
+"""Get node metrics"""
+
+get_node_stats.desc:
+"""Get node stats"""
+get_node_stats.label:
+"""Get node stats"""
+
+}
diff --git a/rel/i18n/emqx_mgmt_api_stats.hocon b/rel/i18n/emqx_mgmt_api_stats.hocon
new file mode 100644
index 000000000..d3c57d6e8
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_stats.hocon
@@ -0,0 +1,8 @@
+emqx_mgmt_api_stats {
+
+emqx_stats.desc:
+"""EMQX stats"""
+emqx_stats.label:
+"""EMQX stats"""
+
+}
diff --git a/rel/i18n/emqx_mgmt_api_subscriptions.hocon b/rel/i18n/emqx_mgmt_api_subscriptions.hocon
new file mode 100644
index 000000000..a0c8a7a01
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_subscriptions.hocon
@@ -0,0 +1,8 @@
+emqx_mgmt_api_subscriptions {
+
+list_subs.desc:
+"""List subscriptions"""
+list_subs.label:
+"""List subscriptions"""
+
+}
diff --git a/rel/i18n/emqx_mgmt_api_topics.hocon b/rel/i18n/emqx_mgmt_api_topics.hocon
new file mode 100644
index 000000000..5b65af95a
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_topics.hocon
@@ -0,0 +1,13 @@
+emqx_mgmt_api_topics {
+
+topic_list.desc:
+"""Topics list"""
+topic_list.label:
+"""Topics list"""
+
+topic_info_by_name.desc:
+"""Lookup topic info by name"""
+topic_info_by_name.label:
+"""Lookup topic info by name"""
+
+}
diff --git a/rel/i18n/emqx_mgmt_api_trace.hocon b/rel/i18n/emqx_mgmt_api_trace.hocon
new file mode 100644
index 000000000..4af68a460
--- /dev/null
+++ b/rel/i18n/emqx_mgmt_api_trace.hocon
@@ -0,0 +1,118 @@
+emqx_mgmt_api_trace {
+
+list_all.desc:
+"""List all trace"""
+list_all.label:
+"""List all trace"""
+
+create_new.desc:
+"""Create new trace"""
+create_new.label:
+"""Create new trace"""
+
+clear_all.desc:
+"""Clear all traces"""
+clear_all.label:
+"""Clear all traces"""
+
+delete_trace.desc:
+"""Delete specified trace"""
+delete_trace.label:
+"""Delete specified trace"""
+
+stop_trace.desc:
+"""Stop trace by name"""
+stop_trace.label:
+"""Stop trace by name"""
+
+download_log_by_name.desc:
+"""Download trace log by name"""
+download_log_by_name.label:
+"""Download trace log by name"""
+
+trace_zip_file.desc:
+"""A trace zip file"""
+trace_zip_file.label:
+"""A trace zip file"""
+
+get_trace_file_metadata.desc:
+"""get trace log file's metadata, such as size, last update time"""
+get_trace_file_metadata.label:
+"""get trace log file's metadata"""
+
+view_trace_log.desc:
+"""view trace log"""
+view_trace_log.label:
+"""view trace log"""
+
+file_size.desc:
+"""file size"""
+file_size.label:
+"""file size"""
+
+modification_date.desc:
+"""the modification and last access times of a file"""
+modification_date.label:
+"""last access time"""
+
+format.desc:
+"""Unique and format by [a-zA-Z0-9-_]"""
+format.label:
+"""Unique and format by [a-zA-Z0-9-_]"""
+
+filter_type.desc:
+"""Filter type"""
+filter_type.label:
+"""Filter type"""
+
+support_wildcard.desc:
+"""support mqtt wildcard topic."""
+support_wildcard.label:
+"""support mqtt wildcard topic"""
+
+mqtt_clientid.desc:
+"""mqtt clientid."""
+mqtt_clientid.label:
+"""mqtt clientid"""
+
+client_ip_addess.desc:
+"""client ip address"""
+client_ip_addess.label:
+"""client ip address"""
+
+trace_status.desc:
+"""trace status"""
+trace_status.label:
+"""trace status"""
+
+time_format.desc:
+"""rfc3339 timestamp or epoch second"""
+time_format.label:
+"""rfc3339 timestamp or epoch second"""
+
+time_format_g.desc:
+"""rfc3339 timestamp or epoch second"""
+time_format_g.label:
+"""rfc3339 timestamp or epoch second"""
+
+trace_log_size.desc:
+"""trace log size"""
+trace_log_size.label:
+"""trace log size"""
+
+node_name.desc:
+"""Node name"""
+node_name.label:
+"""Node name"""
+
+max_response_bytes.desc:
+"""Maximum number of bytes to send in response"""
+max_response_bytes.label:
+"""Maximum response bytes"""
+
+current_trace_offset.desc:
+"""Offset from the current trace position."""
+current_trace_offset.label:
+"""Offset from the current trace position."""
+
+}
diff --git a/rel/i18n/emqx_prometheus_api.hocon b/rel/i18n/emqx_prometheus_api.hocon
new file mode 100644
index 000000000..c468ccc2f
--- /dev/null
+++ b/rel/i18n/emqx_prometheus_api.hocon
@@ -0,0 +1,18 @@
+emqx_prometheus_api {
+
+get_prom_conf_info.desc:
+"""Get Prometheus config info"""
+get_prom_conf_info.label:
+"""Get Prometheus config info"""
+
+update_prom_conf_info.desc:
+"""Update Prometheus config"""
+update_prom_conf_info.label:
+"""Update Prometheus config"""
+
+get_prom_data.desc:
+"""Get Prometheus Data"""
+get_prom_data.label:
+"""Get Prometheus Data"""
+
+}
diff --git a/rel/i18n/emqx_retainer_api.hocon b/rel/i18n/emqx_retainer_api.hocon
index 5c7084778..cdb49f8d0 100644
--- a/rel/i18n/emqx_retainer_api.hocon
+++ b/rel/i18n/emqx_retainer_api.hocon
@@ -8,6 +8,8 @@ config_not_found.desc:
delete_matching_api.desc:
"""Delete matching messages."""
+delete_matching_api.label:
+"""Delete matching messages"""
from_clientid.desc:
"""The clientid of publisher."""
@@ -17,12 +19,18 @@ from_username.desc:
get_config_api.desc:
"""View config"""
+get_config_api.label:
+"""View config"""
list_retained_api.desc:
"""List retained messages."""
+list_retained_api.label:
+"""List retained messages."""
lookup_api.desc:
"""Lookup a message by a topic without wildcards."""
+lookup_api.label:
+"""Lookup a message"""
message_detail.desc:
"""Details of the message."""
@@ -59,5 +67,7 @@ update_config_success.desc:
update_retainer_api.desc:
"""Update retainer config."""
+update_retainer_api.label:
+"""Update retainer config"""
}
diff --git a/rel/i18n/emqx_rewrite_api.hocon b/rel/i18n/emqx_rewrite_api.hocon
index 7e090e590..1b56cf24d 100644
--- a/rel/i18n/emqx_rewrite_api.hocon
+++ b/rel/i18n/emqx_rewrite_api.hocon
@@ -2,11 +2,17 @@ emqx_rewrite_api {
list_topic_rewrite_api.desc:
"""List all rewrite rules"""
+list_topic_rewrite_api.label:
+"""List all rewrite rules"""
update_topic_rewrite_api.desc:
"""Update all rewrite rules"""
+update_topic_rewrite_api.label:
+"""Update all rewrite rules"""
update_topic_rewrite_api_response413.desc:
"""Rules count exceed max limit"""
+update_topic_rewrite_api_response413.label:
+"""Rules count exceed limit"""
}
diff --git a/rel/i18n/emqx_slow_subs_api.hocon b/rel/i18n/emqx_slow_subs_api.hocon
index edf473487..f1a31784b 100644
--- a/rel/i18n/emqx_slow_subs_api.hocon
+++ b/rel/i18n/emqx_slow_subs_api.hocon
@@ -2,15 +2,21 @@ emqx_slow_subs_api {
clear_records_api.desc:
"""Clear current data and re count slow topic"""
+clear_records_api.label:
+"""Clear current data and re count slow topic"""
clientid.desc:
"""Message clientid"""
get_records_api.desc:
"""View slow topics statistics record data"""
+get_records_api.label:
+"""View slow topics statistics record data"""
get_setting_api.desc:
"""View slow subs settings"""
+get_setting_api.label:
+"""View slow subs settings"""
last_update_time.desc:
"""The timestamp of last update"""
@@ -26,5 +32,7 @@ topic.desc:
update_setting_api.desc:
"""Update slow subs settings"""
+update_setting_api.label:
+"""Update slow subs settings"""
}
diff --git a/rel/i18n/emqx_telemetry_api.hocon b/rel/i18n/emqx_telemetry_api.hocon
index 5c61b8d3c..4651cc8a0 100644
--- a/rel/i18n/emqx_telemetry_api.hocon
+++ b/rel/i18n/emqx_telemetry_api.hocon
@@ -14,9 +14,13 @@ enable.desc:
get_telemetry_data_api.desc:
"""Get telemetry data"""
+get_telemetry_data_api.label:
+"""Get telemetry data"""
get_telemetry_status_api.desc:
"""Get telemetry status"""
+get_telemetry_status_api.label:
+"""Get telemetry status"""
license.desc:
"""Get license information"""
@@ -47,6 +51,8 @@ up_time.desc:
update_telemetry_status_api.desc:
"""Enable or disable telemetry"""
+update_telemetry_status_api.label:
+"""Enable or disable telemetry"""
uuid.desc:
"""Get UUID"""
diff --git a/rel/i18n/emqx_topic_metrics_api.hocon b/rel/i18n/emqx_topic_metrics_api.hocon
index 94c58f0cd..bffd831c3 100644
--- a/rel/i18n/emqx_topic_metrics_api.hocon
+++ b/rel/i18n/emqx_topic_metrics_api.hocon
@@ -2,104 +2,172 @@ emqx_topic_metrics_api {
message_qos1_in_rate.desc:
"""QoS1 in messages rate"""
+message_qos1_in_rate.label:
+"""QoS1 in messages rate"""
message_out_count.desc:
"""Out messages count"""
+message_out_count.label:
+"""Out messages count"""
message_qos2_out_rate.desc:
"""QoS2 out messages rate"""
+message_qos2_out_rate.label:
+"""QoS2 out messages rate"""
message_qos0_in_rate.desc:
"""QoS0 in messages rate"""
+message_qos0_in_rate.label:
+"""QoS0 in messages rate"""
get_topic_metrics_api.desc:
"""List topic metrics"""
+get_topic_metrics_api.label:
+"""List topic metrics"""
reset_time.desc:
"""Reset time. In rfc3339. Nullable if never reset"""
+reset_time.label:
+"""Reset time"""
topic_metrics_api_response400.desc:
"""Bad request. Already exists or bad topic name"""
+topic_metrics_api_response400.label:
+"""Bad request"""
reset_topic_desc.desc:
"""Topic Name. If this parameter is not present,all created topic metrics will be reset."""
+reset_topic_desc.label:
+"""Topic Name"""
topic_metrics_api_response409.desc:
"""Conflict. Topic metrics exceeded max limit 512"""
+topic_metrics_api_response409.label:
+"""Conflict"""
post_topic_metrics_api.desc:
"""Create topic metrics"""
+post_topic_metrics_api.label:
+"""Create topic metrics"""
message_dropped_rate.desc:
"""Dropped messages rate"""
+message_dropped_rate.label:
+"""Dropped messages rate"""
message_qos2_in_rate.desc:
"""QoS2 in messages rate"""
+message_qos2_in_rate.label:
+"""QoS2 in messages rate"""
message_in_rate.desc:
"""In messages rate"""
+message_in_rate.label:
+"""In messages rate"""
message_qos0_out_rate.desc:
"""QoS0 out messages rate"""
+message_qos0_out_rate.label:
+"""QoS0 out messages rate"""
message_qos2_in_count.desc:
"""QoS2 in messages count"""
+message_qos2_in_count.label:
+"""QoS2 in messages count"""
message_dropped_count.desc:
"""Dropped messages count"""
+message_dropped_count.label:
+"""Dropped messages count"""
topic_metrics_api_response404.desc:
"""Not Found. Topic metrics not found"""
+topic_metrics_api_response404.label:
+"""Not Found"""
topic_in_path.desc:
"""Topic string. Notice: Topic string in url path must be encoded"""
+topic_in_path.label:
+"""Topic string"""
action.desc:
"""Action. Only support reset"""
+action.label:
+"""Action"""
message_qos0_in_count.desc:
"""QoS0 in messages count"""
+message_qos0_in_count.label:
+"""QoS0 in messages count"""
message_qos1_out_rate.desc:
"""QoS1 out messages rate"""
+message_qos1_out_rate.label:
+"""QoS1 out messages rate"""
topic.desc:
"""Topic"""
+topic.label:
+"""Topic"""
reset_topic_metrics_api.desc:
"""Reset telemetry status"""
+reset_topic_metrics_api.label:
+"""Reset telemetry status"""
create_time.desc:
"""Create time"""
+create_time.label:
+"""Create time"""
metrics.desc:
"""Metrics"""
+metrics.label:
+"""Metrics"""
message_qos1_out_count.desc:
"""QoS1 out messages count"""
+message_qos1_out_count.label:
+"""QoS1 out messages count"""
gat_topic_metrics_data_api.desc:
"""Get topic metrics"""
+gat_topic_metrics_data_api.label:
+"""Get topic metrics"""
message_qos1_in_count.desc:
"""QoS1 in messages count"""
+message_qos1_in_count.label:
+"""QoS1 in messages count"""
delete_topic_metrics_data_api.desc:
"""Delete topic metrics"""
+delete_topic_metrics_data_api.label:
+"""Delete topic metrics"""
message_qos0_out_count.desc:
"""QoS0 out messages count"""
+message_qos0_out_count.label:
+"""QoS0 out messages count"""
topic_in_body.desc:
"""Raw topic string"""
+topic_in_body.label:
+"""Raw topic string"""
message_in_count.desc:
"""In messages count"""
+message_in_count.label:
+"""In messages count"""
message_qos2_out_count.desc:
"""QoS2 out messages count"""
+message_qos2_out_count.label:
+"""QoS2 out messages count"""
message_out_rate.desc:
"""Out messages rate"""
+message_out_rate.label:
+"""Out messages rate"""
}