oaspec/openapi/spec
Types
Components section containing reusable schemas, parameters, etc.
pub type Components {
Components(
schemas: dict.Dict(String, schema.SchemaRef),
parameters: dict.Dict(String, Parameter),
request_bodies: dict.Dict(String, RequestBody),
responses: dict.Dict(String, Response),
security_schemes: dict.Dict(String, SecurityScheme),
path_items: dict.Dict(String, PathItem),
headers: dict.Dict(String, Header),
examples: dict.Dict(String, String),
links: dict.Dict(String, Link),
)
}
Constructors
-
Components( schemas: dict.Dict(String, schema.SchemaRef), parameters: dict.Dict(String, Parameter), request_bodies: dict.Dict(String, RequestBody), responses: dict.Dict(String, Response), security_schemes: dict.Dict(String, SecurityScheme), path_items: dict.Dict(String, PathItem), headers: dict.Dict(String, Header), examples: dict.Dict(String, String), links: dict.Dict(String, Link), )
Contact information for the API.
pub type Contact {
Contact(
name: option.Option(String),
url: option.Option(String),
email: option.Option(String),
)
}
Constructors
-
Contact( name: option.Option(String), url: option.Option(String), email: option.Option(String), )
Encoding definition for a media type property.
pub type Encoding {
Encoding(
content_type: option.Option(String),
style: option.Option(ParameterStyle),
explode: option.Option(Bool),
)
}
Constructors
-
Encoding( content_type: option.Option(String), style: option.Option(ParameterStyle), explode: option.Option(Bool), )
An external documentation reference.
pub type ExternalDoc {
ExternalDoc(url: String, description: option.Option(String))
}
Constructors
-
ExternalDoc(url: String, description: option.Option(String))
Header definition for responses or components.
pub type Header {
Header(
description: option.Option(String),
required: Bool,
schema: option.Option(schema.SchemaRef),
)
}
Constructors
-
Header( description: option.Option(String), required: Bool, schema: option.Option(schema.SchemaRef), )
HTTP method enumeration.
pub type HttpMethod {
Get
Post
Put
Delete
Patch
Head
Options
Trace
}
Constructors
-
Get -
Post -
Put -
Delete -
Patch -
Head -
Options -
Trace
API metadata.
pub type Info {
Info(
title: String,
description: option.Option(String),
version: String,
summary: option.Option(String),
terms_of_service: option.Option(String),
contact: option.Option(Contact),
license: option.Option(License),
)
}
Constructors
-
Info( title: String, description: option.Option(String), version: String, summary: option.Option(String), terms_of_service: option.Option(String), contact: option.Option(Contact), license: option.Option(License), )
License information for the API.
pub type License {
License(name: String, url: option.Option(String))
}
Constructors
-
License(name: String, url: option.Option(String))
Link definition for responses or components.
pub type Link {
Link(
operation_id: option.Option(String),
description: option.Option(String),
)
}
Constructors
-
Link( operation_id: option.Option(String), description: option.Option(String), )
Media type definition.
pub type MediaType {
MediaType(
schema: option.Option(schema.SchemaRef),
example: option.Option(String),
examples: dict.Dict(String, String),
encoding: dict.Dict(String, Encoding),
)
}
Constructors
-
MediaType( schema: option.Option(schema.SchemaRef), example: option.Option(String), examples: dict.Dict(String, String), encoding: dict.Dict(String, Encoding), )
An OAuth2 flow definition.
pub type OAuth2Flow {
OAuth2Flow(
authorization_url: option.Option(String),
token_url: option.Option(String),
refresh_url: option.Option(String),
scopes: dict.Dict(String, String),
)
}
Constructors
-
OAuth2Flow( authorization_url: option.Option(String), token_url: option.Option(String), refresh_url: option.Option(String), scopes: dict.Dict(String, String), )
Top-level OpenAPI 3.x specification.
pub type OpenApiSpec {
OpenApiSpec(
openapi: String,
info: Info,
paths: dict.Dict(String, PathItem),
components: option.Option(Components),
servers: List(Server),
security: List(SecurityRequirement),
webhooks: dict.Dict(String, PathItem),
tags: List(Tag),
external_docs: option.Option(ExternalDoc),
json_schema_dialect: option.Option(String),
)
}
Constructors
-
OpenApiSpec( openapi: String, info: Info, paths: dict.Dict(String, PathItem), components: option.Option(Components), servers: List(Server), security: List(SecurityRequirement), webhooks: dict.Dict(String, PathItem), tags: List(Tag), external_docs: option.Option(ExternalDoc), json_schema_dialect: option.Option(String), )
An API operation (endpoint).
pub type Operation {
Operation(
operation_id: option.Option(String),
summary: option.Option(String),
description: option.Option(String),
tags: List(String),
parameters: List(Parameter),
request_body: option.Option(RequestBody),
responses: dict.Dict(String, Response),
deprecated: Bool,
security: option.Option(List(SecurityRequirement)),
callbacks: dict.Dict(String, Callback),
servers: List(Server),
external_docs: option.Option(ExternalDoc),
)
}
Constructors
-
Operation( operation_id: option.Option(String), summary: option.Option(String), description: option.Option(String), tags: List(String), parameters: List(Parameter), request_body: option.Option(RequestBody), responses: dict.Dict(String, Response), deprecated: Bool, security: option.Option(List(SecurityRequirement)), callbacks: dict.Dict(String, Callback), servers: List(Server), external_docs: option.Option(ExternalDoc), )
An API parameter.
pub type Parameter {
Parameter(
name: String,
in_: ParameterIn,
description: option.Option(String),
required: Bool,
schema: option.Option(schema.SchemaRef),
style: option.Option(ParameterStyle),
explode: option.Option(Bool),
deprecated: Bool,
allow_reserved: Bool,
content: dict.Dict(String, MediaType),
examples: dict.Dict(String, String),
)
}
Constructors
-
Parameter( name: String, in_: ParameterIn, description: option.Option(String), required: Bool, schema: option.Option(schema.SchemaRef), style: option.Option(ParameterStyle), explode: option.Option(Bool), deprecated: Bool, allow_reserved: Bool, content: dict.Dict(String, MediaType), examples: dict.Dict(String, String), )
Parameter location.
pub type ParameterIn {
InPath
InQuery
InHeader
InCookie
}
Constructors
-
InPath -
InQuery -
InHeader -
InCookie
Parameter serialization style (OpenAPI 3.x).
pub type ParameterStyle {
FormStyle
SimpleStyle
DeepObjectStyle
MatrixStyle
LabelStyle
SpaceDelimitedStyle
PipeDelimitedStyle
}
Constructors
-
FormStyle -
SimpleStyle -
DeepObjectStyle -
MatrixStyle -
LabelStyle -
SpaceDelimitedStyle -
PipeDelimitedStyle
A path item containing operations for each HTTP method.
pub type PathItem {
PathItem(
summary: option.Option(String),
description: option.Option(String),
get: option.Option(Operation),
post: option.Option(Operation),
put: option.Option(Operation),
delete: option.Option(Operation),
patch: option.Option(Operation),
head: option.Option(Operation),
options: option.Option(Operation),
trace: option.Option(Operation),
parameters: List(Parameter),
servers: List(Server),
)
}
Constructors
-
PathItem( summary: option.Option(String), description: option.Option(String), get: option.Option(Operation), post: option.Option(Operation), put: option.Option(Operation), delete: option.Option(Operation), patch: option.Option(Operation), head: option.Option(Operation), options: option.Option(Operation), trace: option.Option(Operation), parameters: List(Parameter), servers: List(Server), )
A request body definition.
pub type RequestBody {
RequestBody(
description: option.Option(String),
content: dict.Dict(String, MediaType),
required: Bool,
)
}
Constructors
-
RequestBody( description: option.Option(String), content: dict.Dict(String, MediaType), required: Bool, )
A security requirement: all schemes in the list must be satisfied (AND). The outer list in operation/top-level security is OR — any one SecurityRequirement suffices.
pub type SecurityRequirement {
SecurityRequirement(schemes: List(SecuritySchemeRef))
}
Constructors
-
SecurityRequirement(schemes: List(SecuritySchemeRef))
Security scheme definition.
pub type SecurityScheme {
ApiKeyScheme(name: String, in_: SecuritySchemeIn)
HttpScheme(
scheme: String,
bearer_format: option.Option(String),
)
OAuth2Scheme(
description: option.Option(String),
flows: dict.Dict(String, OAuth2Flow),
)
OpenIdConnectScheme(
open_id_connect_url: String,
description: option.Option(String),
)
}
Constructors
-
ApiKeyScheme(name: String, in_: SecuritySchemeIn) -
HttpScheme(scheme: String, bearer_format: option.Option(String)) -
OAuth2Scheme( description: option.Option(String), flows: dict.Dict(String, OAuth2Flow), ) -
OpenIdConnectScheme( open_id_connect_url: String, description: option.Option(String), )
Location for apiKey security scheme.
pub type SecuritySchemeIn {
SchemeInHeader
SchemeInQuery
SchemeInCookie
}
Constructors
-
SchemeInHeader -
SchemeInQuery -
SchemeInCookie
A single scheme reference within a security requirement (AND element).
pub type SecuritySchemeRef {
SecuritySchemeRef(scheme_name: String, scopes: List(String))
}
Constructors
-
SecuritySchemeRef(scheme_name: String, scopes: List(String))
Server object.
pub type Server {
Server(
url: String,
description: option.Option(String),
variables: dict.Dict(String, ServerVariable),
)
}
Constructors
-
Server( url: String, description: option.Option(String), variables: dict.Dict(String, ServerVariable), )
A server variable for server URL template substitution.
pub type ServerVariable {
ServerVariable(
default: String,
enum_values: List(String),
description: option.Option(String),
)
}
Constructors
-
ServerVariable( default: String, enum_values: List(String), description: option.Option(String), )
A tag for API documentation control.
pub type Tag {
Tag(
name: String,
description: option.Option(String),
external_docs: option.Option(ExternalDoc),
)
}
Constructors
-
Tag( name: String, description: option.Option(String), external_docs: option.Option(ExternalDoc), )
Values
pub fn method_to_lower(method: HttpMethod) -> String
Convert HTTP method to lowercase string.
pub fn method_to_string(method: HttpMethod) -> String
Convert HTTP method to string.