mirror of
https://github.com/garethgeorge/backrest.git
synced 2026-08-21 16:36:36 +00:00
2815 lines
87 KiB
Go
2815 lines
87 KiB
Go
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go v1.36.11
|
|
// protoc (unknown)
|
|
// source: v1/config.proto
|
|
|
|
package v1
|
|
|
|
import (
|
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
_ "google.golang.org/protobuf/types/known/emptypb"
|
|
reflect "reflect"
|
|
sync "sync"
|
|
unsafe "unsafe"
|
|
)
|
|
|
|
const (
|
|
// Verify that this generated code is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
|
)
|
|
|
|
type Multihost_Permission_Type int32
|
|
|
|
const (
|
|
Multihost_Permission_PERMISSION_UNKNOWN Multihost_Permission_Type = 0
|
|
// Granted on a knownHost (by client → host): the local instance pushes
|
|
//
|
|
// operations for in-scope repos/plans up to that known host, and
|
|
// exposes those resource IDs/GUIDs in the resource list it sends.
|
|
//
|
|
// Granted on an authorizedClient: no effect. The host never pushes
|
|
//
|
|
// operations down to clients.
|
|
Multihost_Permission_PERMISSION_READ_OPERATIONS Multihost_Permission_Type = 1
|
|
// Granted on an authorizedClient (by host → client): in-scope repos/plans
|
|
//
|
|
// are included in the host's RemoteConfig and resource list sent to
|
|
// the client (read-only view of host config).
|
|
//
|
|
// Granted on a knownHost (by client → host): in-scope repos/plans are
|
|
//
|
|
// included in the client's RemoteConfig and resource list sent to the
|
|
// host (read-only view of client config).
|
|
Multihost_Permission_PERMISSION_READ_CONFIG Multihost_Permission_Type = 2
|
|
// Granted on an authorizedClient (by host → client): same view as
|
|
//
|
|
// READ_CONFIG. There is no client→host SetConfig path, so the "write"
|
|
// half is currently a no-op on the host side.
|
|
//
|
|
// Granted on a knownHost (by client → host): everything READ_CONFIG does,
|
|
//
|
|
// plus the client accepts SetConfig from the host for in-scope IDs
|
|
// (create/update/delete plans, create/update/delete repos).
|
|
Multihost_Permission_PERMISSION_READ_WRITE_CONFIG Multihost_Permission_Type = 3
|
|
// Both peers must grant this for shared repos to flow:
|
|
// - Granted on an authorizedClient (by host → client): host pushes
|
|
// in-scope repos marked as 'shared' to that client via SetConfig.
|
|
// A scopeless grant acts as a wildcard (push every shared repo);
|
|
// a scoped grant restricts which shared repos are pushed.
|
|
// - Granted on a knownHost (by client → host): client accepts pushed
|
|
// shared repos that are new or already owned by this host. Always
|
|
// evaluated scope-lessly on the client — scopes are ignored here
|
|
// because the client doesn't pre-know the incoming repo IDs.
|
|
//
|
|
// If either side is missing the grant, no shared repos are transferred.
|
|
Multihost_Permission_PERMISSION_RECEIVE_SHARED_REPOS Multihost_Permission_Type = 4
|
|
)
|
|
|
|
// Enum value maps for Multihost_Permission_Type.
|
|
var (
|
|
Multihost_Permission_Type_name = map[int32]string{
|
|
0: "PERMISSION_UNKNOWN",
|
|
1: "PERMISSION_READ_OPERATIONS",
|
|
2: "PERMISSION_READ_CONFIG",
|
|
3: "PERMISSION_READ_WRITE_CONFIG",
|
|
4: "PERMISSION_RECEIVE_SHARED_REPOS",
|
|
}
|
|
Multihost_Permission_Type_value = map[string]int32{
|
|
"PERMISSION_UNKNOWN": 0,
|
|
"PERMISSION_READ_OPERATIONS": 1,
|
|
"PERMISSION_READ_CONFIG": 2,
|
|
"PERMISSION_READ_WRITE_CONFIG": 3,
|
|
"PERMISSION_RECEIVE_SHARED_REPOS": 4,
|
|
}
|
|
)
|
|
|
|
func (x Multihost_Permission_Type) Enum() *Multihost_Permission_Type {
|
|
p := new(Multihost_Permission_Type)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x Multihost_Permission_Type) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (Multihost_Permission_Type) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_v1_config_proto_enumTypes[0].Descriptor()
|
|
}
|
|
|
|
func (Multihost_Permission_Type) Type() protoreflect.EnumType {
|
|
return &file_v1_config_proto_enumTypes[0]
|
|
}
|
|
|
|
func (x Multihost_Permission_Type) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use Multihost_Permission_Type.Descriptor instead.
|
|
func (Multihost_Permission_Type) EnumDescriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{1, 2, 0}
|
|
}
|
|
|
|
type CommandPrefix_IONiceLevel int32
|
|
|
|
const (
|
|
CommandPrefix_IO_DEFAULT CommandPrefix_IONiceLevel = 0
|
|
CommandPrefix_IO_BEST_EFFORT_LOW CommandPrefix_IONiceLevel = 1
|
|
CommandPrefix_IO_BEST_EFFORT_HIGH CommandPrefix_IONiceLevel = 2
|
|
CommandPrefix_IO_IDLE CommandPrefix_IONiceLevel = 3
|
|
)
|
|
|
|
// Enum value maps for CommandPrefix_IONiceLevel.
|
|
var (
|
|
CommandPrefix_IONiceLevel_name = map[int32]string{
|
|
0: "IO_DEFAULT",
|
|
1: "IO_BEST_EFFORT_LOW",
|
|
2: "IO_BEST_EFFORT_HIGH",
|
|
3: "IO_IDLE",
|
|
}
|
|
CommandPrefix_IONiceLevel_value = map[string]int32{
|
|
"IO_DEFAULT": 0,
|
|
"IO_BEST_EFFORT_LOW": 1,
|
|
"IO_BEST_EFFORT_HIGH": 2,
|
|
"IO_IDLE": 3,
|
|
}
|
|
)
|
|
|
|
func (x CommandPrefix_IONiceLevel) Enum() *CommandPrefix_IONiceLevel {
|
|
p := new(CommandPrefix_IONiceLevel)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x CommandPrefix_IONiceLevel) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (CommandPrefix_IONiceLevel) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_v1_config_proto_enumTypes[1].Descriptor()
|
|
}
|
|
|
|
func (CommandPrefix_IONiceLevel) Type() protoreflect.EnumType {
|
|
return &file_v1_config_proto_enumTypes[1]
|
|
}
|
|
|
|
func (x CommandPrefix_IONiceLevel) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use CommandPrefix_IONiceLevel.Descriptor instead.
|
|
func (CommandPrefix_IONiceLevel) EnumDescriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{4, 0}
|
|
}
|
|
|
|
type CommandPrefix_CPUNiceLevel int32
|
|
|
|
const (
|
|
CommandPrefix_CPU_DEFAULT CommandPrefix_CPUNiceLevel = 0
|
|
CommandPrefix_CPU_HIGH CommandPrefix_CPUNiceLevel = 1
|
|
CommandPrefix_CPU_LOW CommandPrefix_CPUNiceLevel = 2
|
|
)
|
|
|
|
// Enum value maps for CommandPrefix_CPUNiceLevel.
|
|
var (
|
|
CommandPrefix_CPUNiceLevel_name = map[int32]string{
|
|
0: "CPU_DEFAULT",
|
|
1: "CPU_HIGH",
|
|
2: "CPU_LOW",
|
|
}
|
|
CommandPrefix_CPUNiceLevel_value = map[string]int32{
|
|
"CPU_DEFAULT": 0,
|
|
"CPU_HIGH": 1,
|
|
"CPU_LOW": 2,
|
|
}
|
|
)
|
|
|
|
func (x CommandPrefix_CPUNiceLevel) Enum() *CommandPrefix_CPUNiceLevel {
|
|
p := new(CommandPrefix_CPUNiceLevel)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x CommandPrefix_CPUNiceLevel) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (CommandPrefix_CPUNiceLevel) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_v1_config_proto_enumTypes[2].Descriptor()
|
|
}
|
|
|
|
func (CommandPrefix_CPUNiceLevel) Type() protoreflect.EnumType {
|
|
return &file_v1_config_proto_enumTypes[2]
|
|
}
|
|
|
|
func (x CommandPrefix_CPUNiceLevel) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use CommandPrefix_CPUNiceLevel.Descriptor instead.
|
|
func (CommandPrefix_CPUNiceLevel) EnumDescriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{4, 1}
|
|
}
|
|
|
|
type Schedule_Clock int32
|
|
|
|
const (
|
|
Schedule_CLOCK_DEFAULT Schedule_Clock = 0 // same as CLOCK_LOCAL
|
|
Schedule_CLOCK_LOCAL Schedule_Clock = 1
|
|
Schedule_CLOCK_UTC Schedule_Clock = 2
|
|
Schedule_CLOCK_LAST_RUN_TIME Schedule_Clock = 3
|
|
)
|
|
|
|
// Enum value maps for Schedule_Clock.
|
|
var (
|
|
Schedule_Clock_name = map[int32]string{
|
|
0: "CLOCK_DEFAULT",
|
|
1: "CLOCK_LOCAL",
|
|
2: "CLOCK_UTC",
|
|
3: "CLOCK_LAST_RUN_TIME",
|
|
}
|
|
Schedule_Clock_value = map[string]int32{
|
|
"CLOCK_DEFAULT": 0,
|
|
"CLOCK_LOCAL": 1,
|
|
"CLOCK_UTC": 2,
|
|
"CLOCK_LAST_RUN_TIME": 3,
|
|
}
|
|
)
|
|
|
|
func (x Schedule_Clock) Enum() *Schedule_Clock {
|
|
p := new(Schedule_Clock)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x Schedule_Clock) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (Schedule_Clock) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_v1_config_proto_enumTypes[3].Descriptor()
|
|
}
|
|
|
|
func (Schedule_Clock) Type() protoreflect.EnumType {
|
|
return &file_v1_config_proto_enumTypes[3]
|
|
}
|
|
|
|
func (x Schedule_Clock) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use Schedule_Clock.Descriptor instead.
|
|
func (Schedule_Clock) EnumDescriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{9, 0}
|
|
}
|
|
|
|
type Hook_Condition int32
|
|
|
|
const (
|
|
Hook_CONDITION_UNKNOWN Hook_Condition = 0
|
|
Hook_CONDITION_ANY_ERROR Hook_Condition = 1 // error running any operation.
|
|
Hook_CONDITION_SNAPSHOT_START Hook_Condition = 2 // backup started.
|
|
Hook_CONDITION_SNAPSHOT_END Hook_Condition = 3 // backup completed (success or fail).
|
|
Hook_CONDITION_SNAPSHOT_ERROR Hook_Condition = 4 // snapshot failed.
|
|
Hook_CONDITION_SNAPSHOT_WARNING Hook_Condition = 5 // snapshot completed with warnings.
|
|
Hook_CONDITION_SNAPSHOT_SUCCESS Hook_Condition = 6 // snapshot succeeded.
|
|
Hook_CONDITION_SNAPSHOT_SKIPPED Hook_Condition = 7 // snapshot was skipped e.g. due to no changes.
|
|
// prune conditions
|
|
Hook_CONDITION_PRUNE_START Hook_Condition = 100 // prune started.
|
|
Hook_CONDITION_PRUNE_ERROR Hook_Condition = 101 // prune failed.
|
|
Hook_CONDITION_PRUNE_SUCCESS Hook_Condition = 102 // prune succeeded.
|
|
// check conditions
|
|
Hook_CONDITION_CHECK_START Hook_Condition = 200 // check started.
|
|
Hook_CONDITION_CHECK_ERROR Hook_Condition = 201 // check failed.
|
|
Hook_CONDITION_CHECK_SUCCESS Hook_Condition = 202 // check succeeded.
|
|
// forget conditions
|
|
Hook_CONDITION_FORGET_START Hook_Condition = 300 // forget started.
|
|
Hook_CONDITION_FORGET_ERROR Hook_Condition = 301 // forget failed.
|
|
Hook_CONDITION_FORGET_SUCCESS Hook_Condition = 302 // forget succeeded.
|
|
)
|
|
|
|
// Enum value maps for Hook_Condition.
|
|
var (
|
|
Hook_Condition_name = map[int32]string{
|
|
0: "CONDITION_UNKNOWN",
|
|
1: "CONDITION_ANY_ERROR",
|
|
2: "CONDITION_SNAPSHOT_START",
|
|
3: "CONDITION_SNAPSHOT_END",
|
|
4: "CONDITION_SNAPSHOT_ERROR",
|
|
5: "CONDITION_SNAPSHOT_WARNING",
|
|
6: "CONDITION_SNAPSHOT_SUCCESS",
|
|
7: "CONDITION_SNAPSHOT_SKIPPED",
|
|
100: "CONDITION_PRUNE_START",
|
|
101: "CONDITION_PRUNE_ERROR",
|
|
102: "CONDITION_PRUNE_SUCCESS",
|
|
200: "CONDITION_CHECK_START",
|
|
201: "CONDITION_CHECK_ERROR",
|
|
202: "CONDITION_CHECK_SUCCESS",
|
|
300: "CONDITION_FORGET_START",
|
|
301: "CONDITION_FORGET_ERROR",
|
|
302: "CONDITION_FORGET_SUCCESS",
|
|
}
|
|
Hook_Condition_value = map[string]int32{
|
|
"CONDITION_UNKNOWN": 0,
|
|
"CONDITION_ANY_ERROR": 1,
|
|
"CONDITION_SNAPSHOT_START": 2,
|
|
"CONDITION_SNAPSHOT_END": 3,
|
|
"CONDITION_SNAPSHOT_ERROR": 4,
|
|
"CONDITION_SNAPSHOT_WARNING": 5,
|
|
"CONDITION_SNAPSHOT_SUCCESS": 6,
|
|
"CONDITION_SNAPSHOT_SKIPPED": 7,
|
|
"CONDITION_PRUNE_START": 100,
|
|
"CONDITION_PRUNE_ERROR": 101,
|
|
"CONDITION_PRUNE_SUCCESS": 102,
|
|
"CONDITION_CHECK_START": 200,
|
|
"CONDITION_CHECK_ERROR": 201,
|
|
"CONDITION_CHECK_SUCCESS": 202,
|
|
"CONDITION_FORGET_START": 300,
|
|
"CONDITION_FORGET_ERROR": 301,
|
|
"CONDITION_FORGET_SUCCESS": 302,
|
|
}
|
|
)
|
|
|
|
func (x Hook_Condition) Enum() *Hook_Condition {
|
|
p := new(Hook_Condition)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x Hook_Condition) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (Hook_Condition) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_v1_config_proto_enumTypes[4].Descriptor()
|
|
}
|
|
|
|
func (Hook_Condition) Type() protoreflect.EnumType {
|
|
return &file_v1_config_proto_enumTypes[4]
|
|
}
|
|
|
|
func (x Hook_Condition) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_Condition.Descriptor instead.
|
|
func (Hook_Condition) EnumDescriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 0}
|
|
}
|
|
|
|
type Hook_OnError int32
|
|
|
|
const (
|
|
Hook_ON_ERROR_IGNORE Hook_OnError = 0
|
|
Hook_ON_ERROR_CANCEL Hook_OnError = 1 // cancels the operation and skips subsequent hooks
|
|
Hook_ON_ERROR_FATAL Hook_OnError = 2 // fails the operation and subsequent hooks.
|
|
Hook_ON_ERROR_RETRY_1MINUTE Hook_OnError = 100 // retry the operation every minute
|
|
Hook_ON_ERROR_RETRY_10MINUTES Hook_OnError = 101 // retry the operation every 10 minutes
|
|
Hook_ON_ERROR_RETRY_EXPONENTIAL_BACKOFF Hook_OnError = 103 // retry the operation with exponential backoff up to 1h max.
|
|
)
|
|
|
|
// Enum value maps for Hook_OnError.
|
|
var (
|
|
Hook_OnError_name = map[int32]string{
|
|
0: "ON_ERROR_IGNORE",
|
|
1: "ON_ERROR_CANCEL",
|
|
2: "ON_ERROR_FATAL",
|
|
100: "ON_ERROR_RETRY_1MINUTE",
|
|
101: "ON_ERROR_RETRY_10MINUTES",
|
|
103: "ON_ERROR_RETRY_EXPONENTIAL_BACKOFF",
|
|
}
|
|
Hook_OnError_value = map[string]int32{
|
|
"ON_ERROR_IGNORE": 0,
|
|
"ON_ERROR_CANCEL": 1,
|
|
"ON_ERROR_FATAL": 2,
|
|
"ON_ERROR_RETRY_1MINUTE": 100,
|
|
"ON_ERROR_RETRY_10MINUTES": 101,
|
|
"ON_ERROR_RETRY_EXPONENTIAL_BACKOFF": 103,
|
|
}
|
|
)
|
|
|
|
func (x Hook_OnError) Enum() *Hook_OnError {
|
|
p := new(Hook_OnError)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x Hook_OnError) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (Hook_OnError) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_v1_config_proto_enumTypes[5].Descriptor()
|
|
}
|
|
|
|
func (Hook_OnError) Type() protoreflect.EnumType {
|
|
return &file_v1_config_proto_enumTypes[5]
|
|
}
|
|
|
|
func (x Hook_OnError) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_OnError.Descriptor instead.
|
|
func (Hook_OnError) EnumDescriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 1}
|
|
}
|
|
|
|
type Hook_Webhook_Method int32
|
|
|
|
const (
|
|
Hook_Webhook_UNKNOWN Hook_Webhook_Method = 0
|
|
Hook_Webhook_GET Hook_Webhook_Method = 1
|
|
Hook_Webhook_POST Hook_Webhook_Method = 2
|
|
)
|
|
|
|
// Enum value maps for Hook_Webhook_Method.
|
|
var (
|
|
Hook_Webhook_Method_name = map[int32]string{
|
|
0: "UNKNOWN",
|
|
1: "GET",
|
|
2: "POST",
|
|
}
|
|
Hook_Webhook_Method_value = map[string]int32{
|
|
"UNKNOWN": 0,
|
|
"GET": 1,
|
|
"POST": 2,
|
|
}
|
|
)
|
|
|
|
func (x Hook_Webhook_Method) Enum() *Hook_Webhook_Method {
|
|
p := new(Hook_Webhook_Method)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x Hook_Webhook_Method) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (Hook_Webhook_Method) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_v1_config_proto_enumTypes[6].Descriptor()
|
|
}
|
|
|
|
func (Hook_Webhook_Method) Type() protoreflect.EnumType {
|
|
return &file_v1_config_proto_enumTypes[6]
|
|
}
|
|
|
|
func (x Hook_Webhook_Method) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_Webhook_Method.Descriptor instead.
|
|
func (Hook_Webhook_Method) EnumDescriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 1, 0}
|
|
}
|
|
|
|
// Config is the top level config object for restic UI.
|
|
type Config struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// modification number, used for read-modify-write consistency in the UI. Incremented on every write.
|
|
Modno int32 `protobuf:"varint,1,opt,name=modno,proto3" json:"modno,omitempty"`
|
|
Version int32 `protobuf:"varint,6,opt,name=version,proto3" json:"version,omitempty"` // version of the config file format. Used to determine when to run migrations.
|
|
// The instance name for the Backrest installation.
|
|
// This identifies backups created by this instance and is displayed in the UI.
|
|
Instance string `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"`
|
|
Repos []*Repo `protobuf:"bytes,3,rep,name=repos,proto3" json:"repos,omitempty"`
|
|
Plans []*Plan `protobuf:"bytes,4,rep,name=plans,proto3" json:"plans,omitempty"`
|
|
Auth *Auth `protobuf:"bytes,5,opt,name=auth,proto3" json:"auth,omitempty"`
|
|
Multihost *Multihost `protobuf:"bytes,7,opt,name=multihost,json=sync,proto3" json:"multihost,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Config) Reset() {
|
|
*x = Config{}
|
|
mi := &file_v1_config_proto_msgTypes[0]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Config) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Config) ProtoMessage() {}
|
|
|
|
func (x *Config) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[0]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Config.ProtoReflect.Descriptor instead.
|
|
func (*Config) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
func (x *Config) GetModno() int32 {
|
|
if x != nil {
|
|
return x.Modno
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Config) GetVersion() int32 {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Config) GetInstance() string {
|
|
if x != nil {
|
|
return x.Instance
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Config) GetRepos() []*Repo {
|
|
if x != nil {
|
|
return x.Repos
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Config) GetPlans() []*Plan {
|
|
if x != nil {
|
|
return x.Plans
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Config) GetAuth() *Auth {
|
|
if x != nil {
|
|
return x.Auth
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Config) GetMultihost() *Multihost {
|
|
if x != nil {
|
|
return x.Multihost
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type Multihost struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Identity *PrivateKey `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"`
|
|
KnownHosts []*Multihost_Peer `protobuf:"bytes,2,rep,name=known_hosts,json=knownHosts,proto3" json:"known_hosts,omitempty"`
|
|
AuthorizedClients []*Multihost_Peer `protobuf:"bytes,3,rep,name=authorized_clients,json=authorizedClients,proto3" json:"authorized_clients,omitempty"`
|
|
PairingTokens []*Multihost_PairingToken `protobuf:"bytes,4,rep,name=pairing_tokens,json=pairingTokens,proto3" json:"pairing_tokens,omitempty"` // active pairing tokens generated by this instance (server-side only)
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Multihost) Reset() {
|
|
*x = Multihost{}
|
|
mi := &file_v1_config_proto_msgTypes[1]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Multihost) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Multihost) ProtoMessage() {}
|
|
|
|
func (x *Multihost) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[1]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Multihost.ProtoReflect.Descriptor instead.
|
|
func (*Multihost) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
func (x *Multihost) GetIdentity() *PrivateKey {
|
|
if x != nil {
|
|
return x.Identity
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Multihost) GetKnownHosts() []*Multihost_Peer {
|
|
if x != nil {
|
|
return x.KnownHosts
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Multihost) GetAuthorizedClients() []*Multihost_Peer {
|
|
if x != nil {
|
|
return x.AuthorizedClients
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Multihost) GetPairingTokens() []*Multihost_PairingToken {
|
|
if x != nil {
|
|
return x.PairingTokens
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type Repo struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // unique but human readable ID for this repo.
|
|
Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` // URI of the repo.
|
|
Guid string `protobuf:"bytes,11,opt,name=guid,proto3" json:"guid,omitempty"` // a globally unique ID for this repo. Should be derived as the 'id' field in `restic cat config --json`.
|
|
Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` // plaintext password
|
|
Env []string `protobuf:"bytes,4,rep,name=env,proto3" json:"env,omitempty"` // extra environment variables to set for restic.
|
|
Flags []string `protobuf:"bytes,5,rep,name=flags,proto3" json:"flags,omitempty"` // extra flags set on the restic command.
|
|
PrunePolicy *PrunePolicy `protobuf:"bytes,6,opt,name=prune_policy,json=prunePolicy,proto3" json:"prune_policy,omitempty"` // policy for when to run prune.
|
|
CheckPolicy *CheckPolicy `protobuf:"bytes,9,opt,name=check_policy,json=checkPolicy,proto3" json:"check_policy,omitempty"` // policy for when to run check.
|
|
Hooks []*Hook `protobuf:"bytes,7,rep,name=hooks,proto3" json:"hooks,omitempty"` // hooks to run on events for this repo.
|
|
AutoUnlock bool `protobuf:"varint,8,opt,name=auto_unlock,json=autoUnlock,proto3" json:"auto_unlock,omitempty"` // automatically unlock the repo when needed.
|
|
AutoInitialize bool `protobuf:"varint,12,opt,name=auto_initialize,json=autoInitialize,proto3" json:"auto_initialize,omitempty"` // whether the repo should be auto-initialized if not found.
|
|
CommandPrefix *CommandPrefix `protobuf:"bytes,10,opt,name=command_prefix,json=commandPrefix,proto3" json:"command_prefix,omitempty"` // modifiers for the restic commands
|
|
Shared bool `protobuf:"varint,13,opt,name=shared,proto3" json:"shared,omitempty"` // if true, this repo is pushed to all authorized clients with read-config permission
|
|
OriginInstanceId string `protobuf:"bytes,14,opt,name=origin_instance_id,json=originInstanceId,proto3" json:"origin_instance_id,omitempty"` // set when this repo was pushed from a remote instance; marks it as non-editable
|
|
ForgetPolicy *ForgetPolicy `protobuf:"bytes,15,opt,name=forget_policy,json=forgetPolicy,proto3" json:"forget_policy,omitempty"` // optional repo-level forget policy. If set, overrides per-plan retention policies.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Repo) Reset() {
|
|
*x = Repo{}
|
|
mi := &file_v1_config_proto_msgTypes[2]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Repo) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Repo) ProtoMessage() {}
|
|
|
|
func (x *Repo) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[2]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Repo.ProtoReflect.Descriptor instead.
|
|
func (*Repo) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
func (x *Repo) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Repo) GetUri() string {
|
|
if x != nil {
|
|
return x.Uri
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Repo) GetGuid() string {
|
|
if x != nil {
|
|
return x.Guid
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Repo) GetPassword() string {
|
|
if x != nil {
|
|
return x.Password
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Repo) GetEnv() []string {
|
|
if x != nil {
|
|
return x.Env
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Repo) GetFlags() []string {
|
|
if x != nil {
|
|
return x.Flags
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Repo) GetPrunePolicy() *PrunePolicy {
|
|
if x != nil {
|
|
return x.PrunePolicy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Repo) GetCheckPolicy() *CheckPolicy {
|
|
if x != nil {
|
|
return x.CheckPolicy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Repo) GetHooks() []*Hook {
|
|
if x != nil {
|
|
return x.Hooks
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Repo) GetAutoUnlock() bool {
|
|
if x != nil {
|
|
return x.AutoUnlock
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Repo) GetAutoInitialize() bool {
|
|
if x != nil {
|
|
return x.AutoInitialize
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Repo) GetCommandPrefix() *CommandPrefix {
|
|
if x != nil {
|
|
return x.CommandPrefix
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Repo) GetShared() bool {
|
|
if x != nil {
|
|
return x.Shared
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Repo) GetOriginInstanceId() string {
|
|
if x != nil {
|
|
return x.OriginInstanceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Repo) GetForgetPolicy() *ForgetPolicy {
|
|
if x != nil {
|
|
return x.ForgetPolicy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type Plan struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // unique but human readable ID for this plan.
|
|
Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"` // ID of the repo to use.
|
|
Paths []string `protobuf:"bytes,4,rep,name=paths,proto3" json:"paths,omitempty"` // paths to include in the backup.
|
|
Excludes []string `protobuf:"bytes,5,rep,name=excludes,proto3" json:"excludes,omitempty"` // glob patterns to exclude.
|
|
Iexcludes []string `protobuf:"bytes,9,rep,name=iexcludes,proto3" json:"iexcludes,omitempty"` // case insensitive glob patterns to exclude.
|
|
Schedule *Schedule `protobuf:"bytes,12,opt,name=schedule,proto3" json:"schedule,omitempty"` // schedule for the backup.
|
|
Retention *RetentionPolicy `protobuf:"bytes,7,opt,name=retention,proto3" json:"retention,omitempty"` // retention policy for snapshots.
|
|
Hooks []*Hook `protobuf:"bytes,8,rep,name=hooks,proto3" json:"hooks,omitempty"` // hooks to run on events for this plan.
|
|
BackupFlags []string `protobuf:"bytes,10,rep,name=backup_flags,proto3" json:"backup_flags,omitempty"` // extra flags to set when running a backup command.
|
|
SkipIfUnchanged bool `protobuf:"varint,13,opt,name=skip_if_unchanged,json=skipIfUnchanged,proto3" json:"skip_if_unchanged,omitempty"` // skip the backup if no changes are detected.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Plan) Reset() {
|
|
*x = Plan{}
|
|
mi := &file_v1_config_proto_msgTypes[3]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Plan) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Plan) ProtoMessage() {}
|
|
|
|
func (x *Plan) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[3]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Plan.ProtoReflect.Descriptor instead.
|
|
func (*Plan) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{3}
|
|
}
|
|
|
|
func (x *Plan) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Plan) GetRepo() string {
|
|
if x != nil {
|
|
return x.Repo
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Plan) GetPaths() []string {
|
|
if x != nil {
|
|
return x.Paths
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Plan) GetExcludes() []string {
|
|
if x != nil {
|
|
return x.Excludes
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Plan) GetIexcludes() []string {
|
|
if x != nil {
|
|
return x.Iexcludes
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Plan) GetSchedule() *Schedule {
|
|
if x != nil {
|
|
return x.Schedule
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Plan) GetRetention() *RetentionPolicy {
|
|
if x != nil {
|
|
return x.Retention
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Plan) GetHooks() []*Hook {
|
|
if x != nil {
|
|
return x.Hooks
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Plan) GetBackupFlags() []string {
|
|
if x != nil {
|
|
return x.BackupFlags
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Plan) GetSkipIfUnchanged() bool {
|
|
if x != nil {
|
|
return x.SkipIfUnchanged
|
|
}
|
|
return false
|
|
}
|
|
|
|
type CommandPrefix struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
IoNice CommandPrefix_IONiceLevel `protobuf:"varint,1,opt,name=io_nice,json=ioNice,proto3,enum=v1.CommandPrefix_IONiceLevel" json:"io_nice,omitempty"` // ionice level to set.
|
|
CpuNice CommandPrefix_CPUNiceLevel `protobuf:"varint,2,opt,name=cpu_nice,json=cpuNice,proto3,enum=v1.CommandPrefix_CPUNiceLevel" json:"cpu_nice,omitempty"` // nice level to set.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *CommandPrefix) Reset() {
|
|
*x = CommandPrefix{}
|
|
mi := &file_v1_config_proto_msgTypes[4]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *CommandPrefix) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CommandPrefix) ProtoMessage() {}
|
|
|
|
func (x *CommandPrefix) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[4]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use CommandPrefix.ProtoReflect.Descriptor instead.
|
|
func (*CommandPrefix) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{4}
|
|
}
|
|
|
|
func (x *CommandPrefix) GetIoNice() CommandPrefix_IONiceLevel {
|
|
if x != nil {
|
|
return x.IoNice
|
|
}
|
|
return CommandPrefix_IO_DEFAULT
|
|
}
|
|
|
|
func (x *CommandPrefix) GetCpuNice() CommandPrefix_CPUNiceLevel {
|
|
if x != nil {
|
|
return x.CpuNice
|
|
}
|
|
return CommandPrefix_CPU_DEFAULT
|
|
}
|
|
|
|
type RetentionPolicy struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Types that are valid to be assigned to Policy:
|
|
//
|
|
// *RetentionPolicy_PolicyKeepLastN
|
|
// *RetentionPolicy_PolicyTimeBucketed
|
|
// *RetentionPolicy_PolicyKeepAll
|
|
Policy isRetentionPolicy_Policy `protobuf_oneof:"policy"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *RetentionPolicy) Reset() {
|
|
*x = RetentionPolicy{}
|
|
mi := &file_v1_config_proto_msgTypes[5]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *RetentionPolicy) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*RetentionPolicy) ProtoMessage() {}
|
|
|
|
func (x *RetentionPolicy) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[5]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use RetentionPolicy.ProtoReflect.Descriptor instead.
|
|
func (*RetentionPolicy) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{5}
|
|
}
|
|
|
|
func (x *RetentionPolicy) GetPolicy() isRetentionPolicy_Policy {
|
|
if x != nil {
|
|
return x.Policy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *RetentionPolicy) GetPolicyKeepLastN() int32 {
|
|
if x != nil {
|
|
if x, ok := x.Policy.(*RetentionPolicy_PolicyKeepLastN); ok {
|
|
return x.PolicyKeepLastN
|
|
}
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *RetentionPolicy) GetPolicyTimeBucketed() *RetentionPolicy_TimeBucketedCounts {
|
|
if x != nil {
|
|
if x, ok := x.Policy.(*RetentionPolicy_PolicyTimeBucketed); ok {
|
|
return x.PolicyTimeBucketed
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *RetentionPolicy) GetPolicyKeepAll() bool {
|
|
if x != nil {
|
|
if x, ok := x.Policy.(*RetentionPolicy_PolicyKeepAll); ok {
|
|
return x.PolicyKeepAll
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
type isRetentionPolicy_Policy interface {
|
|
isRetentionPolicy_Policy()
|
|
}
|
|
|
|
type RetentionPolicy_PolicyKeepLastN struct {
|
|
PolicyKeepLastN int32 `protobuf:"varint,10,opt,name=policy_keep_last_n,json=policyKeepLastN,proto3,oneof"`
|
|
}
|
|
|
|
type RetentionPolicy_PolicyTimeBucketed struct {
|
|
PolicyTimeBucketed *RetentionPolicy_TimeBucketedCounts `protobuf:"bytes,11,opt,name=policy_time_bucketed,json=policyTimeBucketed,proto3,oneof"`
|
|
}
|
|
|
|
type RetentionPolicy_PolicyKeepAll struct {
|
|
PolicyKeepAll bool `protobuf:"varint,12,opt,name=policy_keep_all,json=policyKeepAll,proto3,oneof"`
|
|
}
|
|
|
|
func (*RetentionPolicy_PolicyKeepLastN) isRetentionPolicy_Policy() {}
|
|
|
|
func (*RetentionPolicy_PolicyTimeBucketed) isRetentionPolicy_Policy() {}
|
|
|
|
func (*RetentionPolicy_PolicyKeepAll) isRetentionPolicy_Policy() {}
|
|
|
|
type ForgetPolicy struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Schedule *Schedule `protobuf:"bytes,1,opt,name=schedule,proto3" json:"schedule,omitempty"`
|
|
Retention *RetentionPolicy `protobuf:"bytes,2,opt,name=retention,proto3" json:"retention,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ForgetPolicy) Reset() {
|
|
*x = ForgetPolicy{}
|
|
mi := &file_v1_config_proto_msgTypes[6]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ForgetPolicy) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ForgetPolicy) ProtoMessage() {}
|
|
|
|
func (x *ForgetPolicy) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[6]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use ForgetPolicy.ProtoReflect.Descriptor instead.
|
|
func (*ForgetPolicy) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{6}
|
|
}
|
|
|
|
func (x *ForgetPolicy) GetSchedule() *Schedule {
|
|
if x != nil {
|
|
return x.Schedule
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *ForgetPolicy) GetRetention() *RetentionPolicy {
|
|
if x != nil {
|
|
return x.Retention
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type PrunePolicy struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Schedule *Schedule `protobuf:"bytes,2,opt,name=schedule,proto3" json:"schedule,omitempty"`
|
|
MaxUnusedBytes int64 `protobuf:"varint,3,opt,name=max_unused_bytes,json=maxUnusedBytes,proto3" json:"max_unused_bytes,omitempty"` // max unused bytes before running prune.
|
|
MaxUnusedPercent float64 `protobuf:"fixed64,4,opt,name=max_unused_percent,json=maxUnusedPercent,proto3" json:"max_unused_percent,omitempty"` // max unused percent before running prune.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *PrunePolicy) Reset() {
|
|
*x = PrunePolicy{}
|
|
mi := &file_v1_config_proto_msgTypes[7]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *PrunePolicy) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*PrunePolicy) ProtoMessage() {}
|
|
|
|
func (x *PrunePolicy) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[7]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use PrunePolicy.ProtoReflect.Descriptor instead.
|
|
func (*PrunePolicy) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{7}
|
|
}
|
|
|
|
func (x *PrunePolicy) GetSchedule() *Schedule {
|
|
if x != nil {
|
|
return x.Schedule
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PrunePolicy) GetMaxUnusedBytes() int64 {
|
|
if x != nil {
|
|
return x.MaxUnusedBytes
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *PrunePolicy) GetMaxUnusedPercent() float64 {
|
|
if x != nil {
|
|
return x.MaxUnusedPercent
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type CheckPolicy struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Schedule *Schedule `protobuf:"bytes,1,opt,name=schedule,proto3" json:"schedule,omitempty"`
|
|
// Types that are valid to be assigned to Mode:
|
|
//
|
|
// *CheckPolicy_StructureOnly
|
|
// *CheckPolicy_ReadDataSubsetPercent
|
|
Mode isCheckPolicy_Mode `protobuf_oneof:"mode"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *CheckPolicy) Reset() {
|
|
*x = CheckPolicy{}
|
|
mi := &file_v1_config_proto_msgTypes[8]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *CheckPolicy) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CheckPolicy) ProtoMessage() {}
|
|
|
|
func (x *CheckPolicy) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[8]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use CheckPolicy.ProtoReflect.Descriptor instead.
|
|
func (*CheckPolicy) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{8}
|
|
}
|
|
|
|
func (x *CheckPolicy) GetSchedule() *Schedule {
|
|
if x != nil {
|
|
return x.Schedule
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *CheckPolicy) GetMode() isCheckPolicy_Mode {
|
|
if x != nil {
|
|
return x.Mode
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *CheckPolicy) GetStructureOnly() bool {
|
|
if x != nil {
|
|
if x, ok := x.Mode.(*CheckPolicy_StructureOnly); ok {
|
|
return x.StructureOnly
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *CheckPolicy) GetReadDataSubsetPercent() float64 {
|
|
if x != nil {
|
|
if x, ok := x.Mode.(*CheckPolicy_ReadDataSubsetPercent); ok {
|
|
return x.ReadDataSubsetPercent
|
|
}
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type isCheckPolicy_Mode interface {
|
|
isCheckPolicy_Mode()
|
|
}
|
|
|
|
type CheckPolicy_StructureOnly struct {
|
|
StructureOnly bool `protobuf:"varint,100,opt,name=structure_only,json=structureOnly,proto3,oneof"` // only check the structure of the repo. No pack data is read.
|
|
}
|
|
|
|
type CheckPolicy_ReadDataSubsetPercent struct {
|
|
ReadDataSubsetPercent float64 `protobuf:"fixed64,101,opt,name=read_data_subset_percent,json=readDataSubsetPercent,proto3,oneof"` // check a percentage of pack data.
|
|
}
|
|
|
|
func (*CheckPolicy_StructureOnly) isCheckPolicy_Mode() {}
|
|
|
|
func (*CheckPolicy_ReadDataSubsetPercent) isCheckPolicy_Mode() {}
|
|
|
|
type Schedule struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Types that are valid to be assigned to Schedule:
|
|
//
|
|
// *Schedule_Disabled
|
|
// *Schedule_Cron
|
|
// *Schedule_MaxFrequencyDays
|
|
// *Schedule_MaxFrequencyHours
|
|
Schedule isSchedule_Schedule `protobuf_oneof:"schedule"`
|
|
Clock Schedule_Clock `protobuf:"varint,5,opt,name=clock,proto3,enum=v1.Schedule_Clock" json:"clock,omitempty"` // clock to use for scheduling.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Schedule) Reset() {
|
|
*x = Schedule{}
|
|
mi := &file_v1_config_proto_msgTypes[9]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Schedule) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Schedule) ProtoMessage() {}
|
|
|
|
func (x *Schedule) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[9]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Schedule.ProtoReflect.Descriptor instead.
|
|
func (*Schedule) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{9}
|
|
}
|
|
|
|
func (x *Schedule) GetSchedule() isSchedule_Schedule {
|
|
if x != nil {
|
|
return x.Schedule
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Schedule) GetDisabled() bool {
|
|
if x != nil {
|
|
if x, ok := x.Schedule.(*Schedule_Disabled); ok {
|
|
return x.Disabled
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Schedule) GetCron() string {
|
|
if x != nil {
|
|
if x, ok := x.Schedule.(*Schedule_Cron); ok {
|
|
return x.Cron
|
|
}
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Schedule) GetMaxFrequencyDays() int32 {
|
|
if x != nil {
|
|
if x, ok := x.Schedule.(*Schedule_MaxFrequencyDays); ok {
|
|
return x.MaxFrequencyDays
|
|
}
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Schedule) GetMaxFrequencyHours() int32 {
|
|
if x != nil {
|
|
if x, ok := x.Schedule.(*Schedule_MaxFrequencyHours); ok {
|
|
return x.MaxFrequencyHours
|
|
}
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Schedule) GetClock() Schedule_Clock {
|
|
if x != nil {
|
|
return x.Clock
|
|
}
|
|
return Schedule_CLOCK_DEFAULT
|
|
}
|
|
|
|
type isSchedule_Schedule interface {
|
|
isSchedule_Schedule()
|
|
}
|
|
|
|
type Schedule_Disabled struct {
|
|
Disabled bool `protobuf:"varint,1,opt,name=disabled,proto3,oneof"` // disable the schedule.
|
|
}
|
|
|
|
type Schedule_Cron struct {
|
|
Cron string `protobuf:"bytes,2,opt,name=cron,proto3,oneof"` // cron expression describing the schedule.
|
|
}
|
|
|
|
type Schedule_MaxFrequencyDays struct {
|
|
MaxFrequencyDays int32 `protobuf:"varint,3,opt,name=maxFrequencyDays,proto3,oneof"` // max frequency of runs in days.
|
|
}
|
|
|
|
type Schedule_MaxFrequencyHours struct {
|
|
MaxFrequencyHours int32 `protobuf:"varint,4,opt,name=maxFrequencyHours,proto3,oneof"` // max frequency of runs in hours.
|
|
}
|
|
|
|
func (*Schedule_Disabled) isSchedule_Schedule() {}
|
|
|
|
func (*Schedule_Cron) isSchedule_Schedule() {}
|
|
|
|
func (*Schedule_MaxFrequencyDays) isSchedule_Schedule() {}
|
|
|
|
func (*Schedule_MaxFrequencyHours) isSchedule_Schedule() {}
|
|
|
|
type Hook struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Conditions []Hook_Condition `protobuf:"varint,1,rep,packed,name=conditions,proto3,enum=v1.Hook_Condition" json:"conditions,omitempty"`
|
|
OnError Hook_OnError `protobuf:"varint,2,opt,name=on_error,json=onError,proto3,enum=v1.Hook_OnError" json:"on_error,omitempty"`
|
|
// Types that are valid to be assigned to Action:
|
|
//
|
|
// *Hook_ActionCommand
|
|
// *Hook_ActionWebhook
|
|
// *Hook_ActionDiscord
|
|
// *Hook_ActionGotify
|
|
// *Hook_ActionSlack
|
|
// *Hook_ActionShoutrrr
|
|
// *Hook_ActionHealthchecks
|
|
// *Hook_ActionTelegram
|
|
Action isHook_Action `protobuf_oneof:"action"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Hook) Reset() {
|
|
*x = Hook{}
|
|
mi := &file_v1_config_proto_msgTypes[10]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Hook) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Hook) ProtoMessage() {}
|
|
|
|
func (x *Hook) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[10]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook.ProtoReflect.Descriptor instead.
|
|
func (*Hook) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10}
|
|
}
|
|
|
|
func (x *Hook) GetConditions() []Hook_Condition {
|
|
if x != nil {
|
|
return x.Conditions
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Hook) GetOnError() Hook_OnError {
|
|
if x != nil {
|
|
return x.OnError
|
|
}
|
|
return Hook_ON_ERROR_IGNORE
|
|
}
|
|
|
|
func (x *Hook) GetAction() isHook_Action {
|
|
if x != nil {
|
|
return x.Action
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Hook) GetActionCommand() *Hook_Command {
|
|
if x != nil {
|
|
if x, ok := x.Action.(*Hook_ActionCommand); ok {
|
|
return x.ActionCommand
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Hook) GetActionWebhook() *Hook_Webhook {
|
|
if x != nil {
|
|
if x, ok := x.Action.(*Hook_ActionWebhook); ok {
|
|
return x.ActionWebhook
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Hook) GetActionDiscord() *Hook_Discord {
|
|
if x != nil {
|
|
if x, ok := x.Action.(*Hook_ActionDiscord); ok {
|
|
return x.ActionDiscord
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Hook) GetActionGotify() *Hook_Gotify {
|
|
if x != nil {
|
|
if x, ok := x.Action.(*Hook_ActionGotify); ok {
|
|
return x.ActionGotify
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Hook) GetActionSlack() *Hook_Slack {
|
|
if x != nil {
|
|
if x, ok := x.Action.(*Hook_ActionSlack); ok {
|
|
return x.ActionSlack
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Hook) GetActionShoutrrr() *Hook_Shoutrrr {
|
|
if x != nil {
|
|
if x, ok := x.Action.(*Hook_ActionShoutrrr); ok {
|
|
return x.ActionShoutrrr
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Hook) GetActionHealthchecks() *Hook_Healthchecks {
|
|
if x != nil {
|
|
if x, ok := x.Action.(*Hook_ActionHealthchecks); ok {
|
|
return x.ActionHealthchecks
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Hook) GetActionTelegram() *Hook_Telegram {
|
|
if x != nil {
|
|
if x, ok := x.Action.(*Hook_ActionTelegram); ok {
|
|
return x.ActionTelegram
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isHook_Action interface {
|
|
isHook_Action()
|
|
}
|
|
|
|
type Hook_ActionCommand struct {
|
|
ActionCommand *Hook_Command `protobuf:"bytes,100,opt,name=action_command,json=actionCommand,proto3,oneof"`
|
|
}
|
|
|
|
type Hook_ActionWebhook struct {
|
|
ActionWebhook *Hook_Webhook `protobuf:"bytes,101,opt,name=action_webhook,json=actionWebhook,proto3,oneof"`
|
|
}
|
|
|
|
type Hook_ActionDiscord struct {
|
|
ActionDiscord *Hook_Discord `protobuf:"bytes,102,opt,name=action_discord,json=actionDiscord,proto3,oneof"`
|
|
}
|
|
|
|
type Hook_ActionGotify struct {
|
|
ActionGotify *Hook_Gotify `protobuf:"bytes,103,opt,name=action_gotify,json=actionGotify,proto3,oneof"`
|
|
}
|
|
|
|
type Hook_ActionSlack struct {
|
|
ActionSlack *Hook_Slack `protobuf:"bytes,104,opt,name=action_slack,json=actionSlack,proto3,oneof"`
|
|
}
|
|
|
|
type Hook_ActionShoutrrr struct {
|
|
ActionShoutrrr *Hook_Shoutrrr `protobuf:"bytes,105,opt,name=action_shoutrrr,json=actionShoutrrr,proto3,oneof"`
|
|
}
|
|
|
|
type Hook_ActionHealthchecks struct {
|
|
ActionHealthchecks *Hook_Healthchecks `protobuf:"bytes,106,opt,name=action_healthchecks,json=actionHealthchecks,proto3,oneof"`
|
|
}
|
|
|
|
type Hook_ActionTelegram struct {
|
|
ActionTelegram *Hook_Telegram `protobuf:"bytes,107,opt,name=action_telegram,json=actionTelegram,proto3,oneof"`
|
|
}
|
|
|
|
func (*Hook_ActionCommand) isHook_Action() {}
|
|
|
|
func (*Hook_ActionWebhook) isHook_Action() {}
|
|
|
|
func (*Hook_ActionDiscord) isHook_Action() {}
|
|
|
|
func (*Hook_ActionGotify) isHook_Action() {}
|
|
|
|
func (*Hook_ActionSlack) isHook_Action() {}
|
|
|
|
func (*Hook_ActionShoutrrr) isHook_Action() {}
|
|
|
|
func (*Hook_ActionHealthchecks) isHook_Action() {}
|
|
|
|
func (*Hook_ActionTelegram) isHook_Action() {}
|
|
|
|
type Auth struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Disabled bool `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"` // disable authentication.
|
|
Users []*User `protobuf:"bytes,2,rep,name=users,proto3" json:"users,omitempty"` // users to allow access to the UI.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Auth) Reset() {
|
|
*x = Auth{}
|
|
mi := &file_v1_config_proto_msgTypes[11]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Auth) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Auth) ProtoMessage() {}
|
|
|
|
func (x *Auth) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[11]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Auth.ProtoReflect.Descriptor instead.
|
|
func (*Auth) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{11}
|
|
}
|
|
|
|
func (x *Auth) GetDisabled() bool {
|
|
if x != nil {
|
|
return x.Disabled
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Auth) GetUsers() []*User {
|
|
if x != nil {
|
|
return x.Users
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type User struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
|
// Types that are valid to be assigned to Password:
|
|
//
|
|
// *User_PasswordBcrypt
|
|
Password isUser_Password `protobuf_oneof:"password"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *User) Reset() {
|
|
*x = User{}
|
|
mi := &file_v1_config_proto_msgTypes[12]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *User) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*User) ProtoMessage() {}
|
|
|
|
func (x *User) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[12]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use User.ProtoReflect.Descriptor instead.
|
|
func (*User) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{12}
|
|
}
|
|
|
|
func (x *User) GetName() string {
|
|
if x != nil {
|
|
return x.Name
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *User) GetPassword() isUser_Password {
|
|
if x != nil {
|
|
return x.Password
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *User) GetPasswordBcrypt() string {
|
|
if x != nil {
|
|
if x, ok := x.Password.(*User_PasswordBcrypt); ok {
|
|
return x.PasswordBcrypt
|
|
}
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type isUser_Password interface {
|
|
isUser_Password()
|
|
}
|
|
|
|
type User_PasswordBcrypt struct {
|
|
PasswordBcrypt string `protobuf:"bytes,2,opt,name=password_bcrypt,json=passwordBcrypt,proto3,oneof"`
|
|
}
|
|
|
|
func (*User_PasswordBcrypt) isUser_Password() {}
|
|
|
|
type Multihost_Peer struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
InstanceId string `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` // a human readable name for the peer, typically the same as its instance ID.
|
|
Keyid string `protobuf:"bytes,2,opt,name=keyid,json=keyId,proto3" json:"keyid,omitempty"` // the key ID of the peer. This must match the sha256 of the public key the client provides in handshake.
|
|
Permissions []*Multihost_Permission `protobuf:"bytes,5,rep,name=permissions,proto3" json:"permissions,omitempty"` // permissions granted to this peer.
|
|
// Known host only fields
|
|
InstanceUrl string `protobuf:"bytes,4,opt,name=instance_url,json=instanceUrl,proto3" json:"instance_url,omitempty"` // instance URL, required for a known host. Otherwise meaningless.
|
|
InitialPairingSecret string `protobuf:"bytes,6,opt,name=initial_pairing_secret,json=initialPairingSecret,proto3" json:"initial_pairing_secret,omitempty"` // one-time pairing secret sent during first handshake to auto-authorize with the server. Cleared after successful pairing.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Multihost_Peer) Reset() {
|
|
*x = Multihost_Peer{}
|
|
mi := &file_v1_config_proto_msgTypes[13]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Multihost_Peer) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Multihost_Peer) ProtoMessage() {}
|
|
|
|
func (x *Multihost_Peer) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[13]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Multihost_Peer.ProtoReflect.Descriptor instead.
|
|
func (*Multihost_Peer) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{1, 0}
|
|
}
|
|
|
|
func (x *Multihost_Peer) GetInstanceId() string {
|
|
if x != nil {
|
|
return x.InstanceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Multihost_Peer) GetKeyid() string {
|
|
if x != nil {
|
|
return x.Keyid
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Multihost_Peer) GetPermissions() []*Multihost_Permission {
|
|
if x != nil {
|
|
return x.Permissions
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *Multihost_Peer) GetInstanceUrl() string {
|
|
if x != nil {
|
|
return x.InstanceUrl
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Multihost_Peer) GetInitialPairingSecret() string {
|
|
if x != nil {
|
|
return x.InitialPairingSecret
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Multihost_PairingToken struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Secret string `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"` // the one-time secret used to validate the pairing request
|
|
Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` // human-readable label for this token
|
|
CreatedAtUnix int64 `protobuf:"varint,3,opt,name=created_at_unix,json=createdAtUnix,proto3" json:"created_at_unix,omitempty"` // unix timestamp when the token was created
|
|
ExpiresAtUnix int64 `protobuf:"varint,4,opt,name=expires_at_unix,json=expiresAtUnix,proto3" json:"expires_at_unix,omitempty"` // unix timestamp when the token expires
|
|
MaxUses int32 `protobuf:"varint,5,opt,name=max_uses,json=maxUses,proto3" json:"max_uses,omitempty"` // maximum number of clients that can pair with this token, 0 means unlimited
|
|
Uses int32 `protobuf:"varint,6,opt,name=uses,proto3" json:"uses,omitempty"` // number of times this token has been used
|
|
Permissions []*Multihost_Permission `protobuf:"bytes,7,rep,name=permissions,proto3" json:"permissions,omitempty"` // permissions granted to clients that pair with this token
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Multihost_PairingToken) Reset() {
|
|
*x = Multihost_PairingToken{}
|
|
mi := &file_v1_config_proto_msgTypes[14]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Multihost_PairingToken) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Multihost_PairingToken) ProtoMessage() {}
|
|
|
|
func (x *Multihost_PairingToken) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[14]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Multihost_PairingToken.ProtoReflect.Descriptor instead.
|
|
func (*Multihost_PairingToken) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{1, 1}
|
|
}
|
|
|
|
func (x *Multihost_PairingToken) GetSecret() string {
|
|
if x != nil {
|
|
return x.Secret
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Multihost_PairingToken) GetLabel() string {
|
|
if x != nil {
|
|
return x.Label
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Multihost_PairingToken) GetCreatedAtUnix() int64 {
|
|
if x != nil {
|
|
return x.CreatedAtUnix
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Multihost_PairingToken) GetExpiresAtUnix() int64 {
|
|
if x != nil {
|
|
return x.ExpiresAtUnix
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Multihost_PairingToken) GetMaxUses() int32 {
|
|
if x != nil {
|
|
return x.MaxUses
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Multihost_PairingToken) GetUses() int32 {
|
|
if x != nil {
|
|
return x.Uses
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Multihost_PairingToken) GetPermissions() []*Multihost_Permission {
|
|
if x != nil {
|
|
return x.Permissions
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type Multihost_Permission struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Scopes are any of '*', 'repo:<repo_id>' or 'plan:<plan_id>','-repo:<repo_id>','-plan:<plan_id>'.
|
|
// '*' means all repos and plans, 'repo:<repo_id>' means the repo with the given ID, 'plan:<plan_id>' means the plan with the given ID.
|
|
// '!repo:<repo_id>' means all repos except the one with the given ID, '!plan:<plan_id>' means all plans except the one with the given ID.
|
|
Type Multihost_Permission_Type `protobuf:"varint,1,opt,name=type,proto3,enum=v1.Multihost_Permission_Type" json:"type,omitempty"`
|
|
Scopes []string `protobuf:"bytes,2,rep,name=scopes,proto3" json:"scopes,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Multihost_Permission) Reset() {
|
|
*x = Multihost_Permission{}
|
|
mi := &file_v1_config_proto_msgTypes[15]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Multihost_Permission) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Multihost_Permission) ProtoMessage() {}
|
|
|
|
func (x *Multihost_Permission) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[15]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Multihost_Permission.ProtoReflect.Descriptor instead.
|
|
func (*Multihost_Permission) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{1, 2}
|
|
}
|
|
|
|
func (x *Multihost_Permission) GetType() Multihost_Permission_Type {
|
|
if x != nil {
|
|
return x.Type
|
|
}
|
|
return Multihost_Permission_PERMISSION_UNKNOWN
|
|
}
|
|
|
|
func (x *Multihost_Permission) GetScopes() []string {
|
|
if x != nil {
|
|
return x.Scopes
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type RetentionPolicy_TimeBucketedCounts struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Hourly int32 `protobuf:"varint,1,opt,name=hourly,proto3" json:"hourly,omitempty"` // keep the last n hourly snapshots.
|
|
Daily int32 `protobuf:"varint,2,opt,name=daily,proto3" json:"daily,omitempty"` // keep the last n daily snapshots.
|
|
Weekly int32 `protobuf:"varint,3,opt,name=weekly,proto3" json:"weekly,omitempty"` // keep the last n weekly snapshots.
|
|
Monthly int32 `protobuf:"varint,4,opt,name=monthly,proto3" json:"monthly,omitempty"` // keep the last n monthly snapshots.
|
|
Yearly int32 `protobuf:"varint,5,opt,name=yearly,proto3" json:"yearly,omitempty"` // keep the last n yearly snapshots.
|
|
KeepLastN int32 `protobuf:"varint,6,opt,name=keep_last_n,json=keepLastN,proto3" json:"keep_last_n,omitempty"` // keep the last n snapshots regardless of age.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *RetentionPolicy_TimeBucketedCounts) Reset() {
|
|
*x = RetentionPolicy_TimeBucketedCounts{}
|
|
mi := &file_v1_config_proto_msgTypes[16]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *RetentionPolicy_TimeBucketedCounts) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*RetentionPolicy_TimeBucketedCounts) ProtoMessage() {}
|
|
|
|
func (x *RetentionPolicy_TimeBucketedCounts) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[16]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use RetentionPolicy_TimeBucketedCounts.ProtoReflect.Descriptor instead.
|
|
func (*RetentionPolicy_TimeBucketedCounts) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{5, 0}
|
|
}
|
|
|
|
func (x *RetentionPolicy_TimeBucketedCounts) GetHourly() int32 {
|
|
if x != nil {
|
|
return x.Hourly
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *RetentionPolicy_TimeBucketedCounts) GetDaily() int32 {
|
|
if x != nil {
|
|
return x.Daily
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *RetentionPolicy_TimeBucketedCounts) GetWeekly() int32 {
|
|
if x != nil {
|
|
return x.Weekly
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *RetentionPolicy_TimeBucketedCounts) GetMonthly() int32 {
|
|
if x != nil {
|
|
return x.Monthly
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *RetentionPolicy_TimeBucketedCounts) GetYearly() int32 {
|
|
if x != nil {
|
|
return x.Yearly
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *RetentionPolicy_TimeBucketedCounts) GetKeepLastN() int32 {
|
|
if x != nil {
|
|
return x.KeepLastN
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type Hook_Command struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Command string `protobuf:"bytes,1,opt,name=command,proto3" json:"command,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Hook_Command) Reset() {
|
|
*x = Hook_Command{}
|
|
mi := &file_v1_config_proto_msgTypes[17]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Hook_Command) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Hook_Command) ProtoMessage() {}
|
|
|
|
func (x *Hook_Command) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[17]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_Command.ProtoReflect.Descriptor instead.
|
|
func (*Hook_Command) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 0}
|
|
}
|
|
|
|
func (x *Hook_Command) GetCommand() string {
|
|
if x != nil {
|
|
return x.Command
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Hook_Webhook struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
WebhookUrl string `protobuf:"bytes,1,opt,name=webhook_url,json=webhookUrl,proto3" json:"webhook_url,omitempty"`
|
|
Method Hook_Webhook_Method `protobuf:"varint,2,opt,name=method,proto3,enum=v1.Hook_Webhook_Method" json:"method,omitempty"`
|
|
Template string `protobuf:"bytes,100,opt,name=template,proto3" json:"template,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Hook_Webhook) Reset() {
|
|
*x = Hook_Webhook{}
|
|
mi := &file_v1_config_proto_msgTypes[18]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Hook_Webhook) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Hook_Webhook) ProtoMessage() {}
|
|
|
|
func (x *Hook_Webhook) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[18]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_Webhook.ProtoReflect.Descriptor instead.
|
|
func (*Hook_Webhook) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 1}
|
|
}
|
|
|
|
func (x *Hook_Webhook) GetWebhookUrl() string {
|
|
if x != nil {
|
|
return x.WebhookUrl
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Webhook) GetMethod() Hook_Webhook_Method {
|
|
if x != nil {
|
|
return x.Method
|
|
}
|
|
return Hook_Webhook_UNKNOWN
|
|
}
|
|
|
|
func (x *Hook_Webhook) GetTemplate() string {
|
|
if x != nil {
|
|
return x.Template
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Hook_Discord struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
WebhookUrl string `protobuf:"bytes,1,opt,name=webhook_url,json=webhookUrl,proto3" json:"webhook_url,omitempty"`
|
|
Template string `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"` // template for the webhook payload.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Hook_Discord) Reset() {
|
|
*x = Hook_Discord{}
|
|
mi := &file_v1_config_proto_msgTypes[19]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Hook_Discord) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Hook_Discord) ProtoMessage() {}
|
|
|
|
func (x *Hook_Discord) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[19]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_Discord.ProtoReflect.Descriptor instead.
|
|
func (*Hook_Discord) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 2}
|
|
}
|
|
|
|
func (x *Hook_Discord) GetWebhookUrl() string {
|
|
if x != nil {
|
|
return x.WebhookUrl
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Discord) GetTemplate() string {
|
|
if x != nil {
|
|
return x.Template
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Hook_Gotify struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
BaseUrl string `protobuf:"bytes,1,opt,name=base_url,json=baseUrl,proto3" json:"base_url,omitempty"`
|
|
Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"`
|
|
Template string `protobuf:"bytes,100,opt,name=template,proto3" json:"template,omitempty"` // template for the webhook payload.
|
|
TitleTemplate string `protobuf:"bytes,101,opt,name=title_template,json=titleTemplate,proto3" json:"title_template,omitempty"` // template for the webhook title.
|
|
Priority int32 `protobuf:"varint,102,opt,name=priority,proto3" json:"priority,omitempty"` // priority level for the notification (1-10)
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Hook_Gotify) Reset() {
|
|
*x = Hook_Gotify{}
|
|
mi := &file_v1_config_proto_msgTypes[20]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Hook_Gotify) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Hook_Gotify) ProtoMessage() {}
|
|
|
|
func (x *Hook_Gotify) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[20]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_Gotify.ProtoReflect.Descriptor instead.
|
|
func (*Hook_Gotify) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 3}
|
|
}
|
|
|
|
func (x *Hook_Gotify) GetBaseUrl() string {
|
|
if x != nil {
|
|
return x.BaseUrl
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Gotify) GetToken() string {
|
|
if x != nil {
|
|
return x.Token
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Gotify) GetTemplate() string {
|
|
if x != nil {
|
|
return x.Template
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Gotify) GetTitleTemplate() string {
|
|
if x != nil {
|
|
return x.TitleTemplate
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Gotify) GetPriority() int32 {
|
|
if x != nil {
|
|
return x.Priority
|
|
}
|
|
return 0
|
|
}
|
|
|
|
type Hook_Slack struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
WebhookUrl string `protobuf:"bytes,1,opt,name=webhook_url,json=webhookUrl,proto3" json:"webhook_url,omitempty"`
|
|
Template string `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"` // template for the webhook payload.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Hook_Slack) Reset() {
|
|
*x = Hook_Slack{}
|
|
mi := &file_v1_config_proto_msgTypes[21]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Hook_Slack) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Hook_Slack) ProtoMessage() {}
|
|
|
|
func (x *Hook_Slack) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[21]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_Slack.ProtoReflect.Descriptor instead.
|
|
func (*Hook_Slack) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 4}
|
|
}
|
|
|
|
func (x *Hook_Slack) GetWebhookUrl() string {
|
|
if x != nil {
|
|
return x.WebhookUrl
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Slack) GetTemplate() string {
|
|
if x != nil {
|
|
return x.Template
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Hook_Shoutrrr struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
ShoutrrrUrl string `protobuf:"bytes,1,opt,name=shoutrrr_url,json=shoutrrrUrl,proto3" json:"shoutrrr_url,omitempty"`
|
|
Template string `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Hook_Shoutrrr) Reset() {
|
|
*x = Hook_Shoutrrr{}
|
|
mi := &file_v1_config_proto_msgTypes[22]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Hook_Shoutrrr) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Hook_Shoutrrr) ProtoMessage() {}
|
|
|
|
func (x *Hook_Shoutrrr) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[22]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_Shoutrrr.ProtoReflect.Descriptor instead.
|
|
func (*Hook_Shoutrrr) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 5}
|
|
}
|
|
|
|
func (x *Hook_Shoutrrr) GetShoutrrrUrl() string {
|
|
if x != nil {
|
|
return x.ShoutrrrUrl
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Shoutrrr) GetTemplate() string {
|
|
if x != nil {
|
|
return x.Template
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Hook_Healthchecks struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
WebhookUrl string `protobuf:"bytes,1,opt,name=webhook_url,json=webhookUrl,proto3" json:"webhook_url,omitempty"`
|
|
Template string `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Hook_Healthchecks) Reset() {
|
|
*x = Hook_Healthchecks{}
|
|
mi := &file_v1_config_proto_msgTypes[23]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Hook_Healthchecks) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Hook_Healthchecks) ProtoMessage() {}
|
|
|
|
func (x *Hook_Healthchecks) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[23]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_Healthchecks.ProtoReflect.Descriptor instead.
|
|
func (*Hook_Healthchecks) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 6}
|
|
}
|
|
|
|
func (x *Hook_Healthchecks) GetWebhookUrl() string {
|
|
if x != nil {
|
|
return x.WebhookUrl
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Healthchecks) GetTemplate() string {
|
|
if x != nil {
|
|
return x.Template
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Hook_Telegram struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
BotToken string `protobuf:"bytes,1,opt,name=bot_token,json=botToken,proto3" json:"bot_token,omitempty"`
|
|
ChatId string `protobuf:"bytes,2,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
|
|
Template string `protobuf:"bytes,3,opt,name=template,proto3" json:"template,omitempty"` // template for the message text.
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Hook_Telegram) Reset() {
|
|
*x = Hook_Telegram{}
|
|
mi := &file_v1_config_proto_msgTypes[24]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Hook_Telegram) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Hook_Telegram) ProtoMessage() {}
|
|
|
|
func (x *Hook_Telegram) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_config_proto_msgTypes[24]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Hook_Telegram.ProtoReflect.Descriptor instead.
|
|
func (*Hook_Telegram) Descriptor() ([]byte, []int) {
|
|
return file_v1_config_proto_rawDescGZIP(), []int{10, 7}
|
|
}
|
|
|
|
func (x *Hook_Telegram) GetBotToken() string {
|
|
if x != nil {
|
|
return x.BotToken
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Telegram) GetChatId() string {
|
|
if x != nil {
|
|
return x.ChatId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Hook_Telegram) GetTemplate() string {
|
|
if x != nil {
|
|
return x.Template
|
|
}
|
|
return ""
|
|
}
|
|
|
|
var File_v1_config_proto protoreflect.FileDescriptor
|
|
|
|
const file_v1_config_proto_rawDesc = "" +
|
|
"\n" +
|
|
"\x0fv1/config.proto\x12\x02v1\x1a\x1bgoogle/protobuf/empty.proto\x1a\x0fv1/crypto.proto\"\xda\x01\n" +
|
|
"\x06Config\x12\x14\n" +
|
|
"\x05modno\x18\x01 \x01(\x05R\x05modno\x12\x18\n" +
|
|
"\aversion\x18\x06 \x01(\x05R\aversion\x12\x1a\n" +
|
|
"\binstance\x18\x02 \x01(\tR\binstance\x12\x1e\n" +
|
|
"\x05repos\x18\x03 \x03(\v2\b.v1.RepoR\x05repos\x12\x1e\n" +
|
|
"\x05plans\x18\x04 \x03(\v2\b.v1.PlanR\x05plans\x12\x1c\n" +
|
|
"\x04auth\x18\x05 \x01(\v2\b.v1.AuthR\x04auth\x12&\n" +
|
|
"\tmultihost\x18\a \x01(\v2\r.v1.MultihostR\x04sync\"\xc5\a\n" +
|
|
"\tMultihost\x12*\n" +
|
|
"\bidentity\x18\x01 \x01(\v2\x0e.v1.PrivateKeyR\bidentity\x123\n" +
|
|
"\vknown_hosts\x18\x02 \x03(\v2\x12.v1.Multihost.PeerR\n" +
|
|
"knownHosts\x12A\n" +
|
|
"\x12authorized_clients\x18\x03 \x03(\v2\x12.v1.Multihost.PeerR\x11authorizedClients\x12A\n" +
|
|
"\x0epairing_tokens\x18\x04 \x03(\v2\x1a.v1.Multihost.PairingTokenR\rpairingTokens\x1a\xd8\x01\n" +
|
|
"\x04Peer\x12\x1f\n" +
|
|
"\vinstance_id\x18\x01 \x01(\tR\n" +
|
|
"instanceId\x12\x14\n" +
|
|
"\x05keyid\x18\x02 \x01(\tR\x05keyId\x12:\n" +
|
|
"\vpermissions\x18\x05 \x03(\v2\x18.v1.Multihost.PermissionR\vpermissions\x12!\n" +
|
|
"\finstance_url\x18\x04 \x01(\tR\vinstanceUrl\x124\n" +
|
|
"\x16initial_pairing_secret\x18\x06 \x01(\tR\x14initialPairingSecretJ\x04\b\x03\x10\x04\x1a\xf7\x01\n" +
|
|
"\fPairingToken\x12\x16\n" +
|
|
"\x06secret\x18\x01 \x01(\tR\x06secret\x12\x14\n" +
|
|
"\x05label\x18\x02 \x01(\tR\x05label\x12&\n" +
|
|
"\x0fcreated_at_unix\x18\x03 \x01(\x03R\rcreatedAtUnix\x12&\n" +
|
|
"\x0fexpires_at_unix\x18\x04 \x01(\x03R\rexpiresAtUnix\x12\x19\n" +
|
|
"\bmax_uses\x18\x05 \x01(\x05R\amaxUses\x12\x12\n" +
|
|
"\x04uses\x18\x06 \x01(\x05R\x04uses\x12:\n" +
|
|
"\vpermissions\x18\a \x03(\v2\x18.v1.Multihost.PermissionR\vpermissions\x1a\xfb\x01\n" +
|
|
"\n" +
|
|
"Permission\x121\n" +
|
|
"\x04type\x18\x01 \x01(\x0e2\x1d.v1.Multihost.Permission.TypeR\x04type\x12\x16\n" +
|
|
"\x06scopes\x18\x02 \x03(\tR\x06scopes\"\xa1\x01\n" +
|
|
"\x04Type\x12\x16\n" +
|
|
"\x12PERMISSION_UNKNOWN\x10\x00\x12\x1e\n" +
|
|
"\x1aPERMISSION_READ_OPERATIONS\x10\x01\x12\x1a\n" +
|
|
"\x16PERMISSION_READ_CONFIG\x10\x02\x12 \n" +
|
|
"\x1cPERMISSION_READ_WRITE_CONFIG\x10\x03\x12#\n" +
|
|
"\x1fPERMISSION_RECEIVE_SHARED_REPOS\x10\x04\"\x89\x04\n" +
|
|
"\x04Repo\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n" +
|
|
"\x03uri\x18\x02 \x01(\tR\x03uri\x12\x12\n" +
|
|
"\x04guid\x18\v \x01(\tR\x04guid\x12\x1a\n" +
|
|
"\bpassword\x18\x03 \x01(\tR\bpassword\x12\x10\n" +
|
|
"\x03env\x18\x04 \x03(\tR\x03env\x12\x14\n" +
|
|
"\x05flags\x18\x05 \x03(\tR\x05flags\x122\n" +
|
|
"\fprune_policy\x18\x06 \x01(\v2\x0f.v1.PrunePolicyR\vprunePolicy\x122\n" +
|
|
"\fcheck_policy\x18\t \x01(\v2\x0f.v1.CheckPolicyR\vcheckPolicy\x12\x1e\n" +
|
|
"\x05hooks\x18\a \x03(\v2\b.v1.HookR\x05hooks\x12\x1f\n" +
|
|
"\vauto_unlock\x18\b \x01(\bR\n" +
|
|
"autoUnlock\x12'\n" +
|
|
"\x0fauto_initialize\x18\f \x01(\bR\x0eautoInitialize\x128\n" +
|
|
"\x0ecommand_prefix\x18\n" +
|
|
" \x01(\v2\x11.v1.CommandPrefixR\rcommandPrefix\x12\x16\n" +
|
|
"\x06shared\x18\r \x01(\bR\x06shared\x12,\n" +
|
|
"\x12origin_instance_id\x18\x0e \x01(\tR\x10originInstanceId\x125\n" +
|
|
"\rforget_policy\x18\x0f \x01(\v2\x10.v1.ForgetPolicyR\fforgetPolicy\"\xd9\x02\n" +
|
|
"\x04Plan\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
|
|
"\x04repo\x18\x02 \x01(\tR\x04repo\x12\x14\n" +
|
|
"\x05paths\x18\x04 \x03(\tR\x05paths\x12\x1a\n" +
|
|
"\bexcludes\x18\x05 \x03(\tR\bexcludes\x12\x1c\n" +
|
|
"\tiexcludes\x18\t \x03(\tR\tiexcludes\x12(\n" +
|
|
"\bschedule\x18\f \x01(\v2\f.v1.ScheduleR\bschedule\x121\n" +
|
|
"\tretention\x18\a \x01(\v2\x13.v1.RetentionPolicyR\tretention\x12\x1e\n" +
|
|
"\x05hooks\x18\b \x03(\v2\b.v1.HookR\x05hooks\x12\"\n" +
|
|
"\fbackup_flags\x18\n" +
|
|
" \x03(\tR\fbackup_flags\x12*\n" +
|
|
"\x11skip_if_unchanged\x18\r \x01(\bR\x0fskipIfUnchangedJ\x04\b\x03\x10\x04J\x04\b\x06\x10\aJ\x04\b\v\x10\f\"\x9b\x02\n" +
|
|
"\rCommandPrefix\x126\n" +
|
|
"\aio_nice\x18\x01 \x01(\x0e2\x1d.v1.CommandPrefix.IONiceLevelR\x06ioNice\x129\n" +
|
|
"\bcpu_nice\x18\x02 \x01(\x0e2\x1e.v1.CommandPrefix.CPUNiceLevelR\acpuNice\"[\n" +
|
|
"\vIONiceLevel\x12\x0e\n" +
|
|
"\n" +
|
|
"IO_DEFAULT\x10\x00\x12\x16\n" +
|
|
"\x12IO_BEST_EFFORT_LOW\x10\x01\x12\x17\n" +
|
|
"\x13IO_BEST_EFFORT_HIGH\x10\x02\x12\v\n" +
|
|
"\aIO_IDLE\x10\x03\":\n" +
|
|
"\fCPUNiceLevel\x12\x0f\n" +
|
|
"\vCPU_DEFAULT\x10\x00\x12\f\n" +
|
|
"\bCPU_HIGH\x10\x01\x12\v\n" +
|
|
"\aCPU_LOW\x10\x02\"\xff\x02\n" +
|
|
"\x0fRetentionPolicy\x12-\n" +
|
|
"\x12policy_keep_last_n\x18\n" +
|
|
" \x01(\x05H\x00R\x0fpolicyKeepLastN\x12Z\n" +
|
|
"\x14policy_time_bucketed\x18\v \x01(\v2&.v1.RetentionPolicy.TimeBucketedCountsH\x00R\x12policyTimeBucketed\x12(\n" +
|
|
"\x0fpolicy_keep_all\x18\f \x01(\bH\x00R\rpolicyKeepAll\x1a\xac\x01\n" +
|
|
"\x12TimeBucketedCounts\x12\x16\n" +
|
|
"\x06hourly\x18\x01 \x01(\x05R\x06hourly\x12\x14\n" +
|
|
"\x05daily\x18\x02 \x01(\x05R\x05daily\x12\x16\n" +
|
|
"\x06weekly\x18\x03 \x01(\x05R\x06weekly\x12\x18\n" +
|
|
"\amonthly\x18\x04 \x01(\x05R\amonthly\x12\x16\n" +
|
|
"\x06yearly\x18\x05 \x01(\x05R\x06yearly\x12\x1e\n" +
|
|
"\vkeep_last_n\x18\x06 \x01(\x05R\tkeepLastNB\b\n" +
|
|
"\x06policy\"k\n" +
|
|
"\fForgetPolicy\x12(\n" +
|
|
"\bschedule\x18\x01 \x01(\v2\f.v1.ScheduleR\bschedule\x121\n" +
|
|
"\tretention\x18\x02 \x01(\v2\x13.v1.RetentionPolicyR\tretention\"\x8f\x01\n" +
|
|
"\vPrunePolicy\x12(\n" +
|
|
"\bschedule\x18\x02 \x01(\v2\f.v1.ScheduleR\bschedule\x12(\n" +
|
|
"\x10max_unused_bytes\x18\x03 \x01(\x03R\x0emaxUnusedBytes\x12,\n" +
|
|
"\x12max_unused_percent\x18\x04 \x01(\x01R\x10maxUnusedPercent\"\xa3\x01\n" +
|
|
"\vCheckPolicy\x12(\n" +
|
|
"\bschedule\x18\x01 \x01(\v2\f.v1.ScheduleR\bschedule\x12'\n" +
|
|
"\x0estructure_only\x18d \x01(\bH\x00R\rstructureOnly\x129\n" +
|
|
"\x18read_data_subset_percent\x18e \x01(\x01H\x00R\x15readDataSubsetPercentB\x06\n" +
|
|
"\x04mode\"\xa7\x02\n" +
|
|
"\bSchedule\x12\x1c\n" +
|
|
"\bdisabled\x18\x01 \x01(\bH\x00R\bdisabled\x12\x14\n" +
|
|
"\x04cron\x18\x02 \x01(\tH\x00R\x04cron\x12,\n" +
|
|
"\x10maxFrequencyDays\x18\x03 \x01(\x05H\x00R\x10maxFrequencyDays\x12.\n" +
|
|
"\x11maxFrequencyHours\x18\x04 \x01(\x05H\x00R\x11maxFrequencyHours\x12(\n" +
|
|
"\x05clock\x18\x05 \x01(\x0e2\x12.v1.Schedule.ClockR\x05clock\"S\n" +
|
|
"\x05Clock\x12\x11\n" +
|
|
"\rCLOCK_DEFAULT\x10\x00\x12\x0f\n" +
|
|
"\vCLOCK_LOCAL\x10\x01\x12\r\n" +
|
|
"\tCLOCK_UTC\x10\x02\x12\x17\n" +
|
|
"\x13CLOCK_LAST_RUN_TIME\x10\x03B\n" +
|
|
"\n" +
|
|
"\bschedule\"\xe1\x0f\n" +
|
|
"\x04Hook\x122\n" +
|
|
"\n" +
|
|
"conditions\x18\x01 \x03(\x0e2\x12.v1.Hook.ConditionR\n" +
|
|
"conditions\x12+\n" +
|
|
"\bon_error\x18\x02 \x01(\x0e2\x10.v1.Hook.OnErrorR\aonError\x129\n" +
|
|
"\x0eaction_command\x18d \x01(\v2\x10.v1.Hook.CommandH\x00R\ractionCommand\x129\n" +
|
|
"\x0eaction_webhook\x18e \x01(\v2\x10.v1.Hook.WebhookH\x00R\ractionWebhook\x129\n" +
|
|
"\x0eaction_discord\x18f \x01(\v2\x10.v1.Hook.DiscordH\x00R\ractionDiscord\x126\n" +
|
|
"\raction_gotify\x18g \x01(\v2\x0f.v1.Hook.GotifyH\x00R\factionGotify\x123\n" +
|
|
"\faction_slack\x18h \x01(\v2\x0e.v1.Hook.SlackH\x00R\vactionSlack\x12<\n" +
|
|
"\x0faction_shoutrrr\x18i \x01(\v2\x11.v1.Hook.ShoutrrrH\x00R\x0eactionShoutrrr\x12H\n" +
|
|
"\x13action_healthchecks\x18j \x01(\v2\x15.v1.Hook.HealthchecksH\x00R\x12actionHealthchecks\x12<\n" +
|
|
"\x0faction_telegram\x18k \x01(\v2\x11.v1.Hook.TelegramH\x00R\x0eactionTelegram\x1a#\n" +
|
|
"\aCommand\x12\x18\n" +
|
|
"\acommand\x18\x01 \x01(\tR\acommand\x1a\xa1\x01\n" +
|
|
"\aWebhook\x12\x1f\n" +
|
|
"\vwebhook_url\x18\x01 \x01(\tR\n" +
|
|
"webhookUrl\x12/\n" +
|
|
"\x06method\x18\x02 \x01(\x0e2\x17.v1.Hook.Webhook.MethodR\x06method\x12\x1a\n" +
|
|
"\btemplate\x18d \x01(\tR\btemplate\"(\n" +
|
|
"\x06Method\x12\v\n" +
|
|
"\aUNKNOWN\x10\x00\x12\a\n" +
|
|
"\x03GET\x10\x01\x12\b\n" +
|
|
"\x04POST\x10\x02\x1aF\n" +
|
|
"\aDiscord\x12\x1f\n" +
|
|
"\vwebhook_url\x18\x01 \x01(\tR\n" +
|
|
"webhookUrl\x12\x1a\n" +
|
|
"\btemplate\x18\x02 \x01(\tR\btemplate\x1a\x98\x01\n" +
|
|
"\x06Gotify\x12\x19\n" +
|
|
"\bbase_url\x18\x01 \x01(\tR\abaseUrl\x12\x14\n" +
|
|
"\x05token\x18\x03 \x01(\tR\x05token\x12\x1a\n" +
|
|
"\btemplate\x18d \x01(\tR\btemplate\x12%\n" +
|
|
"\x0etitle_template\x18e \x01(\tR\rtitleTemplate\x12\x1a\n" +
|
|
"\bpriority\x18f \x01(\x05R\bpriority\x1aD\n" +
|
|
"\x05Slack\x12\x1f\n" +
|
|
"\vwebhook_url\x18\x01 \x01(\tR\n" +
|
|
"webhookUrl\x12\x1a\n" +
|
|
"\btemplate\x18\x02 \x01(\tR\btemplate\x1aI\n" +
|
|
"\bShoutrrr\x12!\n" +
|
|
"\fshoutrrr_url\x18\x01 \x01(\tR\vshoutrrrUrl\x12\x1a\n" +
|
|
"\btemplate\x18\x02 \x01(\tR\btemplate\x1aK\n" +
|
|
"\fHealthchecks\x12\x1f\n" +
|
|
"\vwebhook_url\x18\x01 \x01(\tR\n" +
|
|
"webhookUrl\x12\x1a\n" +
|
|
"\btemplate\x18\x02 \x01(\tR\btemplate\x1a\\\n" +
|
|
"\bTelegram\x12\x1b\n" +
|
|
"\tbot_token\x18\x01 \x01(\tR\bbotToken\x12\x17\n" +
|
|
"\achat_id\x18\x02 \x01(\tR\x06chatId\x12\x1a\n" +
|
|
"\btemplate\x18\x03 \x01(\tR\btemplate\"\xf5\x03\n" +
|
|
"\tCondition\x12\x15\n" +
|
|
"\x11CONDITION_UNKNOWN\x10\x00\x12\x17\n" +
|
|
"\x13CONDITION_ANY_ERROR\x10\x01\x12\x1c\n" +
|
|
"\x18CONDITION_SNAPSHOT_START\x10\x02\x12\x1a\n" +
|
|
"\x16CONDITION_SNAPSHOT_END\x10\x03\x12\x1c\n" +
|
|
"\x18CONDITION_SNAPSHOT_ERROR\x10\x04\x12\x1e\n" +
|
|
"\x1aCONDITION_SNAPSHOT_WARNING\x10\x05\x12\x1e\n" +
|
|
"\x1aCONDITION_SNAPSHOT_SUCCESS\x10\x06\x12\x1e\n" +
|
|
"\x1aCONDITION_SNAPSHOT_SKIPPED\x10\a\x12\x19\n" +
|
|
"\x15CONDITION_PRUNE_START\x10d\x12\x19\n" +
|
|
"\x15CONDITION_PRUNE_ERROR\x10e\x12\x1b\n" +
|
|
"\x17CONDITION_PRUNE_SUCCESS\x10f\x12\x1a\n" +
|
|
"\x15CONDITION_CHECK_START\x10\xc8\x01\x12\x1a\n" +
|
|
"\x15CONDITION_CHECK_ERROR\x10\xc9\x01\x12\x1c\n" +
|
|
"\x17CONDITION_CHECK_SUCCESS\x10\xca\x01\x12\x1b\n" +
|
|
"\x16CONDITION_FORGET_START\x10\xac\x02\x12\x1b\n" +
|
|
"\x16CONDITION_FORGET_ERROR\x10\xad\x02\x12\x1d\n" +
|
|
"\x18CONDITION_FORGET_SUCCESS\x10\xae\x02\"\xa9\x01\n" +
|
|
"\aOnError\x12\x13\n" +
|
|
"\x0fON_ERROR_IGNORE\x10\x00\x12\x13\n" +
|
|
"\x0fON_ERROR_CANCEL\x10\x01\x12\x12\n" +
|
|
"\x0eON_ERROR_FATAL\x10\x02\x12\x1a\n" +
|
|
"\x16ON_ERROR_RETRY_1MINUTE\x10d\x12\x1c\n" +
|
|
"\x18ON_ERROR_RETRY_10MINUTES\x10e\x12&\n" +
|
|
"\"ON_ERROR_RETRY_EXPONENTIAL_BACKOFF\x10gB\b\n" +
|
|
"\x06action\"B\n" +
|
|
"\x04Auth\x12\x1a\n" +
|
|
"\bdisabled\x18\x01 \x01(\bR\bdisabled\x12\x1e\n" +
|
|
"\x05users\x18\x02 \x03(\v2\b.v1.UserR\x05users\"Q\n" +
|
|
"\x04User\x12\x12\n" +
|
|
"\x04name\x18\x01 \x01(\tR\x04name\x12)\n" +
|
|
"\x0fpassword_bcrypt\x18\x02 \x01(\tH\x00R\x0epasswordBcryptB\n" +
|
|
"\n" +
|
|
"\bpasswordB,Z*github.com/garethgeorge/backrest/gen/go/v1b\x06proto3"
|
|
|
|
var (
|
|
file_v1_config_proto_rawDescOnce sync.Once
|
|
file_v1_config_proto_rawDescData []byte
|
|
)
|
|
|
|
func file_v1_config_proto_rawDescGZIP() []byte {
|
|
file_v1_config_proto_rawDescOnce.Do(func() {
|
|
file_v1_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_v1_config_proto_rawDesc), len(file_v1_config_proto_rawDesc)))
|
|
})
|
|
return file_v1_config_proto_rawDescData
|
|
}
|
|
|
|
var file_v1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
|
|
var file_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
|
|
var file_v1_config_proto_goTypes = []any{
|
|
(Multihost_Permission_Type)(0), // 0: v1.Multihost.Permission.Type
|
|
(CommandPrefix_IONiceLevel)(0), // 1: v1.CommandPrefix.IONiceLevel
|
|
(CommandPrefix_CPUNiceLevel)(0), // 2: v1.CommandPrefix.CPUNiceLevel
|
|
(Schedule_Clock)(0), // 3: v1.Schedule.Clock
|
|
(Hook_Condition)(0), // 4: v1.Hook.Condition
|
|
(Hook_OnError)(0), // 5: v1.Hook.OnError
|
|
(Hook_Webhook_Method)(0), // 6: v1.Hook.Webhook.Method
|
|
(*Config)(nil), // 7: v1.Config
|
|
(*Multihost)(nil), // 8: v1.Multihost
|
|
(*Repo)(nil), // 9: v1.Repo
|
|
(*Plan)(nil), // 10: v1.Plan
|
|
(*CommandPrefix)(nil), // 11: v1.CommandPrefix
|
|
(*RetentionPolicy)(nil), // 12: v1.RetentionPolicy
|
|
(*ForgetPolicy)(nil), // 13: v1.ForgetPolicy
|
|
(*PrunePolicy)(nil), // 14: v1.PrunePolicy
|
|
(*CheckPolicy)(nil), // 15: v1.CheckPolicy
|
|
(*Schedule)(nil), // 16: v1.Schedule
|
|
(*Hook)(nil), // 17: v1.Hook
|
|
(*Auth)(nil), // 18: v1.Auth
|
|
(*User)(nil), // 19: v1.User
|
|
(*Multihost_Peer)(nil), // 20: v1.Multihost.Peer
|
|
(*Multihost_PairingToken)(nil), // 21: v1.Multihost.PairingToken
|
|
(*Multihost_Permission)(nil), // 22: v1.Multihost.Permission
|
|
(*RetentionPolicy_TimeBucketedCounts)(nil), // 23: v1.RetentionPolicy.TimeBucketedCounts
|
|
(*Hook_Command)(nil), // 24: v1.Hook.Command
|
|
(*Hook_Webhook)(nil), // 25: v1.Hook.Webhook
|
|
(*Hook_Discord)(nil), // 26: v1.Hook.Discord
|
|
(*Hook_Gotify)(nil), // 27: v1.Hook.Gotify
|
|
(*Hook_Slack)(nil), // 28: v1.Hook.Slack
|
|
(*Hook_Shoutrrr)(nil), // 29: v1.Hook.Shoutrrr
|
|
(*Hook_Healthchecks)(nil), // 30: v1.Hook.Healthchecks
|
|
(*Hook_Telegram)(nil), // 31: v1.Hook.Telegram
|
|
(*PrivateKey)(nil), // 32: v1.PrivateKey
|
|
}
|
|
var file_v1_config_proto_depIdxs = []int32{
|
|
9, // 0: v1.Config.repos:type_name -> v1.Repo
|
|
10, // 1: v1.Config.plans:type_name -> v1.Plan
|
|
18, // 2: v1.Config.auth:type_name -> v1.Auth
|
|
8, // 3: v1.Config.multihost:type_name -> v1.Multihost
|
|
32, // 4: v1.Multihost.identity:type_name -> v1.PrivateKey
|
|
20, // 5: v1.Multihost.known_hosts:type_name -> v1.Multihost.Peer
|
|
20, // 6: v1.Multihost.authorized_clients:type_name -> v1.Multihost.Peer
|
|
21, // 7: v1.Multihost.pairing_tokens:type_name -> v1.Multihost.PairingToken
|
|
14, // 8: v1.Repo.prune_policy:type_name -> v1.PrunePolicy
|
|
15, // 9: v1.Repo.check_policy:type_name -> v1.CheckPolicy
|
|
17, // 10: v1.Repo.hooks:type_name -> v1.Hook
|
|
11, // 11: v1.Repo.command_prefix:type_name -> v1.CommandPrefix
|
|
13, // 12: v1.Repo.forget_policy:type_name -> v1.ForgetPolicy
|
|
16, // 13: v1.Plan.schedule:type_name -> v1.Schedule
|
|
12, // 14: v1.Plan.retention:type_name -> v1.RetentionPolicy
|
|
17, // 15: v1.Plan.hooks:type_name -> v1.Hook
|
|
1, // 16: v1.CommandPrefix.io_nice:type_name -> v1.CommandPrefix.IONiceLevel
|
|
2, // 17: v1.CommandPrefix.cpu_nice:type_name -> v1.CommandPrefix.CPUNiceLevel
|
|
23, // 18: v1.RetentionPolicy.policy_time_bucketed:type_name -> v1.RetentionPolicy.TimeBucketedCounts
|
|
16, // 19: v1.ForgetPolicy.schedule:type_name -> v1.Schedule
|
|
12, // 20: v1.ForgetPolicy.retention:type_name -> v1.RetentionPolicy
|
|
16, // 21: v1.PrunePolicy.schedule:type_name -> v1.Schedule
|
|
16, // 22: v1.CheckPolicy.schedule:type_name -> v1.Schedule
|
|
3, // 23: v1.Schedule.clock:type_name -> v1.Schedule.Clock
|
|
4, // 24: v1.Hook.conditions:type_name -> v1.Hook.Condition
|
|
5, // 25: v1.Hook.on_error:type_name -> v1.Hook.OnError
|
|
24, // 26: v1.Hook.action_command:type_name -> v1.Hook.Command
|
|
25, // 27: v1.Hook.action_webhook:type_name -> v1.Hook.Webhook
|
|
26, // 28: v1.Hook.action_discord:type_name -> v1.Hook.Discord
|
|
27, // 29: v1.Hook.action_gotify:type_name -> v1.Hook.Gotify
|
|
28, // 30: v1.Hook.action_slack:type_name -> v1.Hook.Slack
|
|
29, // 31: v1.Hook.action_shoutrrr:type_name -> v1.Hook.Shoutrrr
|
|
30, // 32: v1.Hook.action_healthchecks:type_name -> v1.Hook.Healthchecks
|
|
31, // 33: v1.Hook.action_telegram:type_name -> v1.Hook.Telegram
|
|
19, // 34: v1.Auth.users:type_name -> v1.User
|
|
22, // 35: v1.Multihost.Peer.permissions:type_name -> v1.Multihost.Permission
|
|
22, // 36: v1.Multihost.PairingToken.permissions:type_name -> v1.Multihost.Permission
|
|
0, // 37: v1.Multihost.Permission.type:type_name -> v1.Multihost.Permission.Type
|
|
6, // 38: v1.Hook.Webhook.method:type_name -> v1.Hook.Webhook.Method
|
|
39, // [39:39] is the sub-list for method output_type
|
|
39, // [39:39] is the sub-list for method input_type
|
|
39, // [39:39] is the sub-list for extension type_name
|
|
39, // [39:39] is the sub-list for extension extendee
|
|
0, // [0:39] is the sub-list for field type_name
|
|
}
|
|
|
|
func init() { file_v1_config_proto_init() }
|
|
func file_v1_config_proto_init() {
|
|
if File_v1_config_proto != nil {
|
|
return
|
|
}
|
|
file_v1_crypto_proto_init()
|
|
file_v1_config_proto_msgTypes[5].OneofWrappers = []any{
|
|
(*RetentionPolicy_PolicyKeepLastN)(nil),
|
|
(*RetentionPolicy_PolicyTimeBucketed)(nil),
|
|
(*RetentionPolicy_PolicyKeepAll)(nil),
|
|
}
|
|
file_v1_config_proto_msgTypes[8].OneofWrappers = []any{
|
|
(*CheckPolicy_StructureOnly)(nil),
|
|
(*CheckPolicy_ReadDataSubsetPercent)(nil),
|
|
}
|
|
file_v1_config_proto_msgTypes[9].OneofWrappers = []any{
|
|
(*Schedule_Disabled)(nil),
|
|
(*Schedule_Cron)(nil),
|
|
(*Schedule_MaxFrequencyDays)(nil),
|
|
(*Schedule_MaxFrequencyHours)(nil),
|
|
}
|
|
file_v1_config_proto_msgTypes[10].OneofWrappers = []any{
|
|
(*Hook_ActionCommand)(nil),
|
|
(*Hook_ActionWebhook)(nil),
|
|
(*Hook_ActionDiscord)(nil),
|
|
(*Hook_ActionGotify)(nil),
|
|
(*Hook_ActionSlack)(nil),
|
|
(*Hook_ActionShoutrrr)(nil),
|
|
(*Hook_ActionHealthchecks)(nil),
|
|
(*Hook_ActionTelegram)(nil),
|
|
}
|
|
file_v1_config_proto_msgTypes[12].OneofWrappers = []any{
|
|
(*User_PasswordBcrypt)(nil),
|
|
}
|
|
type x struct{}
|
|
out := protoimpl.TypeBuilder{
|
|
File: protoimpl.DescBuilder{
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_v1_config_proto_rawDesc), len(file_v1_config_proto_rawDesc)),
|
|
NumEnums: 7,
|
|
NumMessages: 25,
|
|
NumExtensions: 0,
|
|
NumServices: 0,
|
|
},
|
|
GoTypes: file_v1_config_proto_goTypes,
|
|
DependencyIndexes: file_v1_config_proto_depIdxs,
|
|
EnumInfos: file_v1_config_proto_enumTypes,
|
|
MessageInfos: file_v1_config_proto_msgTypes,
|
|
}.Build()
|
|
File_v1_config_proto = out.File
|
|
file_v1_config_proto_goTypes = nil
|
|
file_v1_config_proto_depIdxs = nil
|
|
}
|