client

package
v0.0.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 19, 2025 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package client provides the API client for interacting with the Talis API

Index

Constants

View Source
const DefaultTimeout = 30 * time.Second

DefaultTimeout is the default timeout for API requests

Variables

This section is empty.

Functions

This section is empty.

Types

type APIClient

type APIClient struct {
	AuthToken string
	APIKey    string
	// contains filtered or unexported fields
}

APIClient implements the Client interface

func (*APIClient) AdminGetInstances

func (c *APIClient) AdminGetInstances(ctx context.Context) ([]*models.Instance, error)

AdminGetInstances retrieves all instances

func (*APIClient) AdminGetInstancesMetadata

func (c *APIClient) AdminGetInstancesMetadata(ctx context.Context) ([]*models.Instance, error)

AdminGetInstancesMetadata retrieves metadata for all instances

func (*APIClient) CreateInstance

func (c *APIClient) CreateInstance(ctx context.Context, req []types.InstanceRequest) ([]*models.Instance, error)

CreateInstance creates new instances

func (*APIClient) CreateProject

func (c *APIClient) CreateProject(ctx context.Context, params handlers.ProjectCreateParams) (models.Project, error)

CreateProject creates a new project

func (*APIClient) CreateUser

CreateUser creates a new user

func (*APIClient) DeleteInstances added in v0.0.6

func (c *APIClient) DeleteInstances(ctx context.Context, req types.DeleteInstancesRequest) error

DeleteInstances deletes specified instances for a project

func (*APIClient) DeleteProject

func (c *APIClient) DeleteProject(ctx context.Context, params handlers.ProjectDeleteParams) error

DeleteProject deletes a project by name

func (*APIClient) DeleteUser

func (c *APIClient) DeleteUser(ctx context.Context, params handlers.DeleteUserParams) error

DeleteUser user deletes a user

func (*APIClient) GetInstance

func (c *APIClient) GetInstance(ctx context.Context, id string) (models.Instance, error)

GetInstance retrieves an instance by ID

func (*APIClient) GetInstances

func (c *APIClient) GetInstances(ctx context.Context, opts *models.ListOptions) ([]*models.Instance, error)

GetInstances lists instances with optional filtering

func (*APIClient) GetInstancesMetadata

func (c *APIClient) GetInstancesMetadata(ctx context.Context, opts *models.ListOptions) ([]*models.Instance, error)

GetInstancesMetadata retrieves metadata for all instances

func (*APIClient) GetInstancesPublicIPs

func (c *APIClient) GetInstancesPublicIPs(ctx context.Context, opts *models.ListOptions) (types.PublicIPsResponse, error)

GetInstancesPublicIPs retrieves public IPs for all instances

func (*APIClient) GetProject

func (c *APIClient) GetProject(ctx context.Context, params handlers.ProjectGetParams) (models.Project, error)

GetProject retrieves a project by name

func (*APIClient) GetTask

func (c *APIClient) GetTask(ctx context.Context, params handlers.TaskGetParams) (models.Task, error)

GetTask retrieves a task by name

func (*APIClient) GetUserByID

func (c *APIClient) GetUserByID(ctx context.Context, params handlers.UserGetByIDParams) (models.User, error)

GetUserByID retrieves a user by id

func (*APIClient) GetUsers

func (c *APIClient) GetUsers(ctx context.Context, params handlers.UserGetParams) (types.UserResponse, error)

GetUsers retrieves a user by username

func (*APIClient) HealthCheck

func (c *APIClient) HealthCheck(ctx context.Context) (map[string]string, error)

HealthCheck checks the health of the API

func (*APIClient) ListProjectInstances

func (c *APIClient) ListProjectInstances(ctx context.Context, params handlers.ProjectListInstancesParams) ([]*models.Instance, error)

ListProjectInstances lists all instances for a project

func (*APIClient) ListProjects

func (c *APIClient) ListProjects(ctx context.Context, params handlers.ProjectListParams) ([]*models.Project, error)

ListProjects lists all projects

