43 lines
1.4 KiB
Rust
43 lines
1.4 KiB
Rust
use std::collections::BTreeMap;
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
use serde_json::Value;
|
|
|
|
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
|
|
pub struct RestRequest {
|
|
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
|
|
pub path_params: BTreeMap<String, String>,
|
|
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
|
|
pub query_params: BTreeMap<String, String>,
|
|
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
|
|
pub headers: BTreeMap<String, String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub body: Option<Value>,
|
|
pub timeout_ms: u64,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
|
pub struct RestResponse {
|
|
pub status_code: u16,
|
|
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
|
|
pub headers: BTreeMap<String, String>,
|
|
pub body: Value,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
|
|
pub struct RestWindowRequest {
|
|
#[serde(flatten)]
|
|
pub request: RestRequest,
|
|
pub window_duration_ms: u64,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub max_items: Option<u32>,
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
|
pub struct RestWindowResponse {
|
|
pub status_code: u16,
|
|
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
|
|
pub headers: BTreeMap<String, String>,
|
|
pub body: Value,
|
|
}
|