use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
use super::{
schema::Schema, Callback, Example, Header, Link, ObjectOrReference, Parameter, PathItem,
RequestBody, Response, SecurityScheme,
};
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Default)]
pub struct Components {
#[serde(default)]
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
pub schemas: BTreeMap<String, ObjectOrReference<Schema>>,
#[serde(default)]
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
pub responses: BTreeMap<String, ObjectOrReference<Response>>,
#[serde(default)]
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
pub parameters: BTreeMap<String, ObjectOrReference<Parameter>>,
#[serde(default)]
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
pub examples: BTreeMap<String, ObjectOrReference<Example>>,
#[serde(default)]
#[serde(rename = "requestBodies", skip_serializing_if = "BTreeMap::is_empty")]
pub request_bodies: BTreeMap<String, ObjectOrReference<RequestBody>>,
#[serde(default)]
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
pub headers: BTreeMap<String, ObjectOrReference<Header>>,
#[serde(default)]
#[serde(rename = "pathItems", skip_serializing_if = "BTreeMap::is_empty")]
pub path_items: BTreeMap<String, ObjectOrReference<PathItem>>,
#[serde(default)]
#[serde(rename = "securitySchemes", skip_serializing_if = "BTreeMap::is_empty")]
pub security_schemes: BTreeMap<String, ObjectOrReference<SecurityScheme>>,
#[serde(default)]
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
pub links: BTreeMap<String, ObjectOrReference<Link>>,
#[serde(default)]
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
pub callbacks: BTreeMap<String, ObjectOrReference<Callback>>,
}