# NOTE: This file is auto generated by OpenAPI Generator 7.0.1 (https://openapi-generator.tech). # Do not edit this file manually. defmodule DockerEngineAPI.Connection do @moduledoc """ Handle Tesla connections for DockerEngineAPI. """ @default_options [ base_url: "http://localhost/v1.43", adapter: Tesla.Adapter.Hackney ] @typedoc """ The list of options that can be passed to new/1. - `base_url`: Overrides the base URL on a per-client basis. - `user_agent`: Overrides the User-Agent header. """ @type options :: [ {:base_url, String.t()}, {:user_agent, String.t()} ] @doc "Forward requests to Tesla." @spec request(Tesla.Client.t(), [Tesla.option()]) :: Tesla.Env.result() defdelegate request(client, options), to: Tesla @doc """ Configure a client that may have authentication. ### Parameters - `options`: a keyword list of OpenAPIPetstore.Connection.options. ### Returns Tesla.Env.client """ @spec new(options) :: Tesla.Env.client() def new(options \\ []) when is_list(options) do options = @default_options |> Keyword.merge(options) options |> Keyword.merge(options) |> middleware() |> Tesla.client(adapter(options)) end @doc """ Returns fully configured middleware for passing to Tesla.client/2. """ @spec middleware(options) :: [Tesla.Client.middleware()] def middleware(options \\ []) do base_url = Keyword.get(options, :base_url) tesla_options = get_tesla_options() middleware = Keyword.get(tesla_options, :middleware, []) json_engine = Keyword.get(tesla_options, :json, Jason) user_agent = Keyword.get( options, :user_agent, Keyword.get( tesla_options, :user_agent, "openapi-generator - DockerEngineAPI 1.43 - elixir" ) ) [ {Tesla.Middleware.BaseUrl, base_url}, {Tesla.Middleware.Headers, [{"user-agent", user_agent}]}, {Tesla.Middleware.EncodeJson, engine: json_engine} | middleware ] end def get_tesla_options, do: Application.get_env(:tesla, __MODULE__, []) @doc """ Returns the default adapter for this API. """ def adapter(options \\ []) do case Keyword.get( options, :adapter, Keyword.get(get_tesla_options(), :adapter, nil) ) do Tesla.Adapter.Hackney -> {Tesla.Adapter.Hackney, [recv_timeout: Keyword.get(options, :recv_timeout, 1_000)]} other -> other end end end