use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct HttpResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub headers: Option<HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct HttpRetryOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub attempts: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_delay: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_delay: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exp_base: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub jitter: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub http_status_codes: Option<Vec<u16>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct HttpOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub base_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub api_version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub headers: Option<HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub extra_body: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub retry_options: Option<HttpRetryOptions>,
}