1#![allow(missing_docs)]
2use futures::future::BoxFuture;
3use snafu::Snafu;
4
5pub mod prelude;
6pub mod util;
7
8#[cfg(feature = "sinks-amqp")]
9pub mod amqp;
10#[cfg(feature = "sinks-appsignal")]
11pub mod appsignal;
12#[cfg(feature = "sinks-aws_cloudwatch_logs")]
13pub mod aws_cloudwatch_logs;
14#[cfg(feature = "sinks-aws_cloudwatch_metrics")]
15pub mod aws_cloudwatch_metrics;
16#[cfg(any(
17 feature = "sinks-aws_kinesis_streams",
18 feature = "sinks-aws_kinesis_firehose",
19))]
20pub mod aws_kinesis;
21#[cfg(feature = "sinks-aws_s3")]
22pub mod aws_s3;
23#[cfg(feature = "sinks-aws_sqs")]
24pub mod aws_s_s;
25#[cfg(feature = "sinks-axiom")]
26pub mod axiom;
27#[cfg(feature = "sinks-azure_blob")]
28pub mod azure_blob;
29#[cfg(feature = "sinks-azure_blob")]
30pub mod azure_common;
31#[cfg(feature = "sinks-azure_monitor_logs")]
32pub mod azure_monitor_logs;
33#[cfg(feature = "sinks-blackhole")]
34pub mod blackhole;
35#[cfg(feature = "sinks-clickhouse")]
36pub mod clickhouse;
37#[cfg(feature = "sinks-console")]
38pub mod console;
39#[cfg(feature = "sinks-databend")]
40pub mod databend;
41#[cfg(any(
42 feature = "sinks-datadog_events",
43 feature = "sinks-datadog_logs",
44 feature = "sinks-datadog_metrics",
45 feature = "sinks-datadog_traces"
46))]
47pub mod datadog;
48#[cfg(feature = "sinks-elasticsearch")]
49pub mod elasticsearch;
50#[cfg(feature = "sinks-file")]
51pub mod file;
52#[cfg(feature = "sinks-gcp")]
53pub mod gcp;
54#[cfg(feature = "sinks-gcp-chronicle")]
55pub mod gcp_chronicle;
56#[cfg(any(feature = "sinks-gcp-chronicle", feature = "sinks-gcp"))]
57pub mod gcs_common;
58#[cfg(any(
59 feature = "sinks-greptimedb_metrics",
60 feature = "sinks-greptimedb_logs"
61))]
62pub mod greptimedb;
63#[cfg(feature = "sinks-honeycomb")]
64pub mod honeycomb;
65#[cfg(feature = "sinks-http")]
66pub mod http;
67#[cfg(feature = "sinks-humio")]
68pub mod humio;
69#[cfg(any(feature = "sinks-influxdb", feature = "prometheus-integration-tests"))]
70pub mod influxdb;
71#[cfg(feature = "sinks-kafka")]
72pub mod kafka;
73#[cfg(feature = "sinks-keep")]
74pub mod keep;
75#[cfg(feature = "sinks-loki")]
76pub mod loki;
77#[cfg(feature = "sinks-mezmo")]
78pub mod mezmo;
79#[cfg(feature = "sinks-mqtt")]
80pub mod mqtt;
81#[cfg(feature = "sinks-nats")]
82pub mod nats;
83#[cfg(feature = "sinks-new_relic")]
84pub mod new_relic;
85#[cfg(feature = "sinks-webhdfs")]
86pub mod opendal_common;
87#[cfg(feature = "sinks-opentelemetry")]
88pub mod opentelemetry;
89#[cfg(feature = "sinks-papertrail")]
90pub mod papertrail;
91#[cfg(feature = "sinks-postgres")]
92pub mod postgres;
93#[cfg(feature = "sinks-prometheus")]
94pub mod prometheus;
95#[cfg(feature = "sinks-pulsar")]
96pub mod pulsar;
97#[cfg(feature = "sinks-redis")]
98pub mod redis;
99#[cfg(all(feature = "sinks-aws_s3", feature = "aws-core"))]
100pub mod s3_common;
101#[cfg(feature = "sinks-sematext")]
102pub mod sematext;
103#[cfg(feature = "sinks-socket")]
104pub mod socket;
105#[cfg(feature = "sinks-splunk_hec")]
106pub mod splunk_hec;
107#[cfg(feature = "sinks-statsd")]
108pub mod statsd;
109#[cfg(feature = "sinks-vector")]
110pub mod vector;
111#[cfg(feature = "sinks-webhdfs")]
112pub mod webhdfs;
113#[cfg(feature = "sinks-websocket")]
114pub mod websocket;
115#[cfg(feature = "sinks-websocket-server")]
116pub mod websocket_server;
117
118pub use vector_lib::{config::Input, sink::VectorSink};
119
120pub type Healthcheck = BoxFuture<'static, crate::Result<()>>;
121
122#[derive(Debug, Snafu)]
124pub enum BuildError {
125 #[snafu(display("Unable to resolve DNS for {:?}", address))]
126 DnsFailure { address: String },
127 #[snafu(display("DNS errored {}", source))]
128 DnsError { source: crate::dns::DnsError },
129 #[snafu(display("Socket address problem: {}", source))]
130 SocketAddressError { source: std::io::Error },
131 #[snafu(display("URI parse error: {}", source))]
132 UriParseError { source: ::http::uri::InvalidUri },
133 #[snafu(display("HTTP request build error: {}", source))]
134 HTTPRequestBuilderError { source: ::http::Error },
135}
136
137#[derive(Debug, Snafu)]
139pub enum HealthcheckError {
140 #[snafu(display("Unexpected status: {}", status))]
141 UnexpectedStatus { status: ::http::StatusCode },
142}