defprotocol K8s.Conn.RequestOptions do
@moduledoc """
Encapsulates HTTP request options for an authentication provider.
"""
@fallback_to_any true
@typedoc """
HTTP Request options
"""
@type t :: %__MODULE__{headers: keyword(), ssl_options: keyword()}
defstruct headers: [], ssl_options: []
@typedoc """
`generate/1` response type
"""
@type generate_t :: {:ok, t} | {:error, K8s.Conn.Error.t() | atom}
@spec generate(any()) :: generate_t()
def generate(auth)
end
defimpl K8s.Conn.RequestOptions, for: Map do
@spec generate(map()) :: K8s.Conn.RequestOptions.generate_t()
def generate(map), do: {:ok, struct(K8s.Conn.RequestOptions, map)}
end
defimpl K8s.Conn.RequestOptions, for: Any do
@spec generate(any()) :: K8s.Conn.RequestOptions.generate_t()
def generate(_), do: {:ok, %K8s.Conn.RequestOptions{}}
end