69 lines
2.0 KiB
Erlang
69 lines
2.0 KiB
Erlang
-module(emqx_bridge_mqtt_schema).
|
|
|
|
-include_lib("typerefl/include/types.hrl").
|
|
-include_lib("hocon/include/hoconsc.hrl").
|
|
|
|
-import(hoconsc, [mk/2]).
|
|
|
|
-export([roots/0, fields/1, desc/1]).
|
|
|
|
%%======================================================================================
|
|
%% Hocon Schema Definitions
|
|
roots() -> [].
|
|
|
|
fields("ingress") ->
|
|
[emqx_bridge_schema:direction_field(ingress, emqx_connector_mqtt_schema:ingress_desc())] ++
|
|
emqx_bridge_schema:common_bridge_fields(mqtt_connector_ref()) ++
|
|
proplists:delete(hookpoint, emqx_connector_mqtt_schema:fields("ingress"));
|
|
fields("egress") ->
|
|
[emqx_bridge_schema:direction_field(egress, emqx_connector_mqtt_schema:egress_desc())] ++
|
|
emqx_bridge_schema:common_bridge_fields(mqtt_connector_ref()) ++
|
|
emqx_connector_mqtt_schema:fields("egress");
|
|
fields("post_ingress") ->
|
|
[
|
|
type_field(),
|
|
name_field()
|
|
] ++ proplists:delete(enable, fields("ingress"));
|
|
fields("post_egress") ->
|
|
[
|
|
type_field(),
|
|
name_field()
|
|
] ++ proplists:delete(enable, fields("egress"));
|
|
fields("put_ingress") ->
|
|
proplists:delete(enable, fields("ingress"));
|
|
fields("put_egress") ->
|
|
proplists:delete(enable, fields("egress"));
|
|
fields("get_ingress") ->
|
|
emqx_bridge_schema:metrics_status_fields() ++ fields("post_ingress");
|
|
fields("get_egress") ->
|
|
emqx_bridge_schema:metrics_status_fields() ++ fields("post_egress").
|
|
|
|
desc(Rec) when Rec =:= "ingress"; Rec =:= "egress" ->
|
|
?DESC("desc_rec");
|
|
desc(_) ->
|
|
undefined.
|
|
|
|
%%======================================================================================
|
|
type_field() ->
|
|
{type,
|
|
mk(
|
|
mqtt,
|
|
#{
|
|
required => true,
|
|
desc => ?DESC("desc_type")
|
|
}
|
|
)}.
|
|
|
|
name_field() ->
|
|
{name,
|
|
mk(
|
|
binary(),
|
|
#{
|
|
required => true,
|
|
desc => ?DESC("desc_name")
|
|
}
|
|
)}.
|
|
|
|
mqtt_connector_ref() ->
|
|
?R_REF(emqx_connector_mqtt_schema, "connector").
|