Skip to main content

oag_core/parse/
request_body.rs

1use indexmap::IndexMap;
2use serde::{Deserialize, Serialize};
3
4use super::media_type::MediaType;
5
6/// A request body definition.
7#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
8pub struct RequestBody {
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub description: Option<String>,
11
12    pub content: IndexMap<String, MediaType>,
13
14    #[serde(default)]
15    pub required: bool,
16}
17
18/// A reference or inline request body.
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum RequestBodyOrRef {
22    Ref {
23        #[serde(rename = "$ref")]
24        ref_path: String,
25    },
26    RequestBody(RequestBody),
27}