vector/providers/
mod.rs

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 providers in Vector.
15#[configurable_component]
16#[derive(Clone, Debug)]
17#[serde(tag = "type", rename_all = "snake_case")]
18#[enum_dispatch(ProviderConfig)]
19pub enum Providers {
20    /// HTTP.
21    Http(http::HttpConfig),
22}
23
24// TODO: Use `enum_dispatch` here.
25impl 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}