1package coordinator
2
3import (
4	"time"
5
6	"github.com/influxdata/influxdb/services/meta"
7	"github.com/influxdata/influxql"
8)
9
10// MetaClient is an interface for accessing meta data.
11type MetaClient interface {
12	CreateContinuousQuery(database, name, query string) error
13	CreateDatabase(name string) (*meta.DatabaseInfo, error)
14	CreateDatabaseWithRetentionPolicy(name string, spec *meta.RetentionPolicySpec) (*meta.DatabaseInfo, error)
15	CreateRetentionPolicy(database string, spec *meta.RetentionPolicySpec, makeDefault bool) (*meta.RetentionPolicyInfo, error)
16	CreateSubscription(database, rp, name, mode string, destinations []string) error
17	CreateUser(name, password string, admin bool) (meta.User, error)
18	Database(name string) *meta.DatabaseInfo
19	Databases() []meta.DatabaseInfo
20	DropShard(id uint64) error
21	DropContinuousQuery(database, name string) error
22	DropDatabase(name string) error
23	DropRetentionPolicy(database, name string) error
24	DropSubscription(database, rp, name string) error
25	DropUser(name string) error
26	RetentionPolicy(database, name string) (rpi *meta.RetentionPolicyInfo, err error)
27	SetAdminPrivilege(username string, admin bool) error
28	SetPrivilege(username, database string, p influxql.Privilege) error
29	ShardGroupsByTimeRange(database, policy string, min, max time.Time) (a []meta.ShardGroupInfo, err error)
30	TruncateShardGroups(t time.Time) error
31	UpdateRetentionPolicy(database, name string, rpu *meta.RetentionPolicyUpdate, makeDefault bool) error
32	UpdateUser(name, password string) error
33	UserPrivilege(username, database string) (*influxql.Privilege, error)
34	UserPrivileges(username string) (map[string]influxql.Privilege, error)
35	Users() []meta.UserInfo
36}
37