1use std::collections::BTreeMap;
2
3use serde::Serialize;
4use serde_json::Value;
5
6use super::ExtraFields;
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Default)]
10#[serde(rename_all = "UPPERCASE")]
11pub enum TlsHttpMethod {
12 #[default]
14 Get,
15 Post,
17 Put,
19 Delete,
21 Patch,
23}
24
25#[derive(Debug, Clone, Serialize, Default, bon::Builder)]
27#[builder(on(String, into))]
28#[serde(remote = "Self")]
29pub struct TlsForwardTask {
30 pub tls_type: String,
32 pub proxy: String,
34 #[builder(default)]
36 pub method: TlsHttpMethod,
37 pub url: String,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub headers: Option<BTreeMap<String, Value>>,
42 #[serde(skip_serializing_if = "Option::is_none")]
44 pub headers_order: Option<String>,
45 #[serde(skip_serializing_if = "Option::is_none")]
47 pub cookies: Option<BTreeMap<String, Value>>,
48 #[serde(skip_serializing_if = "Option::is_none")]
50 pub body: Option<Value>,
51 #[serde(default)]
53 #[builder(default = false)]
54 pub body_raw: bool,
55 #[serde(skip)]
57 #[builder(default)]
58 pub extra: ExtraFields,
59}