Current section

Files

Jump to
kazan lib kazan.ex
Raw

lib/kazan.ex

defmodule Kazan do
@moduledoc """
Kazan is a Kubernetes API client for Elixir.
### Module Overview
- `Kazan.Apis` contains modules for building requests to send to the kube API.
- `Kazan.Apis.*` modules represent one of the "groups" of API functionality
exposed by k8s. The root of these modules usually contain functions for
checking the capabilities of a k8s server.
- `Kazan.Apis.*.*` modules represent a particular version of an API. These
modules expose functions that can be called to build requests to send to
the k8s API.
- `Kazan.Apis.*.*.*` modules contain some struct definitions that can be
used to build requests and can be received in responses from the API.
- `Kazan.Models` contains other structs that can be sent and received by k8s,
but are not specifically tied to any one API group.
- `Kazan.run` is responsible for actually sending those requests.
- `Kazan.Watcher` is responsible for watching for changes to kube resources.
See the [README](readme.html) for example usage.
"""
@doc """
Makes a request against a kube server.
The server must be set in the kazan config.
"""
defdelegate run(request), to: Kazan.Client.Imp
@doc """
Makes a request against a kube server.
The server should be set in the kazan config or provided in the options.
### Options
* `server` - A `Kazan.Server` struct that defines which server we should send
this request to. This will override any server provided in the Application
config.
"""
defdelegate run(request, opts), to: Kazan.Client.Imp
@doc """
Like `run/2`, but raises on Error. See `run/2` for more details.
"""
@spec run!(Request.t(), Keyword.t()) :: struct | no_return
defdelegate run!(request, opts), to: Kazan.Client.Imp
@doc """
Like `run/1`, but raises on Error. See `run/1` for more details.
"""
@spec run!(Request.t()) :: struct | no_return
defdelegate run!(request), to: Kazan.Client.Imp
end