restify_openapi/models/
info.rs1use indexmap::IndexMap;
2use serde::Serialize;
3use serde_json::Value;
4
5#[derive(Serialize, Clone, Debug, Default)]
7#[cfg_attr(any(test, feature = "deserialize"), derive(serde::Deserialize, PartialEq))]
8#[serde(rename_all = "camelCase")]
9pub struct Info {
10 pub title: String,
12 #[serde(skip_serializing_if = "Option::is_none")]
14 pub description: Option<String>,
15 #[serde(skip_serializing_if = "Option::is_none")]
17 pub terms_of_service: Option<String>,
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub contact: Option<Contact>,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub license: Option<License>,
24 pub version: String,
26 #[serde(flatten, skip_serializing_if = "IndexMap::is_empty", skip_deserializing)]
28 pub extensions: IndexMap<String, Value>,
29}
30
31#[derive(Serialize, Clone, Debug, Default)]
33#[cfg_attr(any(test, feature = "deserialize"), derive(serde::Deserialize, PartialEq))]
34#[serde(rename_all = "camelCase")]
35pub struct Contact {
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub name: Option<String>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub url: Option<String>,
42 #[serde(skip_serializing_if = "Option::is_none")]
44 pub email: Option<String>,
45 #[serde(flatten, skip_serializing_if = "IndexMap::is_empty", skip_deserializing)]
47 pub extensions: IndexMap<String, Value>,
48}
49
50#[derive(Serialize, Clone, Debug, Default)]
52#[cfg_attr(any(test, feature = "deserialize"), derive(serde::Deserialize, PartialEq))]
53#[serde(rename_all = "camelCase")]
54pub struct License {
55 pub name: String,
57 #[serde(skip_serializing_if = "Option::is_none")]
59 pub url: Option<String>,
60 #[serde(flatten, skip_serializing_if = "IndexMap::is_empty", skip_deserializing)]
62 pub extensions: IndexMap<String, Value>,
63}