# NOTE: This file is auto generated by OpenAPI Generator 7.22.0 (https://openapi-generator.tech).
# Do not edit this file manually.
defmodule Spatio.Api.Routines do
@moduledoc """
API calls for all endpoints tagged `Routines`.
"""
alias Spatio.Connection
import Spatio.RequestBuilder
@doc """
Worker claims a queued run.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.RoutineRun.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec claim_routine_run(Tesla.Env.client, String.t, keyword()) :: {:ok, Spatio.Model.RoutineRun.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def claim_routine_run(connection, id, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/routines/runs/#{id}/claim")
|> ensure_body()
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.RoutineRun},
{401, Spatio.Model.ApiError}
])
end
@doc """
Worker marks a run complete.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `routine_run_complete_request` (RoutineRunCompleteRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.RoutineRun.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec complete_routine_run(Tesla.Env.client, String.t, Spatio.Model.RoutineRunCompleteRequest.t, keyword()) :: {:ok, Spatio.Model.RoutineRun.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def complete_routine_run(connection, id, routine_run_complete_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/routines/runs/#{id}/complete")
|> add_param(:body, :body, routine_run_complete_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.RoutineRun},
{401, Spatio.Model.ApiError}
])
end
@doc """
Create a routine.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `create_routine_request` (CreateRoutineRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.Routine.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec create_routine(Tesla.Env.client, Spatio.Model.CreateRoutineRequest.t, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.Routine.t} | {:error, Tesla.Env.t}
def create_routine(connection, create_routine_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/routines")
|> add_param(:body, :body, create_routine_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{201, Spatio.Model.Routine},
{401, Spatio.Model.ApiError}
])
end
@doc """
Delete a routine.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec delete_routine(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def delete_routine(connection, id, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/v1/routines/#{id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError}
])
end
@doc """
Fetch a routine.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.Routine.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_routine(Tesla.Env.client, String.t, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.Routine.t} | {:error, Tesla.Env.t}
def get_routine(connection, id, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/routines/#{id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.Routine},
{401, Spatio.Model.ApiError},
{404, Spatio.Model.ApiError}
])
end
@doc """
List runs for a routine.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.RoutineRunListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_routine_runs(Tesla.Env.client, String.t, keyword()) :: {:ok, Spatio.Model.RoutineRunListResponse.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_routine_runs(connection, id, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/routines/#{id}/runs")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.RoutineRunListResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
List routines for the caller's workspace.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
- `:workspaceId` (String.t):
- `:status` (String.t):
### Returns
- `{:ok, Spatio.Model.RoutineListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_routines(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.RoutineListResponse.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def list_routines(connection, opts \\ []) do
optional_params = %{
:workspaceId => :query,
:status => :query
}
request =
%{}
|> method(:get)
|> url("/v1/routines")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.RoutineListResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
Trigger an ad-hoc run.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.RoutineRun.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec run_routine_now(Tesla.Env.client, String.t, keyword()) :: {:ok, Spatio.Model.RoutineRun.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def run_routine_now(connection, id, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/routines/#{id}/run-now")
|> ensure_body()
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.RoutineRun},
{401, Spatio.Model.ApiError}
])
end
@doc """
Update a routine.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `update_routine_request` (UpdateRoutineRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.Routine.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec update_routine(Tesla.Env.client, String.t, Spatio.Model.UpdateRoutineRequest.t, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.Routine.t} | {:error, Tesla.Env.t}
def update_routine(connection, id, update_routine_request, _opts \\ []) do
request =
%{}
|> method(:patch)
|> url("/v1/routines/#{id}")
|> add_param(:body, :body, update_routine_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.Routine},
{401, Spatio.Model.ApiError}
])
end
@doc """
Worker reports progress.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `id` (String.t):
- `routine_run_progress_request` (RoutineRunProgressRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.RoutineRun.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec update_routine_run_progress(Tesla.Env.client, String.t, Spatio.Model.RoutineRunProgressRequest.t, keyword()) :: {:ok, Spatio.Model.RoutineRun.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def update_routine_run_progress(connection, id, routine_run_progress_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/routines/runs/#{id}/progress")
|> add_param(:body, :body, routine_run_progress_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.RoutineRun},
{401, Spatio.Model.ApiError}
])
end
end