oaspec/openapi/spec

Types

A callback object: maps URL expressions to PathItems. An OpenAPI callback can have multiple URL expressions.

pub type Callback {
  Callback(entries: dict.Dict(String, PathItem))
}

Constructors

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

Contact information for the API.

pub type Contact {
  Contact(
    name: option.Option(String),
    url: option.Option(String),
    email: option.Option(String),
  )
}

Constructors

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

An external documentation reference.

pub type ExternalDoc {
  ExternalDoc(url: String, description: option.Option(String))
}

Constructors

Header definition for responses or components.

pub type Header {
  Header(
    description: option.Option(String),
    required: Bool,
    schema: option.Option(schema.SchemaRef),
  )
}

Constructors

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

License information for the API.

pub type License {
  License(name: String, url: option.Option(String))
}

Constructors

Link definition for responses or components.

pub type Link {
  Link(
    operation_id: option.Option(String),
    description: option.Option(String),
  )
}

Constructors

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

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

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

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

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

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),
    headers: dict.Dict(String, Header),
    links: dict.Dict(String, Link),
  )
}

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_: 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

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

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

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