docs: make sure there is a summary for all API endpoints

Many HTTP API endpoints did not have a summary when looking at the API
docs at "http://emqx_host_name:18083/api-docs". This has been fixed by
making sure there is a summary corresponding to all endpoints.

Fixes:
https://emqx.atlassian.net/browse/EMQX-9767
This commit is contained in:
Kjell Winblad 2023-05-16 18:25:25 +02:00
parent ba72695f04
commit ab8b8ccaad
48 changed files with 871 additions and 107 deletions

View File

@ -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]},

View File

@ -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,

View File

@ -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), #{}),

View File

@ -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]},

View File

@ -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 => #{

View File

@ -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)),

View File

@ -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 => #{

View File

@ -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`.<br/>"
"- 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,

View File

@ -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)
],

View File

@ -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 =>
[

View File

@ -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 =>

View File

@ -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 =>

View File

@ -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 => #{

View File

@ -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 => #{

View File

@ -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

View File

@ -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]},

View File

@ -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 =>

View File

@ -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").

View File

@ -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"""
}

View File

@ -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"""
}

View File

@ -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"""
}

View File

@ -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'"""
}

View File

@ -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"""

View File

@ -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"""
}

View File

@ -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"""

View File

@ -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"""
}

View File

@ -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."""
}

View File

@ -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"""
}

View File

@ -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.<br/>
@ -74,8 +113,12 @@ connecting: connection failed, reconnecting<br/>
disconnected: failed to connect and didn't reconnect<br/>
disabled: this server is disabled<br/>
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"""
}

View File

@ -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."""

View File

@ -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-_]"""
}

View File

@ -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."""

View File

@ -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"""
}

View File

@ -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"""
}

View File

@ -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`.<br/>
- 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"""
}

View File

@ -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."""
}

View File

@ -0,0 +1,8 @@
emqx_mgmt_api_metrics {
emqx_metrics.desc:
"""EMQX metrics"""
emqx_metrics.label:
"""EMQX metrics"""
}

View File

@ -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"""
}

View File

@ -0,0 +1,8 @@
emqx_mgmt_api_stats {
emqx_stats.desc:
"""EMQX stats"""
emqx_stats.label:
"""EMQX stats"""
}

View File

@ -0,0 +1,8 @@
emqx_mgmt_api_subscriptions {
list_subs.desc:
"""List subscriptions"""
list_subs.label:
"""List subscriptions"""
}

View File

@ -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"""
}

View File

@ -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."""
}

View File

@ -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"""
}

View File

@ -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"""
}

View File

@ -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"""
}

View File

@ -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"""
}

View File

@ -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"""

View File

@ -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"""
}