apple_bloom/v3/
components.rs1use crate::v3::{
2 Callback, Example, Extensions, Header, Link, Parameter, RequestBody, Response, Schema,
3 SecurityScheme,
4};
5use serde::{Deserialize, Serialize};
6use std::collections::BTreeMap;
7
8#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9#[serde(untagged)]
10pub enum ObjectOrReference<T> {
11 Ref {
16 #[serde(rename = "$ref")]
17 ref_path: String,
18 },
19 Object(T),
20}
21
22#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
23#[serde(untagged)]
24pub enum BooleanObjectOrReference<T> {
25 Boolean(bool),
26 Object(T),
27 Ref {
28 #[serde(rename = "$ref")]
29 ref_path: String,
30 },
31}
32
33#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Default)]
40pub struct Components {
41 #[serde(skip_serializing_if = "Option::is_none")]
43 pub schemas: Option<BTreeMap<String, ObjectOrReference<Schema>>>,
44
45 #[serde(skip_serializing_if = "Option::is_none")]
47 pub responses: Option<BTreeMap<String, ObjectOrReference<Response>>>,
48
49 #[serde(skip_serializing_if = "Option::is_none")]
51 pub parameters: Option<BTreeMap<String, ObjectOrReference<Parameter>>>,
52
53 #[serde(skip_serializing_if = "Option::is_none")]
55 pub examples: Option<BTreeMap<String, ObjectOrReference<Example>>>,
56
57 #[serde(skip_serializing_if = "Option::is_none", rename = "requestBodies")]
59 pub request_bodies: Option<BTreeMap<String, ObjectOrReference<RequestBody>>>,
60
61 #[serde(skip_serializing_if = "Option::is_none")]
63 pub headers: Option<BTreeMap<String, ObjectOrReference<Header>>>,
64
65 #[serde(skip_serializing_if = "Option::is_none", rename = "securitySchemes")]
67 pub security_schemes: Option<BTreeMap<String, ObjectOrReference<SecurityScheme>>>,
68
69 #[serde(skip_serializing_if = "Option::is_none")]
71 pub links: Option<BTreeMap<String, ObjectOrReference<Link>>>,
72
73 #[serde(skip_serializing_if = "Option::is_none")]
75 pub callbacks: Option<BTreeMap<String, ObjectOrReference<Callback>>>,
76
77 #[serde(flatten)]
78 pub extensions: Extensions,
79}