# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
# https://openapi-generator.tech
# Do not edit the class manually.
defmodule ChatKitty.Api.Functions do
@moduledoc """
API calls for all endpoints tagged `Functions`.
"""
alias ChatKitty.Connection
import ChatKitty.RequestBuilder
@doc """
Create a chat function version
Creates a new version of this chat function
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): Chat function ID
- create_chat_function_version_resource (CreateChatFunctionVersionResource):
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ChatFunctionVersionResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec create_function_version(Tesla.Env.client, integer(), ChatKitty.Model.CreateChatFunctionVersionResource.t, keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ChatFunctionVersionResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def create_function_version(connection, id, create_chat_function_version_resource, _opts \\ []) do
%{}
|> method(:post)
|> url("/v1/functions/#{id}/versions")
|> add_param(:body, :body, create_chat_function_version_resource)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 403, %ChatKitty.Model.AuthenticationError{}},
{ 400, %ChatKitty.Model.ApiError{}},
{ 401, %ChatKitty.Model.AuthenticationError{}},
{ 404, %ChatKitty.Model.ApiError{}},
{ 200, %ChatKitty.Model.ChatFunctionVersionResource{}}
])
end
@doc """
List chat function invocations
Returns a page of invocations of this chat function. A log of previous runs of the function
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): Chat function ID
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Zero-based page index (0..N)
- :size (integer()): The size of the page to be returned
- :sort ([String.t]): Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
## Returns
{:ok, ChatKitty.Model.PagedModelChatFunctionInvocationResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec list_function_invocations(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.PagedModelChatFunctionInvocationResource.t} | {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def list_function_invocations(connection, id, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/v1/functions/#{id}/invocations")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 403, %ChatKitty.Model.AuthenticationError{}},
{ 400, %ChatKitty.Model.ApiError{}},
{ 401, %ChatKitty.Model.AuthenticationError{}},
{ 404, %ChatKitty.Model.ApiError{}},
{ 200, %ChatKitty.Model.PagedModelChatFunctionInvocationResource{}}
])
end
@doc """
List chat function versions
Returns a page of versions of this chat function
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): Chat function ID
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Zero-based page index (0..N)
- :size (integer()): The size of the page to be returned
- :sort ([String.t]): Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.
## Returns
{:ok, ChatKitty.Model.PagedModelChatFunctionVersionResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec list_function_versions(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:ok, ChatKitty.Model.PagedModelChatFunctionVersionResource.t} | {:error, Tesla.Env.t}
def list_function_versions(connection, id, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/v1/functions/#{id}/versions")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 403, %ChatKitty.Model.AuthenticationError{}},
{ 400, %ChatKitty.Model.ApiError{}},
{ 401, %ChatKitty.Model.AuthenticationError{}},
{ 404, %ChatKitty.Model.ApiError{}},
{ 200, %ChatKitty.Model.PagedModelChatFunctionVersionResource{}}
])
end
@doc """
Retrieve a chat function
Returns a chat function by ID
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): Chat function ID
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ChatFunctionResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec retrieve_function(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:ok, ChatKitty.Model.ChatFunctionResource.t} | {:error, Tesla.Env.t}
def retrieve_function(connection, id, _opts \\ []) do
%{}
|> method(:get)
|> url("/v1/functions/#{id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 403, %ChatKitty.Model.AuthenticationError{}},
{ 400, %ChatKitty.Model.ApiError{}},
{ 401, %ChatKitty.Model.AuthenticationError{}},
{ 404, %ChatKitty.Model.ApiError{}},
{ 200, %ChatKitty.Model.ChatFunctionResource{}}
])
end
@doc """
Retrieve chat function current version
Returns the version of this chat function currently deployed
## Parameters
- connection (ChatKitty.Connection): Connection to server
- id (integer()): Chat function ID
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, ChatKitty.Model.ChatFunctionVersionResource.t} on success
{:error, Tesla.Env.t} on failure
"""
@spec retrieve_function_current_version(Tesla.Env.client, integer(), keyword()) :: {:ok, ChatKitty.Model.ApiError.t} | {:ok, ChatKitty.Model.ChatFunctionVersionResource.t} | {:ok, ChatKitty.Model.AuthenticationError.t} | {:error, Tesla.Env.t}
def retrieve_function_current_version(connection, id, _opts \\ []) do
%{}
|> method(:get)
|> url("/v1/functions/#{id}/current-version")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 403, %ChatKitty.Model.AuthenticationError{}},
{ 400, %ChatKitty.Model.ApiError{}},
{ 401, %ChatKitty.Model.AuthenticationError{}},
{ 404, %ChatKitty.Model.ApiError{}},
{ 200, %ChatKitty.Model.ChatFunctionVersionResource{}}
])
end
end