1use crate::*;
2use indexmap::IndexMap;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq)]
10#[serde(rename_all = "camelCase")]
11pub struct Components {
12 #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
14 pub schemas: IndexMap<String, ReferenceOr<Schema>>,
15 #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
17 pub responses: IndexMap<String, ReferenceOr<Response>>,
18 #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
20 pub parameters: IndexMap<String, ReferenceOr<Parameter>>,
21 #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
23 pub examples: IndexMap<String, ReferenceOr<Example>>,
24 #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
26 pub request_bodies: IndexMap<String, ReferenceOr<RequestBody>>,
27 #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
29 pub headers: IndexMap<String, ReferenceOr<Header>>,
30 #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
32 pub security_schemes: IndexMap<String, ReferenceOr<SecurityScheme>>,
33 #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
35 pub links: IndexMap<String, ReferenceOr<Link>>,
36 #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
38 pub callbacks: IndexMap<String, ReferenceOr<Callback>>,
39 #[serde(flatten, deserialize_with = "crate::util::deserialize_extensions")]
41 pub extensions: IndexMap<String, serde_json::Value>,
42}