nori/security

Security types for OpenAPI specifications.

Defines security schemes and requirements.

Types

Location for API key security scheme.

pub type ApiKeyLocation {
  InQuery
  InHeader
  InCookie
}

Constructors

  • InQuery
  • InHeader
  • InCookie

OAuth Authorization Code flow.

pub type AuthorizationCodeOAuthFlow {
  AuthorizationCodeOAuthFlow(
    authorization_url: String,
    token_url: String,
    refresh_url: option.Option(String),
    scopes: dict.Dict(String, String),
    extensions: dict.Dict(String, json.Json),
  )
}

Constructors

  • AuthorizationCodeOAuthFlow(
      authorization_url: String,
      token_url: String,
      refresh_url: option.Option(String),
      scopes: dict.Dict(String, String),
      extensions: dict.Dict(String, json.Json),
    )

    Arguments

    authorization_url

    The authorization URL for this flow.

    token_url

    The token URL for this flow.

    refresh_url

    The URL to be used for obtaining refresh tokens.

    scopes

    Available scopes for the OAuth2 security scheme.

    extensions

    Extension fields (x-*)

OAuth Client Credentials flow.

pub type ClientCredentialsOAuthFlow {
  ClientCredentialsOAuthFlow(
    token_url: String,
    refresh_url: option.Option(String),
    scopes: dict.Dict(String, String),
    extensions: dict.Dict(String, json.Json),
  )
}

Constructors

  • ClientCredentialsOAuthFlow(
      token_url: String,
      refresh_url: option.Option(String),
      scopes: dict.Dict(String, String),
      extensions: dict.Dict(String, json.Json),
    )

    Arguments

    token_url

    The token URL for this flow.

    refresh_url

    The URL to be used for obtaining refresh tokens.

    scopes

    Available scopes for the OAuth2 security scheme.

    extensions

    Extension fields (x-*)

OAuth Implicit flow.

pub type ImplicitOAuthFlow {
  ImplicitOAuthFlow(
    authorization_url: String,
    refresh_url: option.Option(String),
    scopes: dict.Dict(String, String),
    extensions: dict.Dict(String, json.Json),
  )
}

Constructors

  • ImplicitOAuthFlow(
      authorization_url: String,
      refresh_url: option.Option(String),
      scopes: dict.Dict(String, String),
      extensions: dict.Dict(String, json.Json),
    )

    Arguments

    authorization_url

    The authorization URL for this flow.

    refresh_url

    The URL to be used for obtaining refresh tokens.

    scopes

    Available scopes for the OAuth2 security scheme.

    extensions

    Extension fields (x-*)

Container for OAuth flow definitions.

pub type OAuthFlows {
  OAuthFlows(
    implicit: option.Option(ImplicitOAuthFlow),
    password: option.Option(PasswordOAuthFlow),
    client_credentials: option.Option(ClientCredentialsOAuthFlow),
    authorization_code: option.Option(AuthorizationCodeOAuthFlow),
    extensions: dict.Dict(String, json.Json),
  )
}

Constructors

OAuth Resource Owner Password flow.

pub type PasswordOAuthFlow {
  PasswordOAuthFlow(
    token_url: String,
    refresh_url: option.Option(String),
    scopes: dict.Dict(String, String),
    extensions: dict.Dict(String, json.Json),
  )
}

Constructors

  • PasswordOAuthFlow(
      token_url: String,
      refresh_url: option.Option(String),
      scopes: dict.Dict(String, String),
      extensions: dict.Dict(String, json.Json),
    )

    Arguments

    token_url

    The token URL for this flow.

    refresh_url

    The URL to be used for obtaining refresh tokens.

    scopes

    Available scopes for the OAuth2 security scheme.

    extensions

    Extension fields (x-*)

Security requirement declaration. Maps security scheme names to required scopes.

pub type SecurityRequirement =
  dict.Dict(String, List(String))

Defines a security scheme that can be used by operations.

pub type SecurityScheme {
  ApiKeySecurityScheme(
    name: String,
    in_: ApiKeyLocation,
    description: option.Option(String),
    extensions: dict.Dict(String, json.Json),
  )
  HttpSecurityScheme(
    scheme: String,
    bearer_format: option.Option(String),
    description: option.Option(String),
    extensions: dict.Dict(String, json.Json),
  )
  MutualTlsSecurityScheme(
    description: option.Option(String),
    extensions: dict.Dict(String, json.Json),
  )
  OAuth2SecurityScheme(
    flows: OAuthFlows,
    description: option.Option(String),
    extensions: dict.Dict(String, json.Json),
  )
  OpenIdConnectSecurityScheme(
    open_id_connect_url: String,
    description: option.Option(String),
    extensions: dict.Dict(String, json.Json),
  )
}

Constructors

  • ApiKeySecurityScheme(
      name: String,
      in_: ApiKeyLocation,
      description: option.Option(String),
      extensions: dict.Dict(String, json.Json),
    )

    API Key authentication

    Arguments

    name

    The name of the header, query, or cookie parameter.

    in_

    The location of the API key.

    description

    A description for the security scheme.

    extensions

    Extension fields (x-*)

  • HttpSecurityScheme(
      scheme: String,
      bearer_format: option.Option(String),
      description: option.Option(String),
      extensions: dict.Dict(String, json.Json),
    )

    HTTP authentication (Basic, Bearer, etc.)

    Arguments

    scheme

    The name of the HTTP Authorization scheme.

    bearer_format

    A hint to the client to identify how the bearer token is formatted.

    description

    A description for the security scheme.

    extensions

    Extension fields (x-*)

  • MutualTlsSecurityScheme(
      description: option.Option(String),
      extensions: dict.Dict(String, json.Json),
    )

    Mutual TLS authentication

    Arguments

    description

    A description for the security scheme.

    extensions

    Extension fields (x-*)

  • OAuth2SecurityScheme(
      flows: OAuthFlows,
      description: option.Option(String),
      extensions: dict.Dict(String, json.Json),
    )

    OAuth 2.0 authentication

    Arguments

    flows

    An object containing configuration for supported OAuth flows.

    description

    A description for the security scheme.

    extensions

    Extension fields (x-*)

  • OpenIdConnectSecurityScheme(
      open_id_connect_url: String,
      description: option.Option(String),
      extensions: dict.Dict(String, json.Json),
    )

    OpenID Connect Discovery authentication

    Arguments

    open_id_connect_url

    OpenId Connect URL to discover OAuth2 configuration values.

    description

    A description for the security scheme.

    extensions

    Extension fields (x-*)

Values

pub fn api_key_header(name: String) -> SecurityScheme

Creates an API key security scheme in header.

pub fn api_key_location_to_string(
  location: ApiKeyLocation,
) -> String

Converts an ApiKeyLocation to its string representation.

pub fn basic_auth() -> SecurityScheme

Creates a Basic auth security scheme.

pub fn bearer() -> SecurityScheme

Creates a Bearer token security scheme.

pub fn bearer_jwt() -> SecurityScheme

Creates a Bearer JWT security scheme.

pub fn empty_oauth_flows() -> OAuthFlows

Creates an empty OAuthFlows.

pub fn parse_api_key_location(
  s: String,
) -> Result(ApiKeyLocation, Nil)

Parses an API key location string.

Search Document