%% -*- erlang -*-
%% @doc Fetcher configurations

{mapping, "upload.pool_size", "fifo_s3.upload_pool_size",
 [{default, 10},
  {datatype, integer}]}.

{mapping, "upload.pool_max", "fifo_s3.upload_pool_overflow",
 [{default, 15},
  {datatype, integer}]}.

{translation,
 "fifo_s3.upload_pool_overflow",
 fun(Conf) ->
    Size = cuttlefish:conf_get("upload.pool_size", Conf),
    Max = cuttlefish:conf_get("upload.pool_max", Conf),
    Max - Size
  end
}.

{mapping, "upload.retry", "fifo_s3.upload_retry",
 [{default, 3},
  {datatype, integer}]}.

{mapping, "download.pool_size", "fifo_s3.download_pool_size",
 [{default, 10},
  {datatype, integer}]}.

{mapping, "download.pool_max", "fifo_s3.download_pool_overflow",
 [{default, 15},
  {datatype, integer}]}.

{translation,
 "fifo_s3.download_pool_overflow",
 fun(Conf) ->
    Size = cuttlefish:conf_get("download.pool_size", Conf),
    Max = cuttlefish:conf_get("download.pool_max", Conf),
    Max - Size
  end
}.

{mapping, "download.preload_chunks", "fifo_s3.download_preload_chunks",
 [{default, 10},
  {datatype, integer}]}.

{mapping, "download.retry", "fifo_s3.download_retry",
 [{default, 3},
  {datatype, integer}]}.

{mapping, "http_client", "fifo_s3.http_client",
 [{default, lhttpc},
  {type, [{enum, [hackney, lhttpc]}]}]}.

{mapping, "s3_scheme", "fifo_s3.s3_scheme",
 [{default, https},
  {type, [{enum, [https, http]}]}]}.

