Coerce lists to security_scheme objects
Source:R/components-security_scheme.R
as_security_scheme.Rdas_security_scheme() turns an existing object into a security_scheme
object. It uses the type element of such objects to determine which type of
security scheme to construct.
Arguments
- x
The object to coerce. Must be empty or be a named list, with at least an element
type. Thetypeelement is processed throughsnakecase::to_snake_case(), and then must be one of "api_key", "oauth2", or "oauth_2".- ...
These dots are for future extensions and must be empty.
Value
A security_scheme object as returned by
class_api_key_security_scheme() or class_oauth2_security_scheme().
See also
security scheme objects
as_api_key_security_scheme(),
as_oauth2_authorization_code_flow(),
as_oauth2_implicit_flow(),
as_oauth2_security_scheme(),
as_oauth2_token_flow(),
as_scopes(),
as_security_scheme_details(),
as_security_schemes(),
class_api_key_security_scheme(),
class_oauth2_authorization_code_flow(),
class_oauth2_implicit_flow(),
class_oauth2_security_scheme(),
class_oauth2_token_flow(),
class_scopes(),
class_security_scheme_details(),
class_security_schemes()
components object
as_api_key_security_scheme(),
as_components(),
as_oauth2_authorization_code_flow(),
as_oauth2_implicit_flow(),
as_oauth2_security_scheme(),
as_oauth2_token_flow(),
as_reference(),
as_schema(),
as_scopes(),
as_security_scheme_details(),
as_security_schemes(),
class_api_key_security_scheme(),
class_components(),
class_oauth2_authorization_code_flow(),
class_oauth2_implicit_flow(),
class_oauth2_security_scheme(),
class_oauth2_token_flow(),
class_reference(),
class_schema(),
class_scopes(),
class_security_scheme_details(),
class_security_schemes()
Examples
as_security_scheme(
list(
description = "Account JWT token",
flows = list(
password = list(
scopes = list(
Catalog = "Access all read-only content",
Commerce = "Perform account-level transactions",
Playback = "Allow playback of restricted content",
Settings = "Modify account settings"
),
tokenUrl = "/account/authorization"
)
),
type = "oauth2"
)
)
#> <rapid::oauth2_security_scheme>
#> @ implicit_flow : <rapid::oauth2_implicit_flow>
#> .. @ refresh_url : chr(0)
#> .. @ scopes : <rapid::scopes>
#> .. .. @ name : chr(0)
#> .. .. @ description: chr(0)
#> .. @ authorization_url: chr(0)
#> @ password_flow : <rapid::oauth2_token_flow>
#> .. @ refresh_url: chr(0)
#> .. @ scopes : <rapid::scopes>
#> .. .. @ name : chr [1:4] "Catalog" "Commerce" "Playback" "Settings"
#> .. .. @ description: chr [1:4] "Access all read-only content" ...
#> .. @ token_url : chr "/account/authorization"
#> @ client_credentials_flow: <rapid::oauth2_token_flow>
#> .. @ refresh_url: chr(0)
#> .. @ scopes : <rapid::scopes>
#> .. .. @ name : chr(0)
#> .. .. @ description: chr(0)
#> .. @ token_url : chr(0)
#> @ authorization_code_flow: <rapid::oauth2_authorization_code_flow>
#> .. @ refresh_url : chr(0)
#> .. @ scopes : <rapid::scopes>
#> .. .. @ name : chr(0)
#> .. .. @ description: chr(0)
#> .. @ authorization_url: chr(0)
#> .. @ token_url : chr(0)
as_security_scheme(
list(
description = "Profile JWT token",
flows = list(
password = list(
scopes = list(
Catalog = "Modify profile preferences and activity"
),
tokenUrl = "/account/profile/authorization"
)
),
type = "oauth2"
)
)
#> <rapid::oauth2_security_scheme>
#> @ implicit_flow : <rapid::oauth2_implicit_flow>
#> .. @ refresh_url : chr(0)
#> .. @ scopes : <rapid::scopes>
#> .. .. @ name : chr(0)
#> .. .. @ description: chr(0)
#> .. @ authorization_url: chr(0)
#> @ password_flow : <rapid::oauth2_token_flow>
#> .. @ refresh_url: chr(0)
#> .. @ scopes : <rapid::scopes>
#> .. .. @ name : chr "Catalog"
#> .. .. @ description: chr "Modify profile preferences and activity"
#> .. @ token_url : chr "/account/profile/authorization"
#> @ client_credentials_flow: <rapid::oauth2_token_flow>
#> .. @ refresh_url: chr(0)
#> .. @ scopes : <rapid::scopes>
#> .. .. @ name : chr(0)
#> .. .. @ description: chr(0)
#> .. @ token_url : chr(0)
#> @ authorization_code_flow: <rapid::oauth2_authorization_code_flow>
#> .. @ refresh_url : chr(0)
#> .. @ scopes : <rapid::scopes>
#> .. .. @ name : chr(0)
#> .. .. @ description: chr(0)
#> .. @ authorization_url: chr(0)
#> .. @ token_url : chr(0)
as_security_scheme(
list(
`in` = "header",
name = "authorization",
type = "apiKey"
)
)
#> <rapid::api_key_security_scheme>
#> @ parameter_name: chr "authorization"
#> @ location : chr "header"