offstage/openapi/openapi
Types
pub type Components {
Components(
schemas: List(#(String, Schema)),
responses: List(#(String, Response)),
parameters: List(#(String, Parameter)),
security_schemes: List(#(String, SecurityScheme)),
)
}
Constructors
-
Components( schemas: List(#(String, Schema)), responses: List(#(String, Response)), parameters: List(#(String, Parameter)), security_schemes: List(#(String, SecurityScheme)), )
pub type ComponentsNS {
ComponentsNS(
to_spec: fn(Components) -> spec.Spec,
schema: fn(OpenAPI, String, String, fn(Schema) -> Schema) -> OpenAPI,
set_schema: fn(OpenAPI, String, Schema) -> OpenAPI,
response: fn(OpenAPI, String, fn(Response) -> Response) -> OpenAPI,
parameter: fn(
OpenAPI,
String,
String,
ParameterIn,
fn(Parameter) -> Parameter,
) -> OpenAPI,
security_scheme: fn(
OpenAPI,
String,
String,
fn(SecurityScheme) -> SecurityScheme,
) -> OpenAPI,
)
}
Constructors
-
ComponentsNS( to_spec: fn(Components) -> spec.Spec, schema: fn(OpenAPI, String, String, fn(Schema) -> Schema) -> OpenAPI, set_schema: fn(OpenAPI, String, Schema) -> OpenAPI, response: fn(OpenAPI, String, fn(Response) -> Response) -> OpenAPI, parameter: fn( OpenAPI, String, String, ParameterIn, fn(Parameter) -> Parameter, ) -> OpenAPI, security_scheme: fn( OpenAPI, String, String, fn(SecurityScheme) -> SecurityScheme, ) -> OpenAPI, )
pub type Contact {
Contact(
name: option.Option(String),
url: option.Option(uri.Uri),
email: option.Option(String),
)
}
Constructors
-
Contact( name: option.Option(String), url: option.Option(uri.Uri), email: option.Option(String), )
pub type ExternalDocs {
ExternalDocs(description: option.Option(String), url: uri.Uri)
}
Constructors
-
ExternalDocs(description: option.Option(String), url: uri.Uri)
pub type Info {
Info(
title: String,
summary: option.Option(String),
description: option.Option(String),
terms_of_service: option.Option(uri.Uri),
contact: option.Option(Contact),
license: option.Option(License),
version: String,
)
}
Constructors
-
Info( title: String, summary: option.Option(String), description: option.Option(String), terms_of_service: option.Option(uri.Uri), contact: option.Option(Contact), license: option.Option(License), version: String, )
pub type License {
License(
name: String,
identifier: option.Option(String),
url: option.Option(uri.Uri),
)
}
Constructors
-
License( name: String, identifier: option.Option(String), url: option.Option(uri.Uri), )
pub type MediaType {
MediaType(
schema: option.Option(Schema),
example: option.Option(String),
)
}
Constructors
-
MediaType( schema: option.Option(Schema), example: option.Option(String), )
pub type OpenAPI {
OpenAPI(
version: String,
info: Info,
servers: List(Server),
paths: List(PathItem),
tags: List(Tag),
components: Components,
)
}
Constructors
-
OpenAPI( version: String, info: Info, servers: List(Server), paths: List(PathItem), tags: List(Tag), components: Components, )
pub type Operation {
Operation(
tags: List(String),
summary: option.Option(String),
description: option.Option(String),
external_docs: option.Option(ExternalDocs),
operation_id: option.Option(String),
parameters: List(OrRef(Parameter)),
responses: List(#(Int, OrRef(Response))),
security: List(String),
request_body: option.Option(RequestBody),
)
}
Constructors
-
Operation( tags: List(String), summary: option.Option(String), description: option.Option(String), external_docs: option.Option(ExternalDocs), operation_id: option.Option(String), parameters: List(OrRef(Parameter)), responses: List(#(Int, OrRef(Response))), security: List(String), request_body: option.Option(RequestBody), )
pub type OperationNS {
OperationNS(
to_spec: fn(Operation) -> spec.Spec,
tag: fn(Operation, String) -> Operation,
summary: fn(Operation, String) -> Operation,
description: fn(Operation, String) -> Operation,
parameter: fn(
Operation,
String,
ParameterIn,
fn(Parameter) -> Parameter,
) -> Operation,
parameter_ref: fn(Operation, String) -> Operation,
response: fn(Operation, Int, fn(Response) -> Response) -> Operation,
response_ref: fn(Operation, Int, String) -> Operation,
security: fn(Operation, String) -> Operation,
request_body: fn(Operation, fn(RequestBody) -> RequestBody) -> Operation,
)
}
Constructors
-
OperationNS( to_spec: fn(Operation) -> spec.Spec, tag: fn(Operation, String) -> Operation, summary: fn(Operation, String) -> Operation, description: fn(Operation, String) -> Operation, parameter: fn( Operation, String, ParameterIn, fn(Parameter) -> Parameter, ) -> Operation, parameter_ref: fn(Operation, String) -> Operation, response: fn(Operation, Int, fn(Response) -> Response) -> Operation, response_ref: fn(Operation, Int, String) -> Operation, security: fn(Operation, String) -> Operation, request_body: fn(Operation, fn(RequestBody) -> RequestBody) -> Operation, )
pub type Parameter {
Parameter(
name: String,
in: ParameterIn,
description: option.Option(String),
required: Bool,
deprecated: Bool,
allow_empty_value: Bool,
schema: option.Option(Schema),
)
}
Constructors
-
Parameter( name: String, in: ParameterIn, description: option.Option(String), required: Bool, deprecated: Bool, allow_empty_value: Bool, schema: option.Option(Schema), )
pub type ParameterIn {
ParameterInQuery
ParameterInQueryString
ParameterInHeader
ParameterInPath
ParameterInCookie
}
Constructors
-
ParameterInQuery -
ParameterInQueryString -
ParameterInHeader -
ParameterInPath -
ParameterInCookie
pub type ParameterNS {
ParameterNS(
to_spec: fn(Parameter) -> spec.Spec,
description: fn(Parameter, String) -> Parameter,
required: fn(Parameter, Bool) -> Parameter,
deprecated: fn(Parameter, Bool) -> Parameter,
allow_empty_value: fn(Parameter, Bool) -> Parameter,
schema: fn(Parameter, String, fn(Schema) -> Schema) -> Parameter,
set_schema: fn(Parameter, Schema) -> Parameter,
)
}
Constructors
-
ParameterNS( to_spec: fn(Parameter) -> spec.Spec, description: fn(Parameter, String) -> Parameter, required: fn(Parameter, Bool) -> Parameter, deprecated: fn(Parameter, Bool) -> Parameter, allow_empty_value: fn(Parameter, Bool) -> Parameter, schema: fn(Parameter, String, fn(Schema) -> Schema) -> Parameter, set_schema: fn(Parameter, Schema) -> Parameter, )
pub type PathItem {
PathItem(
path: String,
summary: option.Option(String),
description: option.Option(String),
get: option.Option(Operation),
put: option.Option(Operation),
post: option.Option(Operation),
delete: option.Option(Operation),
patch: option.Option(Operation),
)
}
Constructors
-
PathItem( path: String, summary: option.Option(String), description: option.Option(String), get: option.Option(Operation), put: option.Option(Operation), post: option.Option(Operation), delete: option.Option(Operation), patch: option.Option(Operation), )
pub type PathItemNS {
PathItemNS(
to_spec: fn(PathItem) -> spec.Spec,
get: fn(PathItem, fn(Operation) -> Operation) -> PathItem,
put: fn(PathItem, fn(Operation) -> Operation) -> PathItem,
patch: fn(PathItem, fn(Operation) -> Operation) -> PathItem,
post: fn(PathItem, fn(Operation) -> Operation) -> PathItem,
delete: fn(PathItem, fn(Operation) -> Operation) -> PathItem,
)
}
Constructors
-
PathItemNS( to_spec: fn(PathItem) -> spec.Spec, get: fn(PathItem, fn(Operation) -> Operation) -> PathItem, put: fn(PathItem, fn(Operation) -> Operation) -> PathItem, patch: fn(PathItem, fn(Operation) -> Operation) -> PathItem, post: fn(PathItem, fn(Operation) -> Operation) -> PathItem, delete: fn(PathItem, fn(Operation) -> Operation) -> PathItem, )
pub type RequestBody {
RequestBody(
description: option.Option(String),
content: List(#(String, OrRef(MediaType))),
required: Bool,
)
}
Constructors
-
RequestBody( description: option.Option(String), content: List(#(String, OrRef(MediaType))), required: Bool, )
pub type RequestBodyNS {
RequestBodyNS(
to_spec: fn(RequestBody) -> spec.Spec,
description: fn(RequestBody, String) -> RequestBody,
content: fn(RequestBody, String, fn(MediaType) -> MediaType) -> RequestBody,
content_ref: fn(RequestBody, String, String) -> RequestBody,
required: fn(RequestBody, Bool) -> RequestBody,
)
}
Constructors
-
RequestBodyNS( to_spec: fn(RequestBody) -> spec.Spec, description: fn(RequestBody, String) -> RequestBody, content: fn(RequestBody, String, fn(MediaType) -> MediaType) -> RequestBody, content_ref: fn(RequestBody, String, String) -> RequestBody, required: fn(RequestBody, Bool) -> RequestBody, )
pub type Response {
Response(
summary: option.Option(String),
description: option.Option(String),
content: List(#(String, OrRef(MediaType))),
)
}
Constructors
-
Response( summary: option.Option(String), description: option.Option(String), content: List(#(String, OrRef(MediaType))), )
pub type ResponseNS {
ResponseNS(
to_spec: fn(Response) -> spec.Spec,
summary: fn(Response, String) -> Response,
description: fn(Response, String) -> Response,
content: fn(Response, String, fn(MediaType) -> MediaType) -> Response,
content_ref: fn(Response, String, String) -> Response,
)
}
Constructors
pub type Schema {
Schema(
type_: List(String),
format: option.Option(String),
default: option.Option(spec.Spec),
items: option.Option(Schema),
properties: List(#(String, Schema)),
enum: List(String),
required: List(String),
pattern: option.Option(String),
examples: List(spec.Spec),
minimum: option.Option(spec.Spec),
maximum: option.Option(spec.Spec),
)
}
Constructors
-
Schema( type_: List(String), format: option.Option(String), default: option.Option(spec.Spec), items: option.Option(Schema), properties: List(#(String, Schema)), enum: List(String), required: List(String), pattern: option.Option(String), examples: List(spec.Spec), minimum: option.Option(spec.Spec), maximum: option.Option(spec.Spec), )
pub type SchemaNS {
SchemaNS(
to_spec: fn(Schema) -> spec.Spec,
or: fn(Schema, String) -> Schema,
format: fn(Schema, String) -> Schema,
default: fn(Schema, spec.Spec) -> Schema,
items: fn(Schema, String, fn(Schema) -> Schema) -> Schema,
property: fn(Schema, String, String, fn(Schema) -> Schema) -> Schema,
required: fn(Schema, String) -> Schema,
enum: fn(Schema, String) -> Schema,
pattern: fn(Schema, String) -> Schema,
example: fn(Schema, spec.Spec) -> Schema,
)
}
Constructors
-
SchemaNS( to_spec: fn(Schema) -> spec.Spec, or: fn(Schema, String) -> Schema, format: fn(Schema, String) -> Schema, default: fn(Schema, spec.Spec) -> Schema, items: fn(Schema, String, fn(Schema) -> Schema) -> Schema, property: fn(Schema, String, String, fn(Schema) -> Schema) -> Schema, required: fn(Schema, String) -> Schema, enum: fn(Schema, String) -> Schema, pattern: fn(Schema, String) -> Schema, example: fn(Schema, spec.Spec) -> Schema, )
pub type SecurityScheme {
SecurityScheme(
type_: String,
description: option.Option(String),
name: option.Option(String),
in: option.Option(SecuritySchemeIn),
scheme: option.Option(String),
bearer_format: option.Option(String),
)
}
Constructors
-
SecurityScheme( type_: String, description: option.Option(String), name: option.Option(String), in: option.Option(SecuritySchemeIn), scheme: option.Option(String), bearer_format: option.Option(String), )
pub type SecuritySchemeIn {
SecuritySchemeInQuery
SecuritySchemeInHeader
SecuritySchemeInCookie
}
Constructors
-
SecuritySchemeInQuery -
SecuritySchemeInHeader -
SecuritySchemeInCookie
pub type SecuritySchemeNS {
SecuritySchemeNS(
to_spec: fn(SecurityScheme) -> spec.Spec,
description: fn(SecurityScheme, String) -> SecurityScheme,
type_: fn(SecurityScheme, String) -> SecurityScheme,
name: fn(SecurityScheme, String) -> SecurityScheme,
in: fn(SecurityScheme, SecuritySchemeIn) -> SecurityScheme,
scheme: fn(SecurityScheme, String) -> SecurityScheme,
bearer_format: fn(SecurityScheme, String) -> SecurityScheme,
)
}
Constructors
-
SecuritySchemeNS( to_spec: fn(SecurityScheme) -> spec.Spec, description: fn(SecurityScheme, String) -> SecurityScheme, type_: fn(SecurityScheme, String) -> SecurityScheme, name: fn(SecurityScheme, String) -> SecurityScheme, in: fn(SecurityScheme, SecuritySchemeIn) -> SecurityScheme, scheme: fn(SecurityScheme, String) -> SecurityScheme, bearer_format: fn(SecurityScheme, String) -> SecurityScheme, )
pub type Server {
Server(
url: uri.Uri,
description: option.Option(String),
name: option.Option(String),
variables: List(#(String, ServerVariable)),
)
}
Constructors
-
Server( url: uri.Uri, description: option.Option(String), name: option.Option(String), variables: List(#(String, ServerVariable)), )
pub type ServerVariable {
ServerVariable(
default: String,
description: option.Option(String),
enum: List(String),
)
}
Constructors
-
ServerVariable( default: String, description: option.Option(String), enum: List(String), )
pub type ServerVariableNS {
ServerVariableNS(to_spec: fn(ServerVariable) -> spec.Spec)
}
Constructors
-
ServerVariableNS(to_spec: fn(ServerVariable) -> spec.Spec)
pub type Tag {
Tag(
name: String,
summary: option.Option(String),
description: option.Option(String),
external_docs: option.Option(ExternalDocs),
parent: option.Option(String),
kind: option.Option(String),
)
}
Constructors
-
Tag( name: String, summary: option.Option(String), description: option.Option(String), external_docs: option.Option(ExternalDocs), parent: option.Option(String), kind: option.Option(String), )
Values
pub const components: ComponentsNS
pub const media_type: MediaTypeNS
pub const operation: OperationNS
pub fn operation_parameter(
operation: Operation,
name: String,
in: ParameterIn,
builder: fn(Parameter) -> Parameter,
) -> Operation
pub fn operation_response(
operation: Operation,
code: Int,
builder: fn(Response) -> Response,
) -> Operation
pub fn opereation_request_body(
operation: Operation,
builder: fn(RequestBody) -> RequestBody,
) -> Operation
pub const parameter: ParameterNS
pub const path: PathItemNS
pub const request_body: RequestBodyNS
pub const response: ResponseNS
pub const security_scheme: SecuritySchemeNS
pub const server_variable: ServerVariableNS