Source file request_context.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
open Common

module type S = sig
  module R : Awskit_s3_intf.RUNTIME

  type connection = R.connection
  type 'a io = 'a R.t
  type request_body = R.request_body
  type response_body_reader = R.response_body_reader

  val bind : 'a io -> ('a -> 'b io) -> 'b io
  val return : 'a -> 'a io
  val return_ok : 'a -> ('a, Error.t) result io
  val return_error : Error.t -> ('a, Error.t) result io
  val endpoint_config : connection -> Endpoint_resolver.t

  val object_request :
    connection ->
    bucket:string ->
    key:string ->
    (Endpoint_resolver.Request.t, Error.t) result

  val bucket_request :
    connection ->
    bucket:string ->
    suffix:string ->
    signing_suffix:string ->
    (Endpoint_resolver.Request.t, Error.t) result

  val root_request : connection -> (Endpoint_resolver.Request.t, Error.t) result

  val read_body :
    response_body_reader -> max_size:int64 -> (string, Error.t) result io

  val read_response_body :
    R.response_body -> max_size:int64 -> (string, Error.t) result io

  val discard_response_body : R.response_body -> (unit, Error.t) result io

  val with_response :
    connection ->
    method_:Awskit.Request.Method.t ->
    request:Endpoint_resolver.Request.t ->
    query:(string * string list) list ->
    headers:(string * string) list ->
    payload_hash:Awskit.Body.Payload_hash.t ->
    request_body ->
    f:(Awskit.Response.t -> R.response_body -> ('a, Error.t) result io) ->
    ('a, Error.t) result io

  val with_empty_response :
    connection ->
    method_:Awskit.Request.Method.t ->
    request:Endpoint_resolver.Request.t ->
    query:(string * string list) list ->
    headers:(string * string) list ->
    f:(Awskit.Response.t -> R.response_body -> ('a, Error.t) result io) ->
    ('a, Error.t) result io

  val content_md5 : string -> string
end