apistos_models/
components.rs1use crate::paths::{Callback, Example, Header, Link, Parameter, RequestBody, Response};
2use crate::reference_or::ReferenceOr;
3use crate::security::SecurityScheme;
4use indexmap::IndexMap;
5use schemars::schema::Schema;
6use serde::Serialize;
7use serde_json::Value;
8use std::collections::BTreeMap;
9
10#[derive(Serialize, Clone, Debug, Default)]
12#[cfg_attr(any(test, feature = "deserialize"), derive(serde::Deserialize, PartialEq))]
13#[serde(rename_all = "camelCase")]
14pub struct Components {
15 #[serde(skip_serializing_if = "BTreeMap::is_empty", default)]
17 pub schemas: BTreeMap<String, ReferenceOr<Schema>>,
18 #[serde(skip_serializing_if = "BTreeMap::is_empty", default)]
20 pub responses: BTreeMap<String, ReferenceOr<Response>>,
21 #[serde(skip_serializing_if = "BTreeMap::is_empty", default)]
23 pub parameters: BTreeMap<String, ReferenceOr<Parameter>>,
24 #[serde(skip_serializing_if = "BTreeMap::is_empty", default)]
26 pub examples: BTreeMap<String, ReferenceOr<Example>>,
27 #[serde(skip_serializing_if = "BTreeMap::is_empty", default)]
29 pub request_bodies: BTreeMap<String, ReferenceOr<RequestBody>>,
30 #[serde(skip_serializing_if = "BTreeMap::is_empty", default)]
32 pub headers: BTreeMap<String, ReferenceOr<Header>>,
33 #[serde(skip_serializing_if = "BTreeMap::is_empty", default)]
35 pub security_schemes: BTreeMap<String, ReferenceOr<SecurityScheme>>,
36 #[serde(skip_serializing_if = "BTreeMap::is_empty", default)]
38 pub links: BTreeMap<String, ReferenceOr<Link>>,
39 #[serde(skip_serializing_if = "BTreeMap::is_empty", default)]
41 pub callbacks: BTreeMap<String, ReferenceOr<Callback>>,
42 #[serde(flatten, skip_serializing_if = "IndexMap::is_empty", skip_deserializing)]
44 pub extensions: IndexMap<String, Value>,
45}