openapi_nexus_spec/oas31/spec/
components.rs1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4
5use super::{
6 Callback, Example, Header, Link, ObjectOrReference, Parameter, PathItem, RequestBody, Response,
7 SecurityScheme, schema::ObjectSchema, spec_extensions,
8};
9
10#[derive(Debug, Clone, Default, PartialEq, Deserialize, Serialize)]
12pub struct Components {
13 #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
14 pub schemas: BTreeMap<String, ObjectOrReference<ObjectSchema>>,
15
16 #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
17 pub responses: BTreeMap<String, ObjectOrReference<Response>>,
18
19 #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
20 pub parameters: BTreeMap<String, ObjectOrReference<Parameter>>,
21
22 #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
23 pub examples: BTreeMap<String, ObjectOrReference<Example>>,
24
25 #[serde(
26 rename = "requestBodies",
27 default,
28 skip_serializing_if = "BTreeMap::is_empty"
29 )]
30 pub request_bodies: BTreeMap<String, ObjectOrReference<RequestBody>>,
31
32 #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
33 pub headers: BTreeMap<String, ObjectOrReference<Header>>,
34
35 #[serde(
36 rename = "pathItems",
37 default,
38 skip_serializing_if = "BTreeMap::is_empty"
39 )]
40 pub path_items: BTreeMap<String, ObjectOrReference<PathItem>>,
41
42 #[serde(
43 rename = "securitySchemes",
44 default,
45 skip_serializing_if = "BTreeMap::is_empty"
46 )]
47 pub security_schemes: BTreeMap<String, ObjectOrReference<SecurityScheme>>,
48
49 #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
50 pub links: BTreeMap<String, ObjectOrReference<Link>>,
51
52 #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
53 pub callbacks: BTreeMap<String, ObjectOrReference<Callback>>,
54
55 #[serde(flatten, with = "spec_extensions")]
56 pub extensions: BTreeMap<String, serde_json::Value>,
57}