use apollo_configuration::configuration;
use apollo_configuration::types::{
Duration, HeaderName, HeaderValue, IpAddr, Ipv4Addr, Ipv6Addr, Method, Regex, SocketAddr,
SocketAddrV4, SocketAddrV6, Uri, Url,
};
use apollo_redaction::Redacted;
#[configuration]
struct AllTypesConfig {
#[config(required)]
bool_field: bool,
#[config(required)]
i32_field: i32,
#[config(required)]
u32_field: u32,
#[config(required)]
i64_field: i64,
#[config(required)]
u64_field: u64,
#[config(required)]
usize_field: usize,
#[config(required)]
string_field: String,
#[config(required)]
url_field: Url,
#[config(required)]
ip_addr_field: IpAddr,
#[config(required)]
ipv4_addr_field: Ipv4Addr,
#[config(required)]
ipv6_addr_field: Ipv6Addr,
#[config(required)]
socket_addr_field: SocketAddr,
#[config(required)]
socket_addr_v4_field: SocketAddrV4,
#[config(required)]
socket_addr_v6_field: SocketAddrV6,
#[config(required)]
method_field: Method,
#[config(required)]
uri_field: Uri,
#[config(required)]
header_name_field: HeaderName,
#[config(required)]
header_value_field: HeaderValue,
#[config(required)]
duration_field: Duration,
#[config(required)]
regex_field: Regex,
option_field: Option<String>,
#[config(required)]
vec_field: Vec<String>,
#[config(required)]
redacted_field: Redacted<String>,
#[config(required)]
redacted_url_field: Redacted<Url>,
}
#[test]
fn json_schema_snapshot() {
let schema = schemars::schema_for!(AllTypesConfig);
insta::assert_json_snapshot!(schema);
}