oas3 0.21.0

Structures and tools to parse, navigate, and validate OpenAPI v3.1.xß specifications
Documentation
use std::collections::BTreeMap;

use serde::{Deserialize, Serialize};

/// Lists the required security schemes to execute this operation.
///
/// The name used for each property MUST correspond to a security scheme declared in the Security
/// Schemes under the Components Object.
///
/// A Security Requirement Object MAY refer to multiple security schemes in which case all schemes
/// MUST be satisfied for a request to be authorized. This enables support for scenarios where
/// multiple query parameters or HTTP headers are required to convey security information.
///
/// When the security field is defined on the OpenAPI Object or Operation Object and contains
/// multiple Security Requirement Objects, only one of the entries in the list needs to be satisfied
/// to authorize the request. This enables support for scenarios where the API allows multiple,
/// independent security schemes.
///
/// An empty Security Requirement Object (`{}`) indicates anonymous access is supported.
///
/// Each name MUST correspond to a security scheme which is declared in the Security Schemes under
/// the Components Object. If the security scheme is of type "oauth2" or "openIdConnect", then the
/// value is a list of scope names required for the execution, and the list MAY be empty if
/// authorization does not require a specified scope. For other security scheme types, the array MAY
/// contain a list of role names which are required for the execution, but are not otherwise defined
/// or exchanged in-band.
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct SecurityRequirement(pub BTreeMap<String, Vec<String>>);