#![allow(missing_docs)]
use futures::future::BoxFuture;
use snafu::Snafu;
pub mod prelude;
pub mod util;
#[cfg(feature = "sinks-amqp")]
pub mod amqp;
#[cfg(feature = "sinks-appsignal")]
pub mod appsignal;
#[cfg(feature = "sinks-aws_cloudwatch_logs")]
pub mod aws_cloudwatch_logs;
#[cfg(feature = "sinks-aws_cloudwatch_metrics")]
pub mod aws_cloudwatch_metrics;
#[cfg(any(
feature = "sinks-aws_kinesis_streams",
feature = "sinks-aws_kinesis_firehose",
))]
pub mod aws_kinesis;
#[cfg(feature = "sinks-aws_s3")]
pub mod aws_s3;
#[cfg(feature = "sinks-aws_sqs")]
pub mod aws_s_s;
#[cfg(feature = "sinks-axiom")]
pub mod axiom;
#[cfg(feature = "sinks-azure_blob")]
pub mod azure_blob;
#[cfg(feature = "sinks-azure_blob")]
pub mod azure_common;
#[cfg(feature = "sinks-azure_monitor_logs")]
pub mod azure_monitor_logs;
#[cfg(feature = "sinks-blackhole")]
pub mod blackhole;
#[cfg(feature = "sinks-clickhouse")]
pub mod clickhouse;
#[cfg(feature = "sinks-console")]
pub mod console;
#[cfg(feature = "sinks-databend")]
pub mod databend;
#[cfg(any(
feature = "sinks-datadog_events",
feature = "sinks-datadog_logs",
feature = "sinks-datadog_metrics",
feature = "sinks-datadog_traces"
))]
pub mod datadog;
#[cfg(feature = "sinks-elasticsearch")]
pub mod elasticsearch;
#[cfg(feature = "sinks-file")]
pub mod file;
#[cfg(feature = "sinks-gcp")]
pub mod gcp;
#[cfg(feature = "sinks-gcp-chronicle")]
pub mod gcp_chronicle;
#[cfg(any(feature = "sinks-gcp-chronicle", feature = "sinks-gcp"))]
pub mod gcs_common;
#[cfg(any(
feature = "sinks-greptimedb_metrics",
feature = "sinks-greptimedb_logs"
))]
pub mod greptimedb;
#[cfg(feature = "sinks-honeycomb")]
pub mod honeycomb;
#[cfg(feature = "sinks-http")]
pub mod http;
#[cfg(feature = "sinks-humio")]
pub mod humio;
#[cfg(any(feature = "sinks-influxdb", feature = "prometheus-integration-tests"))]
pub mod influxdb;
#[cfg(feature = "sinks-kafka")]
pub mod kafka;
#[cfg(feature = "sinks-loki")]
pub mod loki;
#[cfg(feature = "sinks-mezmo")]
pub mod mezmo;
#[cfg(feature = "sinks-mqtt")]
pub mod mqtt;
#[cfg(feature = "sinks-nats")]
pub mod nats;
#[cfg(feature = "sinks-new_relic")]
pub mod new_relic;
#[cfg(feature = "sinks-webhdfs")]
pub mod opendal_common;
#[cfg(feature = "sinks-opentelemetry")]
pub mod opentelemetry;
#[cfg(feature = "sinks-papertrail")]
pub mod papertrail;
#[cfg(feature = "sinks-prometheus")]
pub mod prometheus;
#[cfg(feature = "sinks-pulsar")]
pub mod pulsar;
#[cfg(feature = "sinks-redis")]
pub mod redis;
#[cfg(all(feature = "sinks-aws_s3", feature = "aws-core"))]
pub mod s3_common;
#[cfg(feature = "sinks-sematext")]
pub mod sematext;
#[cfg(feature = "sinks-socket")]
pub mod socket;
#[cfg(feature = "sinks-splunk_hec")]
pub mod splunk_hec;
#[cfg(feature = "sinks-statsd")]
pub mod statsd;
#[cfg(feature = "sinks-vector")]
pub mod vector;
#[cfg(feature = "sinks-webhdfs")]
pub mod webhdfs;
#[cfg(feature = "sinks-websocket")]
pub mod websocket;
pub use vector_lib::{config::Input, sink::VectorSink};
pub type Healthcheck = BoxFuture<'static, crate::Result<()>>;
#[derive(Debug, Snafu)]
pub enum BuildError {
#[snafu(display("Unable to resolve DNS for {:?}", address))]
DnsFailure { address: String },
#[snafu(display("DNS errored {}", source))]
DnsError { source: crate::dns::DnsError },
#[snafu(display("Socket address problem: {}", source))]
SocketAddressError { source: std::io::Error },
#[snafu(display("URI parse error: {}", source))]
UriParseError { source: ::http::uri::InvalidUri },
#[snafu(display("HTTP request build error: {}", source))]
HTTPRequestBuilderError { source: ::http::Error },
}
#[derive(Debug, Snafu)]
pub enum HealthcheckError {
#[snafu(display("Unexpected status: {}", status))]
UnexpectedStatus { status: ::http::StatusCode },
}