# 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.Account do
@moduledoc """
API calls for all endpoints tagged `Account`.
"""
alias Spatio.Connection
import Spatio.RequestBuilder
@doc """
Change or set the account password.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `change_password_request` (ChangePasswordRequest):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec change_password(Tesla.Env.client, Spatio.Model.ChangePasswordRequest.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def change_password(connection, change_password_request, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/account/security/password")
|> add_param(:body, :body, change_password_request)
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{400, Spatio.Model.ApiError},
{401, Spatio.Model.ApiError}
])
end
@doc """
Atomic check + increment on the agent-task counter (one slot per turn).
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.ConsumeAgentTaskResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec consume_agent_task(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.ConsumeAgentTaskResponse.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def consume_agent_task(connection, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/account/usage/consume-agent-task")
|> ensure_body()
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.ConsumeAgentTaskResponse},
{401, Spatio.Model.ApiError},
{402, Spatio.Model.ApiError},
{429, Spatio.Model.ApiError}
])
end
@doc """
The caller's subscription tier and status.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AccountPlan.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_account_plan(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.AccountPlan.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def get_account_plan(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/account/plan")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.AccountPlan},
{401, Spatio.Model.ApiError}
])
end
@doc """
Capability + quota envelope for the caller's tier.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AccountTierDetails.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_account_tier(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.AccountTierDetails.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def get_account_tier(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/account/tier")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.AccountTierDetails},
{401, Spatio.Model.ApiError}
])
end
@doc """
Today's usage counters across notes, sheets, slides, files, tasks, mail, API.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AccountUsage.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_account_usage(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.AccountUsage.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def get_account_usage(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/account/usage")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.AccountUsage},
{401, Spatio.Model.ApiError}
])
end
@doc """
Free-trial agent-task counter snapshot. Read-only; does NOT consume a slot. Use POST `/v1/account/usage/consume-agent-task` atomically per turn to gate a tool-using turn.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.AgentTaskUsage.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_agent_task_usage(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.AgentTaskUsage.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def get_agent_task_usage(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/account/usage/agent-tasks")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.AgentTaskUsage},
{401, Spatio.Model.ApiError}
])
end
@doc """
List the linked sign-in methods (password + OAuth providers).
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.SignInMethods.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec get_sign_in_methods(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.SignInMethods.t} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def get_sign_in_methods(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/account/security/sign-in-methods")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.SignInMethods},
{401, Spatio.Model.ApiError}
])
end
@doc """
List the OAuth clients the calling user has granted access to.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.ConnectedAppsListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_connected_apps(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.ConnectedAppsListResponse.t} | {:error, Tesla.Env.t}
def list_connected_apps(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/account/connected-apps")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.ConnectedAppsListResponse}
])
end
@doc """
List active sessions for the caller.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.SessionListResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec list_sessions(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.SessionListResponse.t} | {:error, Tesla.Env.t}
def list_sessions(connection, _opts \\ []) do
request =
%{}
|> method(:get)
|> url("/v1/account/security/sessions")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.SessionListResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
Revoke a connected app and all of its active tokens.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `client_id` (String.t):
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, nil}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec revoke_connected_app(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:error, Tesla.Env.t}
def revoke_connected_app(connection, client_id, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/v1/account/connected-apps/#{client_id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, false},
{404, false}
])
end
@doc """
Revoke every session except the caller's current one.
### Parameters
- `connection` (Spatio.Connection): Connection to server
- `opts` (keyword): Optional parameters
### Returns
- `{:ok, Spatio.Model.RevokeOtherSessionsResponse.t}` on success
- `{:error, Tesla.Env.t}` on failure
"""
@spec revoke_other_sessions(Tesla.Env.client, keyword()) :: {:ok, Spatio.Model.ApiError.t} | {:ok, Spatio.Model.RevokeOtherSessionsResponse.t} | {:error, Tesla.Env.t}
def revoke_other_sessions(connection, _opts \\ []) do
request =
%{}
|> method(:post)
|> url("/v1/account/security/sessions/revoke-others")
|> ensure_body()
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{200, Spatio.Model.RevokeOtherSessionsResponse},
{401, Spatio.Model.ApiError}
])
end
@doc """
Revoke a specific session.
### 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 revoke_session(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:ok, Spatio.Model.ApiError.t} | {:error, Tesla.Env.t}
def revoke_session(connection, id, _opts \\ []) do
request =
%{}
|> method(:delete)
|> url("/v1/account/security/sessions/#{id}")
|> Enum.into([])
connection
|> Connection.request(request)
|> evaluate_response([
{204, false},
{401, Spatio.Model.ApiError},
{404, Spatio.Model.ApiError}
])
end
end