openapi_31/v31/
security_scheme.rs

1// OpenAPI v3.1.0 Specification
2//
3// OpenAPI inside OpenAPI
4//
5// The version of the OpenAPI document: 3.1.0
6//
7// Generated by: https://openapi-generator.tech
8
9use 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}