use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct HttpStoreSettings {
#[serde(rename = "base_url")]
pub base_url: String,
#[serde(rename = "read")]
pub read: Box<models::HttpStoreSettingsRead>,
#[serde(rename = "path_encoding", skip_serializing_if = "Option::is_none")]
pub path_encoding: Option<PathEncoding>,
#[serde(rename = "extra_headers", skip_serializing_if = "Option::is_none")]
pub extra_headers: Option<std::collections::HashMap<String, String>>,
#[serde(rename = "auth")]
pub auth: Box<models::HttpStoreAuth>,
#[serde(rename = "ca_bundle_path", skip_serializing_if = "Option::is_none")]
pub ca_bundle_path: Option<String>,
#[serde(rename = "timeout_secs", skip_serializing_if = "Option::is_none")]
pub timeout_secs: Option<i32>,
#[serde(rename = "skip_ssl_verify", skip_serializing_if = "Option::is_none")]
pub skip_ssl_verify: Option<bool>,
}
impl HttpStoreSettings {
pub fn new(base_url: String, read: models::HttpStoreSettingsRead, auth: models::HttpStoreAuth) -> HttpStoreSettings {
HttpStoreSettings {
base_url,
read: Box::new(read),
path_encoding: None,
extra_headers: None,
auth: Box::new(auth),
ca_bundle_path: None,
timeout_secs: None,
skip_ssl_verify: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PathEncoding {
#[serde(rename = "url")]
Url,
#[serde(rename = "double_dash")]
DoubleDash,
#[serde(rename = "raw")]
Raw,
}
impl Default for PathEncoding {
fn default() -> PathEncoding {
Self::Url
}
}