vector_config/external/
url.rs1use std::cell::RefCell;
2
3use serde_json::Value;
4use vector_config_common::validation::{Format, Validation};
5
6use crate::{
7 schema::{generate_string_schema, SchemaGenerator, SchemaObject},
8 Configurable, GenerateError, Metadata, ToValue,
9};
10
11impl Configurable for url::Url {
12 fn metadata() -> Metadata {
13 let mut metadata = Metadata::default();
14 metadata.set_description("A uniform resource location (URL).");
15 metadata.add_validation(Validation::KnownFormat(Format::Uri));
16 metadata
17 }
18
19 fn generate_schema(_: &RefCell<SchemaGenerator>) -> Result<SchemaObject, GenerateError> {
20 Ok(generate_string_schema())
21 }
22}
23
24impl ToValue for url::Url {
25 fn to_value(&self) -> Value {
26 Value::String(self.to_string())
27 }
28}