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),
  )
}

Constructors

HTTP method enumeration.

pub type HttpMethod {
  Get
  Post
  Put
  Delete
  Patch
}

Constructors

  • Get
  • Post
  • Put
  • Delete
  • Patch

API metadata.

pub type Info {
  Info(
    title: String,
    description: option.Option(String),
    version: String,
  )
}

Constructors

  • Info(
      title: String,
      description: option.Option(String),
      version: String,
    )

Media type definition.

pub type MediaType {
  MediaType(schema: option.Option(schema.SchemaRef))
}

Constructors

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),
  )
}

Constructors

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)),
  )
}

Constructors

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(String),
    deprecated: Bool,
  )
}

Constructors

Parameter location.

pub type ParameterIn {
  InPath
  InQuery
  InHeader
  InCookie
}

Constructors

  • InPath
  • InQuery
  • InHeader
  • InCookie

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),
    parameters: List(Parameter),
  )
}

Constructors

A request body definition.

pub type RequestBody {
  RequestBody(
    description: option.Option(String),
    content: dict.Dict(String, MediaType),
    required: Bool,
  )
}

Constructors

A response definition.

pub type Response {
  Response(
    description: option.Option(String),
    content: dict.Dict(String, MediaType),
  )
}

Constructors

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

Security scheme definition.

pub type SecurityScheme {
  ApiKeyScheme(name: String, in_: String)
  HttpScheme(
    scheme: String,
    bearer_format: option.Option(String),
  )
}

Constructors

  • ApiKeyScheme(name: String, in_: String)
  • HttpScheme(scheme: String, bearer_format: option.Option(String))

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))
}

Constructors

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.

Search Document