Enum SecurityScheme

Source
pub enum SecurityScheme {
Show 13 variants UserPassword { description: Option<String>, extensions: IndexMap<String, Value>, }, ApiKey { description: Option<String>, location: String, extensions: IndexMap<String, Value>, }, X509 { description: Option<String>, extensions: IndexMap<String, Value>, }, SymmetricEncryption { description: Option<String>, extensions: IndexMap<String, Value>, }, AsymmetricEncryption { description: Option<String>, extensions: IndexMap<String, Value>, }, HttpApiKey { description: Option<String>, name: String, location: String, extensions: IndexMap<String, Value>, }, Http { description: Option<String>, scheme: String, bearer_format: Option<String>, extensions: IndexMap<String, Value>, }, OAuth2 { description: Option<String>, flows: OAuthFlows, extensions: IndexMap<String, Value>, }, OpenIdConnect { description: Option<String>, open_id_connect_url: String, extensions: IndexMap<String, Value>, }, Plain { description: Option<String>, extensions: IndexMap<String, Value>, }, ScramSha256 { description: Option<String>, extensions: IndexMap<String, Value>, }, ScramSha512 { description: Option<String>, extensions: IndexMap<String, Value>, }, Gssapi { description: Option<String>, extensions: IndexMap<String, Value>, },
}
Expand description

Defines a security scheme that can be used by the operations. Supported schemes are:

  • User/Password.
  • API key (either as user or as password).
  • X.509 certificate.
  • End-to-end encryption (either symmetric or asymmetric).
  • HTTP authentication.
  • HTTP API key.
  • OAuth2’s common flows (Implicit, Resource Owner Protected Credentials, Client Credentials and Authorization Code) as defined in RFC6749.
  • OpenID Connect Discovery.
  • SASL (Simple Authentication and Security Layer) as defined in RFC4422.

§Examples

§User/Password Authentication Sample

{
    "type": "userPassword"
}
type: userPassword

§API Key Authentication Sample

{
    "type": "apiKey",
    "in": "user"
}
type: apiKey,
in: user

§X.509 Authentication Sample

{
    "type": "X509"
}
type: X509

§End-to-end Encryption Authentication Sample

{
    "type": "symmetricEncryption"
}
type: symmetricEncryption

§Basic Authentication Sample

{
    "type": "http",
    "scheme": "basic"
}
type: http
scheme: basic

§API Key Sample

{
    "type": "httpApiKey",
    "name": "api_key",
    "in": "header"
}
type: httpApiKey
name: api_key
in: header

§JWT Bearer Sample

{
    "type": "http",
    "scheme": "bearer",
    "bearerFormat": "JWT"
}
type: http
scheme: bearer
bearerFormat: JWT

§Implicit OAuth2 Sample

{
    "type": "oauth2",
    "flows": {
        "implicit": {
        "authorizationUrl": "https://example.com/api/oauth/dialog",
        "scopes": {
            "write:pets": "modify pets in your account",
            "read:pets": "read your pets"
        }
        }
    }
}
type: oauth2
flows:
  implicit:
    authorizationUrl: https://example.com/api/oauth/dialog
    scopes:
      write:pets: modify pets in your account
      read:pets: read your pets

§SASL Sample

{
    "type": "scramSha512"
}
type: scramSha512

Variants§

§

UserPassword

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

ApiKey

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§location: String

REQUIRED. The location of the API key. Valid values are "user" and "password".

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

X509

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

SymmetricEncryption

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

AsymmetricEncryption

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

HttpApiKey

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§name: String

REQUIRED. The name of the header, query or cookie parameter to be used.

§location: String

REQUIRED. The location of the API key. Valid values are "query", "header" or "cookie".

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

Http

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§scheme: String

REQUIRED. The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.

§bearer_format: Option<String>

A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

OAuth2

§Examples

{
    "type": "oauth2",
    "flows": {
        "implicit": {
        "authorizationUrl": "https://example.com/api/oauth/dialog",
        "scopes": {
            "write:pets": "modify pets in your account",
            "read:pets": "read your pets"
        }
        },
        "authorizationCode": {
        "authorizationUrl": "https://example.com/api/oauth/dialog",
        "tokenUrl": "https://example.com/api/oauth/token",
        "scopes": {
            "write:pets": "modify pets in your account",
            "read:pets": "read your pets"
        }
        }
    }
}
type: oauth2
flows:
  implicit:
    authorizationUrl: https://example.com/api/oauth/dialog
    scopes:
      write:pets: modify pets in your account
      read:pets: read your pets
  authorizationCode:
    authorizationUrl: https://example.com/api/oauth/dialog
    tokenUrl: https://example.com/api/oauth/token
    scopes:
      write:pets: modify pets in your account
      read:pets: read your pets

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§flows: OAuthFlows

REQUIRED. An object containing configuration information for the flow types supported.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

OpenIdConnect

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§open_id_connect_url: String

REQUIRED. OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of a URL.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

Plain

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

ScramSha256

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

ScramSha512

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

§

Gssapi

Fields

§description: Option<String>

A short description for security scheme. CommonMark syntax MAY be used for rich text representation.

§extensions: IndexMap<String, Value>

This object MAY be extended with Specification Extensions.

Trait Implementations§

Source§

impl Clone for SecurityScheme

Source§

fn clone(&self) -> SecurityScheme

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SecurityScheme

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for SecurityScheme

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for SecurityScheme

Source§

fn eq(&self, other: &SecurityScheme) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for SecurityScheme

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for SecurityScheme

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,