Module Bindoj_apidir_shared

module Utils : sig ... end
type type_decl_collection = {
  1. type_declarations : type_decl_info list;
  2. type_decl_environment_wrappers : Bindoj_typedesc.Typed_type_desc.tdenv Kxclib.endo list;
}

TODO.future - temporary solution before the arrival of type cosmos

and type_decl_info = {
  1. tdi_name : string;
  2. tdi_doc : string;
  3. tdi_decl : Bindoj_typedesc.Typed_type_desc.boxed_type_decl;
}
type http_status = [
  1. | `default
  2. | `status_code of int
  3. | `status_range of [ `_1XX | `_2XX | `_3XX | `_4XX | `_5XX ]
]
val string_of_http_status : http_status -> string
type ('reqty, 'respty) invocation_point_info = {
  1. ip_name : string;
  2. ip_urlpath : string;
  3. ip_method : [ `get | `post ];
  4. ip_request_body : 'reqty request_body option;
  5. ip_responses : 'respty response_case list;
  6. ip_deprecated : bool;
  7. ip_summary : string option;
  8. ip_description : string option;
  9. ip_tags : string list;
  10. ip_external_doc : external_doc option;
  11. ip_usage_samples : ('reqty, 'respty) invp_usage_sample list;
}
and 't request_body = {
  1. rq_media_type : 't media_type;
  2. rq_description : string;
  3. rq_required : bool;
}
and 't response = {
  1. rs_media_type : 't media_type;
  2. rs_description : string;
  3. rs_headers : 't header list;
}
and 't response_case =
  1. | Response_case : {
    1. name : string;
    2. doc : string;
    3. samples : 'a Bindoj_runtime.with_doc list;
    4. status : http_status;
    5. response : 'a response;
    6. pack : 'a -> 't;
    7. unpack : 't -> 'a option;
    } -> 't response_case
and external_doc = {
  1. ed_urlpath : string;
  2. ed_description : string option;
}
and 't media_type = {
  1. mt_type : 't Bindoj_typedesc.Typed_type_desc.typed_type_decl;
  2. mt_external_examples : (string * string) list;
}
and 't header = {
  1. hd_name : string;
  2. hd_description : string;
  3. hd_required : bool;
  4. hd_deprecated : bool;
  5. hd_type_decl : 't Bindoj_typedesc.Typed_type_desc.typed_type_decl;
}
and external_example = {
  1. urlpath : string;
  2. summary : string;
  3. description : string;
}
and ('reqty, 'respty) invp_usage_sample =
  1. | Req_sample of 'reqty Bindoj_runtime.with_doc
  2. | Resp_sample of ('respty * http_status) Bindoj_runtime.with_doc
  3. | Usage_sample of ('reqty * 'respty * http_status) Bindoj_runtime.with_doc
val make_response_case : ?status:http_status -> ?name:string -> ?doc:string -> ?samples:'a Bindoj_runtime.with_doc list -> pack:('a -> 'respty) -> unpack:('respty -> 'a option) -> 'a Bindoj_typedesc.Typed_type_desc.typed_type_decl -> 'respty response_case
type untyped_invocation_point_info =
  1. | Invp : (_, _) invocation_point_info -> untyped_invocation_point_info
type invocation_point_key = {
  1. ipk_urlpath : string;
  2. ipk_method : [ `get | `post ];
}
val to_invocation_point_key : (_, _) invocation_point_info -> invocation_point_key
type invocation_point_collection = untyped_invocation_point_info list
module type ApiDirManifest = sig ... end
module type RegistryInfo = sig ... end
module type MakeRegistryS = sig ... end