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
-
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), )Arguments
- implicit
-
Configuration for the OAuth Implicit flow.
- password
-
Configuration for the OAuth Resource Owner Password flow.
- client_credentials
-
Configuration for the OAuth Client Credentials flow.
- authorization_code
-
Configuration for the OAuth Authorization Code flow.
- extensions
-
Extension fields (x-*)
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 parse_api_key_location(
s: String,
) -> Result(ApiKeyLocation, Nil)
Parses an API key location string.