1#![allow(missing_docs)]
2use enum_dispatch::enum_dispatch;
3use vector_lib::configurable::{configurable_component, NamedComponent};
4
5use crate::{
6 config::{ConfigBuilder, ProviderConfig},
7 signal,
8};
9
10pub mod http;
11
12pub type BuildResult = std::result::Result<ConfigBuilder, Vec<String>>;
13
14#[configurable_component]
16#[derive(Clone, Debug)]
17#[serde(tag = "type", rename_all = "snake_case")]
18#[enum_dispatch(ProviderConfig)]
19pub enum Providers {
20 Http(http::HttpConfig),
22}
23
24impl NamedComponent for Providers {
26 fn get_component_name(&self) -> &'static str {
27 match self {
28 Self::Http(config) => config.get_component_name(),
29 }
30 }
31}