-module(oaspec@openapi@spec). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/oaspec/openapi/spec.gleam"). -export([method_to_string/1, method_to_lower/1]). -export_type([open_api_spec/0, info/0, server/0, components/0, path_item/0, operation/0, parameter_in/0, parameter/0, request_body/0, media_type/0, response/0, http_method/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -type open_api_spec() :: {open_api_spec, binary(), info(), gleam@dict:dict(binary(), path_item()), gleam@option:option(components()), list(server())}. -type info() :: {info, binary(), gleam@option:option(binary()), binary()}. -type server() :: {server, binary(), gleam@option:option(binary())}. -type components() :: {components, gleam@dict:dict(binary(), oaspec@openapi@schema:schema_ref()), gleam@dict:dict(binary(), parameter()), gleam@dict:dict(binary(), request_body()), gleam@dict:dict(binary(), response())}. -type path_item() :: {path_item, gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(operation()), gleam@option:option(operation()), gleam@option:option(operation()), gleam@option:option(operation()), gleam@option:option(operation()), list(parameter())}. -type operation() :: {operation, gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), list(binary()), list(parameter()), gleam@option:option(request_body()), gleam@dict:dict(binary(), response()), boolean()}. -type parameter_in() :: in_path | in_query | in_header | in_cookie. -type parameter() :: {parameter, binary(), parameter_in(), gleam@option:option(binary()), boolean(), gleam@option:option(oaspec@openapi@schema:schema_ref()), gleam@option:option(binary()), boolean()}. -type request_body() :: {request_body, gleam@option:option(binary()), gleam@dict:dict(binary(), media_type()), boolean()}. -type media_type() :: {media_type, gleam@option:option(oaspec@openapi@schema:schema_ref())}. -type response() :: {response, gleam@option:option(binary()), gleam@dict:dict(binary(), media_type())}. -type http_method() :: get | post | put | delete | patch. -file("src/oaspec/openapi/spec.gleam", 114). ?DOC(" Convert HTTP method to string.\n"). -spec method_to_string(http_method()) -> binary(). method_to_string(Method) -> case Method of get -> <<"GET"/utf8>>; post -> <<"POST"/utf8>>; put -> <<"PUT"/utf8>>; delete -> <<"DELETE"/utf8>>; patch -> <<"PATCH"/utf8>> end. -file("src/oaspec/openapi/spec.gleam", 125). ?DOC(" Convert HTTP method to lowercase string.\n"). -spec method_to_lower(http_method()) -> binary(). method_to_lower(Method) -> case Method of get -> <<"get"/utf8>>; post -> <<"post"/utf8>>; put -> <<"put"/utf8>>; delete -> <<"delete"/utf8>>; patch -> <<"patch"/utf8>> end.