package o11ycli

import (
	"context"

	"github.com/tidbcloud/infra-provider/regional-server/pkg/common/o11ycli/api"
)

type Interface interface {
	CreateCluster(ctx context.Context, req *api.CreateRequest) (*api.ObservabilityCluster, error)

	ListClusters(ctx context.Context, req *api.ListRequest) ([]api.ClusterBaseInfo, error)

	GetCluster(ctx context.Context, provider, region, o11yInfraID string) (*api.ObservabilityCluster, error)

	DeleteCluster(ctx context.Context, provider, region, o11yInfraID string) error

	PauseCluster(ctx context.Context, provider, region, o11yInfraID string) error

	ResumeCluster(ctx context.Context, provider, region, o11yInfraID string) error

	UpdateClusterAgent(ctx context.Context, req *api.UpdateAgentRequest) error
}
