|
@@ -21,6 +21,7 @@
|
|
|
-include("emqx_exhook.hrl").
|
|
-include("emqx_exhook.hrl").
|
|
|
-include_lib("typerefl/include/types.hrl").
|
|
-include_lib("typerefl/include/types.hrl").
|
|
|
-include_lib("emqx/include/logger.hrl").
|
|
-include_lib("emqx/include/logger.hrl").
|
|
|
|
|
+-include_lib("hocon/include/hoconsc.hrl").
|
|
|
|
|
|
|
|
-export([api_spec/0, paths/0, schema/1, fields/1, namespace/0]).
|
|
-export([api_spec/0, paths/0, schema/1, fields/1, namespace/0]).
|
|
|
|
|
|
|
@@ -56,12 +57,12 @@ schema(("/exhooks")) ->
|
|
|
'operationId' => exhooks,
|
|
'operationId' => exhooks,
|
|
|
get => #{
|
|
get => #{
|
|
|
tags => ?TAGS,
|
|
tags => ?TAGS,
|
|
|
- desc => <<"List all servers">>,
|
|
|
|
|
|
|
+ desc => ?DESC(list_all_servers),
|
|
|
responses => #{200 => mk(array(ref(detail_server_info)), #{})}
|
|
responses => #{200 => mk(array(ref(detail_server_info)), #{})}
|
|
|
},
|
|
},
|
|
|
post => #{
|
|
post => #{
|
|
|
tags => ?TAGS,
|
|
tags => ?TAGS,
|
|
|
- desc => <<"Add a servers">>,
|
|
|
|
|
|
|
+ desc => ?DESC(add_server),
|
|
|
'requestBody' => server_conf_schema(),
|
|
'requestBody' => server_conf_schema(),
|
|
|
responses => #{
|
|
responses => #{
|
|
|
201 => mk(ref(detail_server_info), #{}),
|
|
201 => mk(ref(detail_server_info), #{}),
|
|
@@ -74,7 +75,7 @@ schema("/exhooks/:name") ->
|
|
|
'operationId' => action_with_name,
|
|
'operationId' => action_with_name,
|
|
|
get => #{
|
|
get => #{
|
|
|
tags => ?TAGS,
|
|
tags => ?TAGS,
|
|
|
- desc => <<"Get the detail information of server">>,
|
|
|
|
|
|
|
+ desc => ?DESC(get_detail),
|
|
|
parameters => params_server_name_in_path(),
|
|
parameters => params_server_name_in_path(),
|
|
|
responses => #{
|
|
responses => #{
|
|
|
200 => mk(ref(detail_server_info), #{}),
|
|
200 => mk(ref(detail_server_info), #{}),
|
|
@@ -83,7 +84,7 @@ schema("/exhooks/:name") ->
|
|
|
},
|
|
},
|
|
|
put => #{
|
|
put => #{
|
|
|
tags => ?TAGS,
|
|
tags => ?TAGS,
|
|
|
- desc => <<"Update the server">>,
|
|
|
|
|
|
|
+ desc => ?DESC(update_server),
|
|
|
parameters => params_server_name_in_path(),
|
|
parameters => params_server_name_in_path(),
|
|
|
'requestBody' => server_conf_schema(),
|
|
'requestBody' => server_conf_schema(),
|
|
|
responses => #{
|
|
responses => #{
|
|
@@ -94,7 +95,7 @@ schema("/exhooks/:name") ->
|
|
|
},
|
|
},
|
|
|
delete => #{
|
|
delete => #{
|
|
|
tags => ?TAGS,
|
|
tags => ?TAGS,
|
|
|
- desc => <<"Delete the server">>,
|
|
|
|
|
|
|
+ desc => ?DESC(delete_server),
|
|
|
parameters => params_server_name_in_path(),
|
|
parameters => params_server_name_in_path(),
|
|
|
responses => #{
|
|
responses => #{
|
|
|
204 => <<>>,
|
|
204 => <<>>,
|
|
@@ -107,7 +108,7 @@ schema("/exhooks/:name/hooks") ->
|
|
|
'operationId' => server_hooks,
|
|
'operationId' => server_hooks,
|
|
|
get => #{
|
|
get => #{
|
|
|
tags => ?TAGS,
|
|
tags => ?TAGS,
|
|
|
- desc => <<"Get the hooks information of server">>,
|
|
|
|
|
|
|
+ desc => ?DESC(get_hooks),
|
|
|
parameters => params_server_name_in_path(),
|
|
parameters => params_server_name_in_path(),
|
|
|
responses => #{
|
|
responses => #{
|
|
|
200 => mk(array(ref(list_hook_info)), #{}),
|
|
200 => mk(array(ref(list_hook_info)), #{}),
|
|
@@ -120,9 +121,7 @@ schema("/exhooks/:name/move") ->
|
|
|
'operationId' => move,
|
|
'operationId' => move,
|
|
|
post => #{
|
|
post => #{
|
|
|
tags => ?TAGS,
|
|
tags => ?TAGS,
|
|
|
- desc =>
|
|
|
|
|
- <<"Move the server.\n",
|
|
|
|
|
- "NOTE: The position should be \"front|rear|before:{name}|after:{name}\"\n">>,
|
|
|
|
|
|
|
+ desc => ?DESC(move_api),
|
|
|
parameters => params_server_name_in_path(),
|
|
parameters => params_server_name_in_path(),
|
|
|
'requestBody' => emqx_dashboard_swagger:schema_with_examples(
|
|
'requestBody' => emqx_dashboard_swagger:schema_with_examples(
|
|
|
ref(move_req),
|
|
ref(move_req),
|
|
@@ -140,53 +139,47 @@ fields(move_req) ->
|
|
|
[
|
|
[
|
|
|
{position,
|
|
{position,
|
|
|
mk(string(), #{
|
|
mk(string(), #{
|
|
|
- desc => <<"The target position to be moved.">>,
|
|
|
|
|
|
|
+ required => true,
|
|
|
|
|
+ desc => ?DESC(move_position),
|
|
|
example => <<"front">>
|
|
example => <<"front">>
|
|
|
})}
|
|
})}
|
|
|
];
|
|
];
|
|
|
fields(detail_server_info) ->
|
|
fields(detail_server_info) ->
|
|
|
[
|
|
[
|
|
|
- {metrics, mk(ref(metrics), #{})},
|
|
|
|
|
- {node_metrics, mk(array(ref(node_metrics)), #{})},
|
|
|
|
|
- {node_status, mk(array(ref(node_status)), #{})},
|
|
|
|
|
|
|
+ {metrics, mk(ref(metrics), #{desc => ?DESC(server_metrics)})},
|
|
|
|
|
+ {node_metrics, mk(array(ref(node_metrics)), #{desc => ?DESC(node_metrics)})},
|
|
|
|
|
+ {node_status, mk(array(ref(node_status)), #{desc => ?DESC(node_status)})},
|
|
|
{hooks, mk(array(ref(hook_info)), #{})}
|
|
{hooks, mk(array(ref(hook_info)), #{})}
|
|
|
] ++ emqx_exhook_schema:server_config();
|
|
] ++ emqx_exhook_schema:server_config();
|
|
|
fields(list_hook_info) ->
|
|
fields(list_hook_info) ->
|
|
|
[
|
|
[
|
|
|
- {name, mk(binary(), #{desc => <<"The hook's name">>})},
|
|
|
|
|
- {params,
|
|
|
|
|
- mk(
|
|
|
|
|
- map(name, binary()),
|
|
|
|
|
- #{desc => <<"The parameters used when the hook is registered">>}
|
|
|
|
|
- )},
|
|
|
|
|
- {metrics, mk(ref(metrics), #{})},
|
|
|
|
|
- {node_metrics, mk(array(ref(node_metrics)), #{})}
|
|
|
|
|
|
|
+ {name, mk(binary(), #{desc => ?DESC(hook_name)})},
|
|
|
|
|
+ {params, mk(map(name, binary()), #{desc => ?DESC(hook_params)})},
|
|
|
|
|
+ {metrics, mk(ref(metrics), #{desc => ?DESC(hook_metrics)})},
|
|
|
|
|
+ {node_metrics, mk(array(ref(node_metrics)), #{desc => ?DESC(node_hook_metrics)})}
|
|
|
];
|
|
];
|
|
|
fields(node_metrics) ->
|
|
fields(node_metrics) ->
|
|
|
[
|
|
[
|
|
|
- {node, mk(string(), #{})},
|
|
|
|
|
- {metrics, mk(ref(metrics), #{})}
|
|
|
|
|
|
|
+ {node, mk(string(), #{desc => ?DESC(node)})},
|
|
|
|
|
+ {metrics, mk(ref(metrics), #{desc => ?DESC(metrics)})}
|
|
|
];
|
|
];
|
|
|
fields(node_status) ->
|
|
fields(node_status) ->
|
|
|
[
|
|
[
|
|
|
- {node, mk(string(), #{})},
|
|
|
|
|
- {status, mk(enum([connected, connecting, unconnected, disable, error]), #{})}
|
|
|
|
|
|
|
+ {node, mk(string(), #{desc => ?DESC(node)})},
|
|
|
|
|
+ {status,
|
|
|
|
|
+ mk(enum([connected, connecting, unconnected, disable, error]), #{desc => ?DESC(status)})}
|
|
|
];
|
|
];
|
|
|
fields(hook_info) ->
|
|
fields(hook_info) ->
|
|
|
[
|
|
[
|
|
|
- {name, mk(binary(), #{desc => <<"The hook's name">>})},
|
|
|
|
|
- {params,
|
|
|
|
|
- mk(
|
|
|
|
|
- map(name, binary()),
|
|
|
|
|
- #{desc => <<"The parameters used when the hook is registered">>}
|
|
|
|
|
- )}
|
|
|
|
|
|
|
+ {name, mk(binary(), #{desc => ?DESC(hook_name)})},
|
|
|
|
|
+ {params, mk(map(name, binary()), #{desc => ?DESC(hook_params)})}
|
|
|
];
|
|
];
|
|
|
fields(metrics) ->
|
|
fields(metrics) ->
|
|
|
[
|
|
[
|
|
|
- {succeed, mk(integer(), #{})},
|
|
|
|
|
- {failed, mk(integer(), #{})},
|
|
|
|
|
- {rate, mk(integer(), #{})},
|
|
|
|
|
- {max_rate, mk(integer(), #{})}
|
|
|
|
|
|
|
+ {succeed, mk(integer(), #{desc => ?DESC(metric_succeed)})},
|
|
|
|
|
+ {failed, mk(integer(), #{desc => ?DESC(metric_failed)})},
|
|
|
|
|
+ {rate, mk(integer(), #{desc => ?DESC(metric_rate)})},
|
|
|
|
|
+ {max_rate, mk(integer(), #{desc => ?DESC(metric_max_rate)})}
|
|
|
];
|
|
];
|
|
|
fields(server_config) ->
|
|
fields(server_config) ->
|
|
|
emqx_exhook_schema:server_config().
|
|
emqx_exhook_schema:server_config().
|
|
@@ -195,6 +188,7 @@ params_server_name_in_path() ->
|
|
|
[
|
|
[
|
|
|
{name,
|
|
{name,
|
|
|
mk(string(), #{
|
|
mk(string(), #{
|
|
|
|
|
+ desc => ?DESC(server_name),
|
|
|
in => path,
|
|
in => path,
|
|
|
required => true,
|
|
required => true,
|
|
|
example => <<"default">>
|
|
example => <<"default">>
|