diff --git a/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.app.src b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.app.src index bd98c43d6..cfa0f95d1 100644 --- a/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.app.src +++ b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub.app.src @@ -12,6 +12,10 @@ {emqx_action_info_modules, [ emqx_bridge_gcp_pubsub_producer_action_info, emqx_bridge_gcp_pubsub_consumer_action_info + ]}, + {emqx_connector_info_modules, [ + emqx_bridge_gcp_pubsub_producer_connector_info, + emqx_bridge_gcp_pubsub_consumer_connector_info ]} ]}, {modules, []}, diff --git a/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub_consumer_connector_info.erl b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub_consumer_connector_info.erl new file mode 100644 index 000000000..0b9406a1b --- /dev/null +++ b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub_consumer_connector_info.erl @@ -0,0 +1,45 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2023-2024 EMQ Technologies Co., Ltd. All Rights Reserved. +%%-------------------------------------------------------------------- + +-module(emqx_bridge_gcp_pubsub_consumer_connector_info). + +-behaviour(emqx_connector_info). + +-export([ + type_name/0, + bridge_types/0, + resource_callback_module/0, + config_schema/0, + schema_module/0, + api_schema/1 +]). + +type_name() -> + gcp_pubsub_consumer. + +bridge_types() -> + [gcp_pubsub_consumer]. + +resource_callback_module() -> + emqx_bridge_gcp_pubsub_impl_consumer. + +config_schema() -> + {gcp_pubsub_consumer, + hoconsc:mk( + hoconsc:map( + name, hoconsc:ref(emqx_bridge_gcp_pubsub_consumer_schema, "config_connector") + ), + #{ + desc => <<"GCP PubSub Consumer Connector Config">>, + required => false + } + )}. + +schema_module() -> + emqx_bridge_gcp_pubsub_consumer_schema. + +api_schema(Method) -> + emqx_connector_schema:api_ref( + emqx_bridge_gcp_pubsub_consumer_schema, <<"gcp_pubsub_consumer">>, Method ++ "_connector" + ). diff --git a/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub_producer_connector_info.erl b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub_producer_connector_info.erl new file mode 100644 index 000000000..1e6c4ee46 --- /dev/null +++ b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub_producer_connector_info.erl @@ -0,0 +1,45 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2023-2024 EMQ Technologies Co., Ltd. All Rights Reserved. +%%-------------------------------------------------------------------- + +-module(emqx_bridge_gcp_pubsub_producer_connector_info). + +-behaviour(emqx_connector_info). + +-export([ + type_name/0, + bridge_types/0, + resource_callback_module/0, + config_schema/0, + schema_module/0, + api_schema/1 +]). + +type_name() -> + gcp_pubsub_producer. + +bridge_types() -> + [gcp_pubsub, gcp_pubsub_producer]. + +resource_callback_module() -> + emqx_bridge_gcp_pubsub_impl_producer. + +config_schema() -> + {gcp_pubsub_producer, + hoconsc:mk( + hoconsc:map( + name, hoconsc:ref(emqx_bridge_gcp_pubsub_producer_schema, "config_connector") + ), + #{ + desc => <<"GCP PubSub Producer Connector Config">>, + required => false + } + )}. + +schema_module() -> + emqx_bridge_gcp_pubsub_producer_schema. + +api_schema(Method) -> + emqx_connector_schema:api_ref( + emqx_bridge_gcp_pubsub_producer_schema, <<"gcp_pubsub_producer">>, Method ++ "_connector" + ). diff --git a/apps/emqx_connector/src/emqx_connector_info.erl b/apps/emqx_connector/src/emqx_connector_info.erl index 954cbc882..86def6da7 100644 --- a/apps/emqx_connector/src/emqx_connector_info.erl +++ b/apps/emqx_connector/src/emqx_connector_info.erl @@ -58,7 +58,9 @@ hard_coded_connector_info_modules_ee() -> [ emqx_bridge_dynamo_connector_info, emqx_bridge_azure_event_hub_connector_info, - emqx_bridge_confluent_producer_connector_info + emqx_bridge_confluent_producer_connector_info, + emqx_bridge_gcp_pubsub_consumer_connector_info, + emqx_bridge_gcp_pubsub_producer_connector_info ]. -else. hard_coded_connector_info_modules_ee() -> diff --git a/apps/emqx_connector/src/schema/emqx_connector_ee_schema.erl b/apps/emqx_connector/src/schema/emqx_connector_ee_schema.erl index 54cc4b1be..1ae8794cf 100644 --- a/apps/emqx_connector/src/schema/emqx_connector_ee_schema.erl +++ b/apps/emqx_connector/src/schema/emqx_connector_ee_schema.erl @@ -21,10 +21,6 @@ resource_type(Type) when is_binary(Type) -> resource_type(binary_to_atom(Type, utf8)); -resource_type(gcp_pubsub_consumer) -> - emqx_bridge_gcp_pubsub_impl_consumer; -resource_type(gcp_pubsub_producer) -> - emqx_bridge_gcp_pubsub_impl_producer; resource_type(hstreamdb) -> emqx_bridge_hstreamdb_connector; resource_type(kafka_consumer) -> @@ -110,22 +106,6 @@ fields(connectors) -> connector_structs() -> [ - {gcp_pubsub_consumer, - mk( - hoconsc:map(name, ref(emqx_bridge_gcp_pubsub_consumer_schema, "config_connector")), - #{ - desc => <<"GCP PubSub Consumer Connector Config">>, - required => false - } - )}, - {gcp_pubsub_producer, - mk( - hoconsc:map(name, ref(emqx_bridge_gcp_pubsub_producer_schema, "config_connector")), - #{ - desc => <<"GCP PubSub Producer Connector Config">>, - required => false - } - )}, {hstreamdb, mk( hoconsc:map(name, ref(emqx_bridge_hstreamdb, "config_connector")), @@ -339,8 +319,6 @@ connector_structs() -> schema_modules() -> [ - emqx_bridge_gcp_pubsub_consumer_schema, - emqx_bridge_gcp_pubsub_producer_schema, emqx_bridge_hstreamdb, emqx_bridge_kafka, emqx_bridge_kafka_consumer_schema, @@ -373,16 +351,6 @@ api_schemas(Method) -> [ %% We need to map the `type' field of a request (binary) to a %% connector schema module. - api_ref( - emqx_bridge_gcp_pubsub_consumer_schema, - <<"gcp_pubsub_consumer">>, - Method ++ "_connector" - ), - api_ref( - emqx_bridge_gcp_pubsub_producer_schema, - <<"gcp_pubsub_producer">>, - Method ++ "_connector" - ), api_ref(emqx_bridge_hstreamdb, <<"hstreamdb">>, Method ++ "_connector"), api_ref(emqx_bridge_kafka, <<"kafka_producer">>, Method ++ "_connector"), api_ref(emqx_bridge_kafka_consumer_schema, <<"kafka_consumer">>, Method ++ "_connector"), diff --git a/apps/emqx_connector/src/schema/emqx_connector_schema.erl b/apps/emqx_connector/src/schema/emqx_connector_schema.erl index 8adf634eb..4b8cf01e6 100644 --- a/apps/emqx_connector/src/schema/emqx_connector_schema.erl +++ b/apps/emqx_connector/src/schema/emqx_connector_schema.erl @@ -130,10 +130,6 @@ connector_info_schema_modules() -> %% from the latest connector type name. connector_type_to_bridge_types(http) -> [webhook, http]; -connector_type_to_bridge_types(gcp_pubsub_consumer) -> - [gcp_pubsub_consumer]; -connector_type_to_bridge_types(gcp_pubsub_producer) -> - [gcp_pubsub, gcp_pubsub_producer]; connector_type_to_bridge_types(hstreamdb) -> [hstreamdb]; connector_type_to_bridge_types(kafka_consumer) ->