oag_core/parse/
parameter.rs1use serde::{Deserialize, Serialize};
2
3use super::schema::SchemaOrRef;
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7#[serde(rename_all = "lowercase")]
8pub enum ParameterLocation {
9 Query,
10 Header,
11 Path,
12 Cookie,
13}
14
15#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
17pub struct Parameter {
18 pub name: String,
19
20 #[serde(rename = "in")]
21 pub location: ParameterLocation,
22
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub description: Option<String>,
25
26 #[serde(default)]
27 pub required: bool,
28
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub deprecated: Option<bool>,
31
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub schema: Option<SchemaOrRef>,
34
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub style: Option<String>,
37
38 #[serde(skip_serializing_if = "Option::is_none")]
39 pub explode: Option<bool>,
40
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub example: Option<serde_json::Value>,
43}
44
45#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum ParameterOrRef {
49 Ref {
50 #[serde(rename = "$ref")]
51 ref_path: String,
52 },
53 Parameter(Parameter),
54}