func (*APIClient) ListTasks

func (c *APIClient) ListTasks(ctx context.Context, params handlers.TaskListParams) ([]*models.Task, error)

ListTasks lists all tasks

func (*APIClient) ListTasksByInstanceID added in v0.0.8

func (c *APIClient) ListTasksByInstanceID(ctx context.Context, ownerID uint, instanceID uint, actionFilter string, opts *models.ListOptions) ([]*models.Task, error)

ListTasksByInstanceID retrieves tasks for a specific instance ID, with optional action and pagination.

func (*APIClient) SetAPIKey added in v0.0.7

func (c *APIClient) SetAPIKey(apiKey string)

SetAPIKey sets the API key for the client.

func (*APIClient) TerminateTask

func (c *APIClient) TerminateTask(ctx context.Context, params handlers.TaskTerminateParams) error

TerminateTask terminates a task by name

func (*APIClient) UpdateTaskStatus

func (c *APIClient) UpdateTaskStatus(ctx context.Context, params handlers.TaskUpdateStatusParams) error

UpdateTaskStatus updates the status of a task

type Client

type Client interface {
	// Admin Endpoints
	AdminGetInstances(ctx context.Context) ([]*models.Instance, error)
	AdminGetInstancesMetadata(ctx context.Context) ([]*models.Instance, error)

	// Health Check
	HealthCheck(ctx context.Context) (map[string]string, error)

	// Instance Endpoints
	GetInstances(ctx context.Context, opts *models.ListOptions) ([]*models.Instance, error)
	GetInstancesMetadata(ctx context.Context, opts *models.ListOptions) ([]*models.Instance, error)
	GetInstancesPublicIPs(ctx context.Context, opts *models.ListOptions) (types.PublicIPsResponse, error)
	GetInstance(ctx context.Context, id string) (models.Instance, error)
	CreateInstance(ctx context.Context, req []types.InstanceRequest) ([]*models.Instance, error)
	DeleteInstances(ctx context.Context, req types.DeleteInstancesRequest) error // Renamed method from DeleteInstance

	//User Endpoints
	GetUserByID(ctx context.Context, params handlers.UserGetByIDParams) (models.User, error)
	GetUsers(ctx context.Context, params handlers.UserGetParams) (types.UserResponse, error)
	CreateUser(ctx context.Context, params handlers.CreateUserParams) (types.CreateUserResponse, error)
	DeleteUser(ctx context.Context, params handlers.DeleteUserParams) error

	// Project methods
	CreateProject(ctx context.Context, params handlers.ProjectCreateParams) (models.Project, error)
	GetProject(ctx context.Context, params handlers.ProjectGetParams) (models.Project, error)
	ListProjects(ctx context.Context, params handlers.ProjectListParams) ([]*models.Project, error)
	DeleteProject(ctx context.Context, params handlers.ProjectDeleteParams) error
	ListProjectInstances(ctx context.Context, params handlers.ProjectListInstancesParams) ([]*models.Instance, error)

	// Task methods
	GetTask(ctx context.Context, params handlers.TaskGetParams) (models.Task, error)
	ListTasks(ctx context.Context, params handlers.TaskListParams) ([]*models.Task, error)
	ListTasksByInstanceID(ctx context.Context, ownerID uint, instanceID uint, actionFilter string, opts *models.ListOptions) ([]*models.Task, error)
	TerminateTask(ctx context.Context, params handlers.TaskTerminateParams) error
	UpdateTaskStatus(ctx context.Context, params handlers.TaskUpdateStatusParams) error
}

Client is the interface for API client

func NewClient

func NewClient(opts *Options) (Client, error)

NewClient creates a new API client with the given options

type Options

type Options struct {
	// BaseURL is the base URL of the API
	BaseURL string

	// APIKey is the API key for authentication
	APIKey string

	// Timeout is the request timeout
	Timeout time.Duration
}

Options contains configuration options for the API client

func DefaultOptions

func DefaultOptions() *Options

DefaultOptions returns the default client options

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL