earl_protocol_http/
schema.rs1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6use earl_core::schema::{AuthTemplate, BodyTemplate, TransportTemplate};
7
8#[derive(Debug, Clone, Deserialize, Serialize)]
9#[serde(deny_unknown_fields)]
10pub struct HttpOperationTemplate {
11 pub method: String,
12 pub url: String,
13 pub path: Option<String>,
14 pub query: Option<BTreeMap<String, Value>>,
15 pub headers: Option<BTreeMap<String, Value>>,
16 pub cookies: Option<BTreeMap<String, Value>>,
17 pub auth: Option<AuthTemplate>,
18 pub body: Option<BodyTemplate>,
19 pub transport: Option<TransportTemplate>,
20}
21
22#[derive(Debug, Clone, Deserialize, Serialize)]
23#[serde(deny_unknown_fields)]
24pub struct GraphqlOperationTemplate {
25 #[serde(default)]
26 pub method: String,
27 pub url: String,
28 pub path: Option<String>,
29 pub query: Option<BTreeMap<String, Value>>,
30 pub headers: Option<BTreeMap<String, Value>>,
31 pub cookies: Option<BTreeMap<String, Value>>,
32 pub auth: Option<AuthTemplate>,
33 pub graphql: GraphqlTemplate,
34 pub transport: Option<TransportTemplate>,
35}
36
37#[derive(Debug, Clone, Deserialize, Serialize)]
38#[serde(deny_unknown_fields)]
39pub struct GraphqlTemplate {
40 pub query: String,
41 pub operation_name: Option<String>,
42 pub variables: Option<Value>,
43}