openapi_31/v31/
security_scheme.rs1use crate::v31;
10
11#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
12pub struct SecurityScheme {
13 #[serde(rename = "type", deserialize_with = "Option::deserialize")]
14 pub r#type: Option<Type>,
15 #[serde(rename = "description", default, skip_serializing_if = "Option::is_none")]
16 pub description: Option<serde_json::Value>,
17}
18
19impl SecurityScheme {
20 pub fn new(r#type: Option<Type>) -> SecurityScheme {
21 SecurityScheme { r#type, description: None }
22 }
23}
24
25#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
26pub enum Type {
27 #[serde(rename = "apiKey")]
28 ApiKey,
29 #[serde(rename = "http")]
30 Http,
31 #[serde(rename = "mutualTLS")]
32 MutualTls,
33 #[serde(rename = "oauth2")]
34 Oauth2,
35 #[serde(rename = "openIdConnect")]
36 OpenIdConnect,
37}
38
39impl Default for Type {
40 fn default() -> Type {
41 Self::ApiKey
42 }
43}