defmodule OpenApiSpex.SecurityScheme do
@moduledoc """
Defines the `OpenApiSpex.SecurityScheme.t` type.
"""
alias OpenApiSpex.OAuthFlows
@enforce_keys :type
defstruct [
:type,
:description,
:name,
:in,
:scheme,
:bearerFormat,
:flows,
:openIdConnectUrl,
:extensions
]
@typedoc """
[Security Scheme Object](https://swagger.io/specification/#securitySchemeObject)
Defines a security scheme that can be used by the operations.
Supported schemes are HTTP authentication, an API key (either as a header or as a query parameter),
OAuth2's common flows (implicit, password, application and access code) as defined in RFC6749, and OpenID Connect Discovery.
"""
@type t :: %__MODULE__{
type: String.t(),
description: String.t() | nil,
name: String.t() | nil,
in: String.t() | nil,
scheme: String.t() | nil,
bearerFormat: String.t() | nil,
flows: OAuthFlows.t() | nil,
openIdConnectUrl: String.t() | nil,
extensions: %{String.t() => any()} | nil
}
end