# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). # https://openapi-generator.tech # Do not edit the class manually. defmodule Nomad.Api.Agent do @moduledoc """ API calls for all endpoints tagged `Agent`. """ alias Nomad.Connection import Nomad.RequestBuilder @doc """ Forces a member of the gossip pool from the \"failed\" state into the \"left\" state. ## Parameters - connection (Nomad.Connection): Connection to server - node (String.t): the name of the node - opts (KeywordList): [optional] Optional parameters ## Returns {:ok, nil} on success {:error, Tesla.Env.t} on failure """ @spec force_leave(Tesla.Env.client(), String.t(), keyword()) :: {:ok, nil} | {:error, Tesla.Env.t()} def force_leave(connection, node, _opts \\ []) do %{} |> method(:post) |> url("/agent/force-leave") |> add_param(:query, :node, node) |> ensure_body() |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> evaluate_response([ {200, false} ]) end @doc """ Performs a basic healthcheck ## Parameters - connection (Nomad.Connection): Connection to server - opts (KeywordList): [optional] Optional parameters ## Returns {:ok, Nomad.Model.AgentHealthResponse.t} on success {:error, Tesla.Env.t} on failure """ @spec get_health(Tesla.Env.client(), keyword()) :: {:ok, Nomad.Model.AgentHealthResponse.t()} | {:error, Tesla.Env.t()} def get_health(connection, _opts \\ []) do %{} |> method(:get) |> url("/agent/health") |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> evaluate_response([ {200, %Nomad.Model.AgentHealthResponse{}} ]) end @doc """ Queries for the known peers in the gossip pool ## Parameters - connection (Nomad.Connection): Connection to server - opts (KeywordList): [optional] Optional parameters ## Returns {:ok, Nomad.Model.ServerMembers.t} on success {:error, Tesla.Env.t} on failure """ @spec get_members(Tesla.Env.client(), keyword()) :: {:ok, Nomad.Model.ServerMembers.t()} | {:error, Tesla.Env.t()} def get_members(connection, _opts \\ []) do %{} |> method(:get) |> url("/agent/members") |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> evaluate_response([ {200, %Nomad.Model.ServerMembers{}} ]) end @doc """ Queries for information about the agent we are connected to ## Parameters - connection (Nomad.Connection): Connection to server - opts (KeywordList): [optional] Optional parameters ## Returns {:ok, Nomad.Model.AgentSelf.t} on success {:error, Tesla.Env.t} on failure """ @spec get_self(Tesla.Env.client(), keyword()) :: {:ok, Nomad.Model.AgentSelf.t()} | {:error, Tesla.Env.t()} def get_self(connection, _opts \\ []) do %{} |> method(:get) |> url("/agent/self") |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> evaluate_response([ {200, %Nomad.Model.AgentSelf{}} ]) end @doc """ Queries an agent in client mode for its list of known servers ## Parameters - connection (Nomad.Connection): Connection to server - opts (KeywordList): [optional] Optional parameters ## Returns {:ok, [%String{}, ...]} on success {:error, Tesla.Env.t} on failure """ @spec get_servers(Tesla.Env.client(), keyword()) :: {:ok, list(String.t())} | {:error, Tesla.Env.t()} def get_servers(connection, _opts \\ []) do %{} |> method(:get) |> url("/agent/servers") |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> evaluate_response([ {200, []} ]) end @doc """ Causes the agent to join a cluster by joining the gossip pool at one of the given addresses ## Parameters - connection (Nomad.Connection): Connection to server - address ([String.t]): server address (ip:port) - opts (KeywordList): [optional] Optional parameters ## Returns {:ok, Nomad.Model.JoinResponse.t} on success {:error, Tesla.Env.t} on failure """ @spec join(Tesla.Env.client(), list(String.t()), keyword()) :: {:ok, Nomad.Model.JoinResponse.t()} | {:error, Tesla.Env.t()} def join(connection, address, _opts \\ []) do %{} |> method(:post) |> url("/agent/join") |> add_param(:query, :address, address) |> ensure_body() |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> evaluate_response([ {200, %Nomad.Model.JoinResponse{}} ]) end @doc """ Streams logs from a specific Nomad server node ## Parameters - connection (Nomad.Connection): Connection to server - opts (KeywordList): [optional] Optional parameters - :log_level (String.t): log level - :node_id (String.t): node id - :server_id (String.t): server id - :json (boolean()): is json format - :plain (boolean()): is plain text format ## Returns {:ok, Nomad.Model.StreamFrame.t} on success {:error, Tesla.Env.t} on failure """ @spec stream_logs(Tesla.Env.client(), keyword()) :: {:ok, Nomad.Model.StreamFrame.t()} | {:error, Tesla.Env.t()} def stream_logs(connection, opts \\ []) do optional_params = %{ :log_level => :query, :node_id => :query, :server_id => :query, :json => :query, :plain => :query } %{} |> method(:get) |> url("/agent/monitor") |> add_optional_params(optional_params, opts) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> evaluate_response([ {200, %Nomad.Model.StreamFrame{}} ]) end @doc """ Updates the list of known servers to the given addresses, replacing all previous addresses ## Parameters - connection (Nomad.Connection): Connection to server - address ([String.t]): server address (ip:port) - opts (KeywordList): [optional] Optional parameters ## Returns {:ok, [%String{}, ...]} on success {:error, Tesla.Env.t} on failure """ @spec update_servers(Tesla.Env.client(), list(String.t()), keyword()) :: {:ok, list(String.t())} | {:error, Tesla.Env.t()} def update_servers(connection, address, _opts \\ []) do %{} |> method(:post) |> url("/agent/servers") |> add_param(:query, :address, address) |> ensure_body() |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> evaluate_response([ {200, []} ]) end end