1
0
Fork 0
golang-github-meilisearch-m.../meilisearch_interface.go
Daniel Baumann 5d4914ed7f
Adding upstream version 0.31.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-18 21:42:39 +02:00

187 lines
7.1 KiB
Go

package meilisearch
import (
"context"
"time"
)
type ServiceManager interface {
ServiceReader
KeyManager
TaskManager
ServiceReader() ServiceReader
TaskManager() TaskManager
TaskReader() TaskReader
KeyManager() KeyManager
KeyReader() KeyReader
// CreateIndex creates a new index.
CreateIndex(config *IndexConfig) (*TaskInfo, error)
// CreateIndexWithContext creates a new index with a context for cancellation.
CreateIndexWithContext(ctx context.Context, config *IndexConfig) (*TaskInfo, error)
// DeleteIndex deletes a specific index.
DeleteIndex(uid string) (*TaskInfo, error)
// DeleteIndexWithContext deletes a specific index with a context for cancellation.
DeleteIndexWithContext(ctx context.Context, uid string) (*TaskInfo, error)
// SwapIndexes swaps the positions of two indexes.
SwapIndexes(param []*SwapIndexesParams) (*TaskInfo, error)
// SwapIndexesWithContext swaps the positions of two indexes with a context for cancellation.
SwapIndexesWithContext(ctx context.Context, param []*SwapIndexesParams) (*TaskInfo, error)
// GenerateTenantToken generates a tenant token for multi-tenancy.
GenerateTenantToken(apiKeyUID string, searchRules map[string]interface{}, options *TenantTokenOptions) (string, error)
// CreateDump creates a database dump.
CreateDump() (*TaskInfo, error)
// CreateDumpWithContext creates a database dump with a context for cancellation.
CreateDumpWithContext(ctx context.Context) (*TaskInfo, error)
// CreateSnapshot create database snapshot from meilisearch
CreateSnapshot() (*TaskInfo, error)
// CreateSnapshotWithContext create database snapshot from meilisearch and support parent context
CreateSnapshotWithContext(ctx context.Context) (*TaskInfo, error)
// ExperimentalFeatures returns the experimental features manager.
ExperimentalFeatures() *ExperimentalFeatures
// Close closes the connection to the Meilisearch server.
Close()
}
type ServiceReader interface {
// Index retrieves an IndexManager for a specific index.
Index(uid string) IndexManager
// GetIndex fetches the details of a specific index.
GetIndex(indexID string) (*IndexResult, error)
// GetIndexWithContext fetches the details of a specific index with a context for cancellation.
GetIndexWithContext(ctx context.Context, indexID string) (*IndexResult, error)
// GetRawIndex fetches the raw JSON representation of a specific index.
GetRawIndex(uid string) (map[string]interface{}, error)
// GetRawIndexWithContext fetches the raw JSON representation of a specific index with a context for cancellation.
GetRawIndexWithContext(ctx context.Context, uid string) (map[string]interface{}, error)
// ListIndexes lists all indexes.
ListIndexes(param *IndexesQuery) (*IndexesResults, error)
// ListIndexesWithContext lists all indexes with a context for cancellation.
ListIndexesWithContext(ctx context.Context, param *IndexesQuery) (*IndexesResults, error)
// GetRawIndexes fetches the raw JSON representation of all indexes.
GetRawIndexes(param *IndexesQuery) (map[string]interface{}, error)
// GetRawIndexesWithContext fetches the raw JSON representation of all indexes with a context for cancellation.
GetRawIndexesWithContext(ctx context.Context, param *IndexesQuery) (map[string]interface{}, error)
// MultiSearch performs a multi-index search.
MultiSearch(queries *MultiSearchRequest) (*MultiSearchResponse, error)
// MultiSearchWithContext performs a multi-index search with a context for cancellation.
MultiSearchWithContext(ctx context.Context, queries *MultiSearchRequest) (*MultiSearchResponse, error)
// GetStats fetches global stats.
GetStats() (*Stats, error)
// GetStatsWithContext fetches global stats with a context for cancellation.
GetStatsWithContext(ctx context.Context) (*Stats, error)
// Version fetches the version of the Meilisearch server.
Version() (*Version, error)
// VersionWithContext fetches the version of the Meilisearch server with a context for cancellation.
VersionWithContext(ctx context.Context) (*Version, error)
// Health checks the health of the Meilisearch server.
Health() (*Health, error)
// HealthWithContext checks the health of the Meilisearch server with a context for cancellation.
HealthWithContext(ctx context.Context) (*Health, error)
// IsHealthy checks if the Meilisearch server is healthy.
IsHealthy() bool
}
type KeyManager interface {
KeyReader
// CreateKey creates a new API key.
CreateKey(request *Key) (*Key, error)
// CreateKeyWithContext creates a new API key with a context for cancellation.
CreateKeyWithContext(ctx context.Context, request *Key) (*Key, error)
// UpdateKey updates a specific API key.
UpdateKey(keyOrUID string, request *Key) (*Key, error)
// UpdateKeyWithContext updates a specific API key with a context for cancellation.
UpdateKeyWithContext(ctx context.Context, keyOrUID string, request *Key) (*Key, error)
// DeleteKey deletes a specific API key.
DeleteKey(keyOrUID string) (bool, error)
// DeleteKeyWithContext deletes a specific API key with a context for cancellation.
DeleteKeyWithContext(ctx context.Context, keyOrUID string) (bool, error)
}
type KeyReader interface {
// GetKey fetches the details of a specific API key.
GetKey(identifier string) (*Key, error)
// GetKeyWithContext fetches the details of a specific API key with a context for cancellation.
GetKeyWithContext(ctx context.Context, identifier string) (*Key, error)
// GetKeys lists all API keys.
GetKeys(param *KeysQuery) (*KeysResults, error)
// GetKeysWithContext lists all API keys with a context for cancellation.
GetKeysWithContext(ctx context.Context, param *KeysQuery) (*KeysResults, error)
}
type TaskManager interface {
TaskReader
// CancelTasks cancels specific tasks.
CancelTasks(param *CancelTasksQuery) (*TaskInfo, error)
// CancelTasksWithContext cancels specific tasks with a context for cancellation.
CancelTasksWithContext(ctx context.Context, param *CancelTasksQuery) (*TaskInfo, error)
// DeleteTasks deletes specific tasks.
DeleteTasks(param *DeleteTasksQuery) (*TaskInfo, error)
// DeleteTasksWithContext deletes specific tasks with a context for cancellation.
DeleteTasksWithContext(ctx context.Context, param *DeleteTasksQuery) (*TaskInfo, error)
}
type TaskReader interface {
// GetTask retrieves a task by its UID.
GetTask(taskUID int64) (*Task, error)
// GetTaskWithContext retrieves a task by its UID using the provided context for cancellation.
GetTaskWithContext(ctx context.Context, taskUID int64) (*Task, error)
// GetTasks retrieves multiple tasks based on query parameters.
GetTasks(param *TasksQuery) (*TaskResult, error)
// GetTasksWithContext retrieves multiple tasks based on query parameters using the provided context for cancellation.
GetTasksWithContext(ctx context.Context, param *TasksQuery) (*TaskResult, error)
// WaitForTask waits for a task to complete by its UID with the given interval.
WaitForTask(taskUID int64, interval time.Duration) (*Task, error)
// WaitForTaskWithContext waits for a task to complete by its UID with the given interval using the provided context for cancellation.
WaitForTaskWithContext(ctx context.Context, taskUID int64, interval time.Duration) (*Task, error)
}