chore: refactor operations API to use selectors

This commit is contained in:
garethgeorge
2024-05-18 18:49:37 -07:00
parent 1a3ace9014
commit c83d080391
29 changed files with 2969 additions and 3793 deletions
+1603 -1317
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -10,12 +10,12 @@
"lint": "eslint ."
},
"devDependencies": {
"@nuxt-themes/docus": "latest",
"@nuxt/devtools": "^1.0.8",
"@nuxt-themes/docus": "^1.15.0",
"@nuxt/devtools": "^1.3.1",
"@nuxt/eslint-config": "^0.2.0",
"@nuxtjs/plausible": "^0.2.4",
"@types/node": "^20.11.24",
"@types/node": "^20.12.12",
"eslint": "^8.57.0",
"nuxt": "^3.10.3"
"nuxt": "^3.11.2"
}
}
+248 -161
View File
@@ -76,7 +76,7 @@ func (x Hook_Condition) Number() protoreflect.EnumNumber {
// Deprecated: Use Hook_Condition.Descriptor instead.
func (Hook_Condition) EnumDescriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{6, 0}
return file_v1_config_proto_rawDescGZIP(), []int{7, 0}
}
type Hook_OnError int32
@@ -125,7 +125,7 @@ func (x Hook_OnError) Number() protoreflect.EnumNumber {
// Deprecated: Use Hook_OnError.Descriptor instead.
func (Hook_OnError) EnumDescriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{6, 1}
return file_v1_config_proto_rawDescGZIP(), []int{7, 1}
}
type Hook_Webhook_Method int32
@@ -174,7 +174,7 @@ func (x Hook_Webhook_Method) Number() protoreflect.EnumNumber {
// Deprecated: Use Hook_Webhook_Method.Descriptor instead.
func (Hook_Webhook_Method) EnumDescriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{6, 1, 0}
return file_v1_config_proto_rawDescGZIP(), []int{7, 1, 0}
}
type HubConfig struct {
@@ -775,6 +775,73 @@ func (x *PrunePolicy) GetMaxUnusedBytes() int32 {
return 0
}
type CheckPolicy struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Policy:
//
// *CheckPolicy_MaxFrequencyDays
Policy isCheckPolicy_Policy `protobuf_oneof:"policy"`
}
func (x *CheckPolicy) Reset() {
*x = CheckPolicy{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[6]
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[6]
if protoimpl.UnsafeEnabled && 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{6}
}
func (m *CheckPolicy) GetPolicy() isCheckPolicy_Policy {
if m != nil {
return m.Policy
}
return nil
}
func (x *CheckPolicy) GetMaxFrequencyDays() int32 {
if x, ok := x.GetPolicy().(*CheckPolicy_MaxFrequencyDays); ok {
return x.MaxFrequencyDays
}
return 0
}
type isCheckPolicy_Policy interface {
isCheckPolicy_Policy()
}
type CheckPolicy_MaxFrequencyDays struct {
MaxFrequencyDays int32 `protobuf:"varint,1,opt,name=max_frequency_days,json=maxFrequencyDays,proto3,oneof"`
}
func (*CheckPolicy_MaxFrequencyDays) isCheckPolicy_Policy() {}
type Hook struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -796,7 +863,7 @@ type Hook struct {
func (x *Hook) Reset() {
*x = Hook{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[6]
mi := &file_v1_config_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -809,7 +876,7 @@ func (x *Hook) String() string {
func (*Hook) ProtoMessage() {}
func (x *Hook) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[6]
mi := &file_v1_config_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -822,7 +889,7 @@ func (x *Hook) ProtoReflect() protoreflect.Message {
// Deprecated: Use Hook.ProtoReflect.Descriptor instead.
func (*Hook) Descriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{6}
return file_v1_config_proto_rawDescGZIP(), []int{7}
}
func (x *Hook) GetConditions() []Hook_Condition {
@@ -940,7 +1007,7 @@ type Auth struct {
func (x *Auth) Reset() {
*x = Auth{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[7]
mi := &file_v1_config_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -953,7 +1020,7 @@ func (x *Auth) String() string {
func (*Auth) ProtoMessage() {}
func (x *Auth) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[7]
mi := &file_v1_config_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -966,7 +1033,7 @@ func (x *Auth) ProtoReflect() protoreflect.Message {
// Deprecated: Use Auth.ProtoReflect.Descriptor instead.
func (*Auth) Descriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{7}
return file_v1_config_proto_rawDescGZIP(), []int{8}
}
func (x *Auth) GetDisabled() bool {
@@ -998,7 +1065,7 @@ type User struct {
func (x *User) Reset() {
*x = User{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[8]
mi := &file_v1_config_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1011,7 +1078,7 @@ func (x *User) String() string {
func (*User) ProtoMessage() {}
func (x *User) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[8]
mi := &file_v1_config_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1024,7 +1091,7 @@ func (x *User) ProtoReflect() protoreflect.Message {
// Deprecated: Use User.ProtoReflect.Descriptor instead.
func (*User) Descriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{8}
return file_v1_config_proto_rawDescGZIP(), []int{9}
}
func (x *User) GetName() string {
@@ -1070,7 +1137,7 @@ type HubConfig_InstanceInfo struct {
func (x *HubConfig_InstanceInfo) Reset() {
*x = HubConfig_InstanceInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[9]
mi := &file_v1_config_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1083,7 +1150,7 @@ func (x *HubConfig_InstanceInfo) String() string {
func (*HubConfig_InstanceInfo) ProtoMessage() {}
func (x *HubConfig_InstanceInfo) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[9]
mi := &file_v1_config_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1128,7 +1195,7 @@ type RetentionPolicy_TimeBucketedCounts struct {
func (x *RetentionPolicy_TimeBucketedCounts) Reset() {
*x = RetentionPolicy_TimeBucketedCounts{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[10]
mi := &file_v1_config_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1141,7 +1208,7 @@ func (x *RetentionPolicy_TimeBucketedCounts) String() string {
func (*RetentionPolicy_TimeBucketedCounts) ProtoMessage() {}
func (x *RetentionPolicy_TimeBucketedCounts) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[10]
mi := &file_v1_config_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1203,7 +1270,7 @@ type Hook_Command struct {
func (x *Hook_Command) Reset() {
*x = Hook_Command{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[11]
mi := &file_v1_config_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1216,7 +1283,7 @@ func (x *Hook_Command) String() string {
func (*Hook_Command) ProtoMessage() {}
func (x *Hook_Command) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[11]
mi := &file_v1_config_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1229,7 +1296,7 @@ func (x *Hook_Command) ProtoReflect() protoreflect.Message {
// Deprecated: Use Hook_Command.ProtoReflect.Descriptor instead.
func (*Hook_Command) Descriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{6, 0}
return file_v1_config_proto_rawDescGZIP(), []int{7, 0}
}
func (x *Hook_Command) GetCommand() string {
@@ -1252,7 +1319,7 @@ type Hook_Webhook struct {
func (x *Hook_Webhook) Reset() {
*x = Hook_Webhook{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[12]
mi := &file_v1_config_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1265,7 +1332,7 @@ func (x *Hook_Webhook) String() string {
func (*Hook_Webhook) ProtoMessage() {}
func (x *Hook_Webhook) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[12]
mi := &file_v1_config_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1278,7 +1345,7 @@ func (x *Hook_Webhook) ProtoReflect() protoreflect.Message {
// Deprecated: Use Hook_Webhook.ProtoReflect.Descriptor instead.
func (*Hook_Webhook) Descriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{6, 1}
return file_v1_config_proto_rawDescGZIP(), []int{7, 1}
}
func (x *Hook_Webhook) GetWebhookUrl() string {
@@ -1314,7 +1381,7 @@ type Hook_Discord struct {
func (x *Hook_Discord) Reset() {
*x = Hook_Discord{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[13]
mi := &file_v1_config_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1327,7 +1394,7 @@ func (x *Hook_Discord) String() string {
func (*Hook_Discord) ProtoMessage() {}
func (x *Hook_Discord) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[13]
mi := &file_v1_config_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1340,7 +1407,7 @@ func (x *Hook_Discord) ProtoReflect() protoreflect.Message {
// Deprecated: Use Hook_Discord.ProtoReflect.Descriptor instead.
func (*Hook_Discord) Descriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{6, 2}
return file_v1_config_proto_rawDescGZIP(), []int{7, 2}
}
func (x *Hook_Discord) GetWebhookUrl() string {
@@ -1371,7 +1438,7 @@ type Hook_Gotify struct {
func (x *Hook_Gotify) Reset() {
*x = Hook_Gotify{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[14]
mi := &file_v1_config_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1384,7 +1451,7 @@ func (x *Hook_Gotify) String() string {
func (*Hook_Gotify) ProtoMessage() {}
func (x *Hook_Gotify) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[14]
mi := &file_v1_config_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1397,7 +1464,7 @@ func (x *Hook_Gotify) ProtoReflect() protoreflect.Message {
// Deprecated: Use Hook_Gotify.ProtoReflect.Descriptor instead.
func (*Hook_Gotify) Descriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{6, 3}
return file_v1_config_proto_rawDescGZIP(), []int{7, 3}
}
func (x *Hook_Gotify) GetBaseUrl() string {
@@ -1440,7 +1507,7 @@ type Hook_Slack struct {
func (x *Hook_Slack) Reset() {
*x = Hook_Slack{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[15]
mi := &file_v1_config_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1453,7 +1520,7 @@ func (x *Hook_Slack) String() string {
func (*Hook_Slack) ProtoMessage() {}
func (x *Hook_Slack) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[15]
mi := &file_v1_config_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1466,7 +1533,7 @@ func (x *Hook_Slack) ProtoReflect() protoreflect.Message {
// Deprecated: Use Hook_Slack.ProtoReflect.Descriptor instead.
func (*Hook_Slack) Descriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{6, 4}
return file_v1_config_proto_rawDescGZIP(), []int{7, 4}
}
func (x *Hook_Slack) GetWebhookUrl() string {
@@ -1495,7 +1562,7 @@ type Hook_Shoutrrr struct {
func (x *Hook_Shoutrrr) Reset() {
*x = Hook_Shoutrrr{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_config_proto_msgTypes[16]
mi := &file_v1_config_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1508,7 +1575,7 @@ func (x *Hook_Shoutrrr) String() string {
func (*Hook_Shoutrrr) ProtoMessage() {}
func (x *Hook_Shoutrrr) ProtoReflect() protoreflect.Message {
mi := &file_v1_config_proto_msgTypes[16]
mi := &file_v1_config_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1521,7 +1588,7 @@ func (x *Hook_Shoutrrr) ProtoReflect() protoreflect.Message {
// Deprecated: Use Hook_Shoutrrr.ProtoReflect.Descriptor instead.
func (*Hook_Shoutrrr) Descriptor() ([]byte, []int) {
return file_v1_config_proto_rawDescGZIP(), []int{6, 5}
return file_v1_config_proto_rawDescGZIP(), []int{7, 5}
}
func (x *Hook_Shoutrrr) GetShoutrrrUrl() string {
@@ -1647,99 +1714,103 @@ var file_v1_config_proto_rawDesc = []byte{
0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a,
0x10, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65,
0x73, 0x18, 0x65, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x75, 0x73,
0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xec, 0x09, 0x0a, 0x04, 0x48, 0x6f, 0x6f, 0x6b,
0x12, 0x32, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x43,
0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b,
0x2e, 0x4f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x07, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f,
0x72, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d,
0x61, 0x6e, 0x64, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48,
0x6f, 0x6f, 0x6b, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x61,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x0e,
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x65,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x57,
0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72,
0x64, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x63, 0x6f,
0x72, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x6f, 0x74,
0x69, 0x66, 0x79, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x48,
0x6f, 0x6f, 0x6b, 0x2e, 0x47, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x47, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x33, 0x0a, 0x0c, 0x61, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0e, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x53, 0x6c, 0x61, 0x63, 0x6b,
0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x12,
0x3c, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x68, 0x6f, 0x75, 0x74, 0x72,
0x72, 0x72, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f,
0x6f, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x61,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x1a, 0x23, 0x0a,
0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
0x6e, 0x64, 0x1a, 0xa1, 0x01, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x1f,
0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x47, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72,
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e,
0x63, 0x79, 0x44, 0x61, 0x79, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79,
0x22, 0xec, 0x09, 0x0a, 0x04, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x6f, 0x6e,
0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x12, 0x2e,
0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a,
0x08, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x4f, 0x6e, 0x45, 0x72, 0x72, 0x6f,
0x72, 0x52, 0x07, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x64, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x43, 0x6f, 0x6d,
0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x48,
0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
0x12, 0x39, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f,
0x72, 0x64, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f,
0x6f, 0x6b, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x61,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x67, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x47, 0x6f, 0x74,
0x69, 0x66, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x6f, 0x74,
0x69, 0x66, 0x79, 0x12, 0x33, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6c,
0x61, 0x63, 0x6b, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x76, 0x31, 0x2e, 0x48,
0x6f, 0x6f, 0x6b, 0x2e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x73, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x18, 0x69, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x75,
0x74, 0x72, 0x72, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68,
0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x1a, 0x23, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x1a, 0xa1, 0x01, 0x0a, 0x07,
0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x65, 0x62, 0x68, 0x6f,
0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x65,
0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x2f, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68,
0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f,
0x6f, 0x6b, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f,
0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d,
0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d,
0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x28, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12,
0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
0x47, 0x45, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x02, 0x1a,
0x46, 0x0a, 0x07, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x65,
0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74,
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x7c, 0x0a, 0x06, 0x47, 0x6f, 0x74, 0x69, 0x66,
0x79, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05,
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b,
0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x64,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x25,
0x0a, 0x0e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x54, 0x65, 0x6d,
0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x44, 0x0a, 0x05, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1f,
0x0a, 0x0b, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12,
0x2f, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x17, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f,
0x6b, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x64, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x28, 0x0a, 0x06,
0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04,
0x50, 0x4f, 0x53, 0x54, 0x10, 0x02, 0x1a, 0x46, 0x0a, 0x07, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72,
0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x55,
0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x7c,
0x0a, 0x06, 0x47, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65,
0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65,
0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d,
0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d,
0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x74,
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74,
0x69, 0x74, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x44, 0x0a, 0x05,
0x53, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b,
0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x65, 0x62, 0x68,
0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
0x74, 0x65, 0x1a, 0x49, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x12, 0x21,
0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x55, 0x72,
0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xb3, 0x01,
0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x43,
0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
0x41, 0x4e, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x43,
0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f,
0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e,
0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f,
0x45, 0x4e, 0x44, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49,
0x4f, 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f,
0x52, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e,
0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e,
0x47, 0x10, 0x05, 0x22, 0x47, 0x0a, 0x07, 0x4f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x13,
0x0a, 0x0f, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52,
0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f,
0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x4e, 0x5f, 0x45,
0x52, 0x52, 0x4f, 0x52, 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06,
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x42, 0x0a, 0x04, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1a,
0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x05, 0x75, 0x73,
0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x76, 0x31, 0x2e, 0x55,
0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x51, 0x0a, 0x04, 0x55, 0x73,
0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,
0x72, 0x64, 0x5f, 0x62, 0x63, 0x72, 0x79, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48,
0x00, 0x52, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x63, 0x72, 0x79, 0x70,
0x74, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x2c, 0x5a,
0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x72, 0x65,
0x74, 0x68, 0x67, 0x65, 0x6f, 0x72, 0x67, 0x65, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x73,
0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x49, 0x0a, 0x08, 0x53,
0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x75, 0x74,
0x72, 0x72, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73,
0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65,
0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65,
0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f,
0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x43,
0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x59, 0x5f, 0x45, 0x52, 0x52,
0x4f, 0x52, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f,
0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54,
0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x03, 0x12, 0x1c,
0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50,
0x53, 0x48, 0x4f, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a,
0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48,
0x4f, 0x54, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x22, 0x47, 0x0a, 0x07,
0x4f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x4e, 0x5f, 0x45, 0x52,
0x52, 0x4f, 0x52, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f,
0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x10,
0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x46, 0x41,
0x54, 0x41, 0x4c, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22,
0x42, 0x0a, 0x04, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62,
0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62,
0x6c, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x08, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73,
0x65, 0x72, 0x73, 0x22, 0x51, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x29, 0x0a, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x62, 0x63, 0x72, 0x79,
0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x61, 0x73, 0x73,
0x77, 0x6f, 0x72, 0x64, 0x42, 0x63, 0x72, 0x79, 0x70, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x61,
0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x72, 0x65, 0x74, 0x68, 0x67, 0x65, 0x6f, 0x72, 0x67,
0x65, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x73, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67,
0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1755,7 +1826,7 @@ func file_v1_config_proto_rawDescGZIP() []byte {
}
var file_v1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_v1_config_proto_goTypes = []interface{}{
(Hook_Condition)(0), // 0: v1.Hook.Condition
(Hook_OnError)(0), // 1: v1.Hook.OnError
@@ -1766,37 +1837,38 @@ var file_v1_config_proto_goTypes = []interface{}{
(*Plan)(nil), // 6: v1.Plan
(*RetentionPolicy)(nil), // 7: v1.RetentionPolicy
(*PrunePolicy)(nil), // 8: v1.PrunePolicy
(*Hook)(nil), // 9: v1.Hook
(*Auth)(nil), // 10: v1.Auth
(*User)(nil), // 11: v1.User
(*HubConfig_InstanceInfo)(nil), // 12: v1.HubConfig.InstanceInfo
(*RetentionPolicy_TimeBucketedCounts)(nil), // 13: v1.RetentionPolicy.TimeBucketedCounts
(*Hook_Command)(nil), // 14: v1.Hook.Command
(*Hook_Webhook)(nil), // 15: v1.Hook.Webhook
(*Hook_Discord)(nil), // 16: v1.Hook.Discord
(*Hook_Gotify)(nil), // 17: v1.Hook.Gotify
(*Hook_Slack)(nil), // 18: v1.Hook.Slack
(*Hook_Shoutrrr)(nil), // 19: v1.Hook.Shoutrrr
(*CheckPolicy)(nil), // 9: v1.CheckPolicy
(*Hook)(nil), // 10: v1.Hook
(*Auth)(nil), // 11: v1.Auth
(*User)(nil), // 12: v1.User
(*HubConfig_InstanceInfo)(nil), // 13: v1.HubConfig.InstanceInfo
(*RetentionPolicy_TimeBucketedCounts)(nil), // 14: v1.RetentionPolicy.TimeBucketedCounts
(*Hook_Command)(nil), // 15: v1.Hook.Command
(*Hook_Webhook)(nil), // 16: v1.Hook.Webhook
(*Hook_Discord)(nil), // 17: v1.Hook.Discord
(*Hook_Gotify)(nil), // 18: v1.Hook.Gotify
(*Hook_Slack)(nil), // 19: v1.Hook.Slack
(*Hook_Shoutrrr)(nil), // 20: v1.Hook.Shoutrrr
}
var file_v1_config_proto_depIdxs = []int32{
12, // 0: v1.HubConfig.instances:type_name -> v1.HubConfig.InstanceInfo
13, // 0: v1.HubConfig.instances:type_name -> v1.HubConfig.InstanceInfo
5, // 1: v1.Config.repos:type_name -> v1.Repo
6, // 2: v1.Config.plans:type_name -> v1.Plan
10, // 3: v1.Config.auth:type_name -> v1.Auth
11, // 3: v1.Config.auth:type_name -> v1.Auth
8, // 4: v1.Repo.prune_policy:type_name -> v1.PrunePolicy
9, // 5: v1.Repo.hooks:type_name -> v1.Hook
10, // 5: v1.Repo.hooks:type_name -> v1.Hook
7, // 6: v1.Plan.retention:type_name -> v1.RetentionPolicy
9, // 7: v1.Plan.hooks:type_name -> v1.Hook
13, // 8: v1.RetentionPolicy.policy_time_bucketed:type_name -> v1.RetentionPolicy.TimeBucketedCounts
10, // 7: v1.Plan.hooks:type_name -> v1.Hook
14, // 8: v1.RetentionPolicy.policy_time_bucketed:type_name -> v1.RetentionPolicy.TimeBucketedCounts
0, // 9: v1.Hook.conditions:type_name -> v1.Hook.Condition
1, // 10: v1.Hook.on_error:type_name -> v1.Hook.OnError
14, // 11: v1.Hook.action_command:type_name -> v1.Hook.Command
15, // 12: v1.Hook.action_webhook:type_name -> v1.Hook.Webhook
16, // 13: v1.Hook.action_discord:type_name -> v1.Hook.Discord
17, // 14: v1.Hook.action_gotify:type_name -> v1.Hook.Gotify
18, // 15: v1.Hook.action_slack:type_name -> v1.Hook.Slack
19, // 16: v1.Hook.action_shoutrrr:type_name -> v1.Hook.Shoutrrr
11, // 17: v1.Auth.users:type_name -> v1.User
15, // 11: v1.Hook.action_command:type_name -> v1.Hook.Command
16, // 12: v1.Hook.action_webhook:type_name -> v1.Hook.Webhook
17, // 13: v1.Hook.action_discord:type_name -> v1.Hook.Discord
18, // 14: v1.Hook.action_gotify:type_name -> v1.Hook.Gotify
19, // 15: v1.Hook.action_slack:type_name -> v1.Hook.Slack
20, // 16: v1.Hook.action_shoutrrr:type_name -> v1.Hook.Shoutrrr
12, // 17: v1.Auth.users:type_name -> v1.User
2, // 18: v1.Hook.Webhook.method:type_name -> v1.Hook.Webhook.Method
19, // [19:19] is the sub-list for method output_type
19, // [19:19] is the sub-list for method input_type
@@ -1884,7 +1956,7 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Hook); i {
switch v := v.(*CheckPolicy); i {
case 0:
return &v.state
case 1:
@@ -1896,7 +1968,7 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Auth); i {
switch v := v.(*Hook); i {
case 0:
return &v.state
case 1:
@@ -1908,7 +1980,7 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*User); i {
switch v := v.(*Auth); i {
case 0:
return &v.state
case 1:
@@ -1920,7 +1992,7 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HubConfig_InstanceInfo); i {
switch v := v.(*User); i {
case 0:
return &v.state
case 1:
@@ -1932,7 +2004,7 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RetentionPolicy_TimeBucketedCounts); i {
switch v := v.(*HubConfig_InstanceInfo); i {
case 0:
return &v.state
case 1:
@@ -1944,7 +2016,7 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Hook_Command); i {
switch v := v.(*RetentionPolicy_TimeBucketedCounts); i {
case 0:
return &v.state
case 1:
@@ -1956,7 +2028,7 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Hook_Webhook); i {
switch v := v.(*Hook_Command); i {
case 0:
return &v.state
case 1:
@@ -1968,7 +2040,7 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Hook_Discord); i {
switch v := v.(*Hook_Webhook); i {
case 0:
return &v.state
case 1:
@@ -1980,7 +2052,7 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Hook_Gotify); i {
switch v := v.(*Hook_Discord); i {
case 0:
return &v.state
case 1:
@@ -1992,7 +2064,7 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Hook_Slack); i {
switch v := v.(*Hook_Gotify); i {
case 0:
return &v.state
case 1:
@@ -2004,6 +2076,18 @@ func file_v1_config_proto_init() {
}
}
file_v1_config_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Hook_Slack); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_v1_config_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Hook_Shoutrrr); i {
case 0:
return &v.state
@@ -2022,6 +2106,9 @@ func file_v1_config_proto_init() {
(*RetentionPolicy_PolicyKeepAll)(nil),
}
file_v1_config_proto_msgTypes[6].OneofWrappers = []interface{}{
(*CheckPolicy_MaxFrequencyDays)(nil),
}
file_v1_config_proto_msgTypes[7].OneofWrappers = []interface{}{
(*Hook_ActionCommand)(nil),
(*Hook_ActionWebhook)(nil),
(*Hook_ActionDiscord)(nil),
@@ -2029,7 +2116,7 @@ func file_v1_config_proto_init() {
(*Hook_ActionSlack)(nil),
(*Hook_ActionShoutrrr)(nil),
}
file_v1_config_proto_msgTypes[8].OneofWrappers = []interface{}{
file_v1_config_proto_msgTypes[9].OneofWrappers = []interface{}{
(*User_PasswordBcrypt)(nil),
}
type x struct{}
@@ -2038,7 +2125,7 @@ func file_v1_config_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_v1_config_proto_rawDesc,
NumEnums: 3,
NumMessages: 17,
NumMessages: 18,
NumExtensions: 0,
NumServices: 0,
},
+353 -304
View File
@@ -23,21 +23,99 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// OpSelector is a message that can be used to select operations e.g. by query.
type OpSelector struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Ids []int64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
RepoId string `protobuf:"bytes,2,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"`
PlanId string `protobuf:"bytes,3,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"`
SnapshotId string `protobuf:"bytes,4,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"`
FlowId int64 `protobuf:"varint,5,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"`
}
func (x *OpSelector) Reset() {
*x = OpSelector{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OpSelector) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OpSelector) ProtoMessage() {}
func (x *OpSelector) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use OpSelector.ProtoReflect.Descriptor instead.
func (*OpSelector) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{0}
}
func (x *OpSelector) GetIds() []int64 {
if x != nil {
return x.Ids
}
return nil
}
func (x *OpSelector) GetRepoId() string {
if x != nil {
return x.RepoId
}
return ""
}
func (x *OpSelector) GetPlanId() string {
if x != nil {
return x.PlanId
}
return ""
}
func (x *OpSelector) GetSnapshotId() string {
if x != nil {
return x.SnapshotId
}
return ""
}
func (x *OpSelector) GetFlowId() int64 {
if x != nil {
return x.FlowId
}
return 0
}
type ClearHistoryRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RepoId string `protobuf:"bytes,1,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"`
PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"`
OnlyFailed bool `protobuf:"varint,3,opt,name=only_failed,json=onlyFailed,proto3" json:"only_failed,omitempty"`
Ops []int64 `protobuf:"varint,4,rep,packed,name=ops,proto3" json:"ops,omitempty"`
Selector *OpSelector `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
OnlyFailed bool `protobuf:"varint,2,opt,name=only_failed,json=onlyFailed,proto3" json:"only_failed,omitempty"`
}
func (x *ClearHistoryRequest) Reset() {
*x = ClearHistoryRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[0]
mi := &file_v1_service_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -50,7 +128,7 @@ func (x *ClearHistoryRequest) String() string {
func (*ClearHistoryRequest) ProtoMessage() {}
func (x *ClearHistoryRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[0]
mi := &file_v1_service_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -63,21 +141,14 @@ func (x *ClearHistoryRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ClearHistoryRequest.ProtoReflect.Descriptor instead.
func (*ClearHistoryRequest) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{0}
return file_v1_service_proto_rawDescGZIP(), []int{1}
}
func (x *ClearHistoryRequest) GetRepoId() string {
func (x *ClearHistoryRequest) GetSelector() *OpSelector {
if x != nil {
return x.RepoId
return x.Selector
}
return ""
}
func (x *ClearHistoryRequest) GetPlanId() string {
if x != nil {
return x.PlanId
}
return ""
return nil
}
func (x *ClearHistoryRequest) GetOnlyFailed() bool {
@@ -87,13 +158,6 @@ func (x *ClearHistoryRequest) GetOnlyFailed() bool {
return false
}
func (x *ClearHistoryRequest) GetOps() []int64 {
if x != nil {
return x.Ops
}
return nil
}
type ForgetRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -107,7 +171,7 @@ type ForgetRequest struct {
func (x *ForgetRequest) Reset() {
*x = ForgetRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[1]
mi := &file_v1_service_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -120,7 +184,7 @@ func (x *ForgetRequest) String() string {
func (*ForgetRequest) ProtoMessage() {}
func (x *ForgetRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[1]
mi := &file_v1_service_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -133,7 +197,7 @@ func (x *ForgetRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ForgetRequest.ProtoReflect.Descriptor instead.
func (*ForgetRequest) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{1}
return file_v1_service_proto_rawDescGZIP(), []int{2}
}
func (x *ForgetRequest) GetRepoId() string {
@@ -169,7 +233,7 @@ type ListSnapshotsRequest struct {
func (x *ListSnapshotsRequest) Reset() {
*x = ListSnapshotsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[2]
mi := &file_v1_service_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -182,7 +246,7 @@ func (x *ListSnapshotsRequest) String() string {
func (*ListSnapshotsRequest) ProtoMessage() {}
func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[2]
mi := &file_v1_service_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -195,7 +259,7 @@ func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListSnapshotsRequest.ProtoReflect.Descriptor instead.
func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{2}
return file_v1_service_proto_rawDescGZIP(), []int{3}
}
func (x *ListSnapshotsRequest) GetRepoId() string {
@@ -217,18 +281,14 @@ type GetOperationsRequest struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RepoId string `protobuf:"bytes,1,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"`
PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"`
SnapshotId string `protobuf:"bytes,4,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"`
FlowId int64 `protobuf:"varint,6,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"`
Ids []int64 `protobuf:"varint,5,rep,packed,name=ids,proto3" json:"ids,omitempty"`
LastN int64 `protobuf:"varint,3,opt,name=last_n,json=lastN,proto3" json:"last_n,omitempty"` // limit to the last n operations
Selector *OpSelector `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
LastN int64 `protobuf:"varint,2,opt,name=last_n,json=lastN,proto3" json:"last_n,omitempty"` // limit to the last n operations
}
func (x *GetOperationsRequest) Reset() {
*x = GetOperationsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[3]
mi := &file_v1_service_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -241,7 +301,7 @@ func (x *GetOperationsRequest) String() string {
func (*GetOperationsRequest) ProtoMessage() {}
func (x *GetOperationsRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[3]
mi := &file_v1_service_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -254,40 +314,12 @@ func (x *GetOperationsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetOperationsRequest.ProtoReflect.Descriptor instead.
func (*GetOperationsRequest) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{3}
return file_v1_service_proto_rawDescGZIP(), []int{4}
}
func (x *GetOperationsRequest) GetRepoId() string {
func (x *GetOperationsRequest) GetSelector() *OpSelector {
if x != nil {
return x.RepoId
}
return ""
}
func (x *GetOperationsRequest) GetPlanId() string {
if x != nil {
return x.PlanId
}
return ""
}
func (x *GetOperationsRequest) GetSnapshotId() string {
if x != nil {
return x.SnapshotId
}
return ""
}
func (x *GetOperationsRequest) GetFlowId() int64 {
if x != nil {
return x.FlowId
}
return 0
}
func (x *GetOperationsRequest) GetIds() []int64 {
if x != nil {
return x.Ids
return x.Selector
}
return nil
}
@@ -314,7 +346,7 @@ type RestoreSnapshotRequest struct {
func (x *RestoreSnapshotRequest) Reset() {
*x = RestoreSnapshotRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[4]
mi := &file_v1_service_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -327,7 +359,7 @@ func (x *RestoreSnapshotRequest) String() string {
func (*RestoreSnapshotRequest) ProtoMessage() {}
func (x *RestoreSnapshotRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[4]
mi := &file_v1_service_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -340,7 +372,7 @@ func (x *RestoreSnapshotRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RestoreSnapshotRequest.ProtoReflect.Descriptor instead.
func (*RestoreSnapshotRequest) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{4}
return file_v1_service_proto_rawDescGZIP(), []int{5}
}
func (x *RestoreSnapshotRequest) GetPlanId() string {
@@ -391,7 +423,7 @@ type ListSnapshotFilesRequest struct {
func (x *ListSnapshotFilesRequest) Reset() {
*x = ListSnapshotFilesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[5]
mi := &file_v1_service_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -404,7 +436,7 @@ func (x *ListSnapshotFilesRequest) String() string {
func (*ListSnapshotFilesRequest) ProtoMessage() {}
func (x *ListSnapshotFilesRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[5]
mi := &file_v1_service_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -417,7 +449,7 @@ func (x *ListSnapshotFilesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListSnapshotFilesRequest.ProtoReflect.Descriptor instead.
func (*ListSnapshotFilesRequest) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{5}
return file_v1_service_proto_rawDescGZIP(), []int{6}
}
func (x *ListSnapshotFilesRequest) GetRepoId() string {
@@ -453,7 +485,7 @@ type ListSnapshotFilesResponse struct {
func (x *ListSnapshotFilesResponse) Reset() {
*x = ListSnapshotFilesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[6]
mi := &file_v1_service_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -466,7 +498,7 @@ func (x *ListSnapshotFilesResponse) String() string {
func (*ListSnapshotFilesResponse) ProtoMessage() {}
func (x *ListSnapshotFilesResponse) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[6]
mi := &file_v1_service_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -479,7 +511,7 @@ func (x *ListSnapshotFilesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListSnapshotFilesResponse.ProtoReflect.Descriptor instead.
func (*ListSnapshotFilesResponse) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{6}
return file_v1_service_proto_rawDescGZIP(), []int{7}
}
func (x *ListSnapshotFilesResponse) GetPath() string {
@@ -507,7 +539,7 @@ type LogDataRequest struct {
func (x *LogDataRequest) Reset() {
*x = LogDataRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[7]
mi := &file_v1_service_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -520,7 +552,7 @@ func (x *LogDataRequest) String() string {
func (*LogDataRequest) ProtoMessage() {}
func (x *LogDataRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[7]
mi := &file_v1_service_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -533,7 +565,7 @@ func (x *LogDataRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use LogDataRequest.ProtoReflect.Descriptor instead.
func (*LogDataRequest) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{7}
return file_v1_service_proto_rawDescGZIP(), []int{8}
}
func (x *LogDataRequest) GetRef() string {
@@ -563,7 +595,7 @@ type LsEntry struct {
func (x *LsEntry) Reset() {
*x = LsEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[8]
mi := &file_v1_service_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -576,7 +608,7 @@ func (x *LsEntry) String() string {
func (*LsEntry) ProtoMessage() {}
func (x *LsEntry) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[8]
mi := &file_v1_service_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -589,7 +621,7 @@ func (x *LsEntry) ProtoReflect() protoreflect.Message {
// Deprecated: Use LsEntry.ProtoReflect.Descriptor instead.
func (*LsEntry) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{8}
return file_v1_service_proto_rawDescGZIP(), []int{9}
}
func (x *LsEntry) GetName() string {
@@ -674,7 +706,7 @@ type RunCommandRequest struct {
func (x *RunCommandRequest) Reset() {
*x = RunCommandRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_v1_service_proto_msgTypes[9]
mi := &file_v1_service_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -687,7 +719,7 @@ func (x *RunCommandRequest) String() string {
func (*RunCommandRequest) ProtoMessage() {}
func (x *RunCommandRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_service_proto_msgTypes[9]
mi := &file_v1_service_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -700,7 +732,7 @@ func (x *RunCommandRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RunCommandRequest.ProtoReflect.Descriptor instead.
func (*RunCommandRequest) Descriptor() ([]byte, []int) {
return file_v1_service_proto_rawDescGZIP(), []int{9}
return file_v1_service_proto_rawDescGZIP(), []int{10}
}
func (x *RunCommandRequest) GetRepoId() string {
@@ -729,156 +761,158 @@ var file_v1_service_proto_rawDesc = []byte{
0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7a, 0x0a, 0x13, 0x43,
0x6c, 0x65, 0x61, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70,
0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c,
0x61, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x66, 0x61, 0x69,
0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6f, 0x6e, 0x6c, 0x79, 0x46,
0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03,
0x28, 0x03, 0x52, 0x03, 0x6f, 0x70, 0x73, 0x22, 0x62, 0x0a, 0x0d, 0x46, 0x6f, 0x72, 0x67, 0x65,
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8a, 0x01, 0x0a, 0x0a,
0x4f, 0x70, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07,
0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72,
0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1f,
0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x12,
0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x22, 0x62, 0x0a, 0x13, 0x43, 0x6c, 0x65, 0x61,
0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x2a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x0e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f,
0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f,
0x6e, 0x6c, 0x79, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0a, 0x6f, 0x6e, 0x6c, 0x79, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x62, 0x0a, 0x0d,
0x46, 0x6f, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a,
0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12,
0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64,
0x22, 0x48, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f,
0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49,
0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e,
0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x14, 0x4c,
0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07,
0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70,
0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17,
0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64,
0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49,
0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01,
0x28, 0x03, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64,
0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x15, 0x0a, 0x06,
0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x61,
0x73, 0x74, 0x4e, 0x22, 0x97, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53,
0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17,
0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f,
0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64,
0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49,
0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x68, 0x0a,
0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c,
0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70,
0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f,
0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x14, 0x47, 0x65,
0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x2a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x53, 0x65, 0x6c, 0x65,
0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x15,
0x0a, 0x06, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
0x6c, 0x61, 0x73, 0x74, 0x4e, 0x22, 0x97, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72,
0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70,
0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f,
0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x56, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x53,
0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72,
0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22,
0x22, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x72, 0x65, 0x66, 0x22, 0xd3, 0x01, 0x0a, 0x07, 0x4c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75,
0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a,
0x03, 0x67, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12,
0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73,
0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
0x03, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65,
0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a,
0x05, 0x61, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x74,
0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x11, 0x52, 0x75, 0x6e,
0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17,
0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
0x64, 0x32, 0x9e, 0x09, 0x0a, 0x08, 0x42, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x73, 0x74, 0x12, 0x31,
0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x1a, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22,
0x00, 0x12, 0x25, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0a,
0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x0a, 0x2e, 0x76, 0x31, 0x2e,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x21, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x52,
0x65, 0x70, 0x6f, 0x12, 0x08, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x1a, 0x0a, 0x2e,
0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x12, 0x47,
0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74,
0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4f,
0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x30,
0x01, 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x76,
0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22,
0x00, 0x12, 0x43, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
0x74, 0x73, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70,
0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x76,
0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x69, 0x63, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e,
0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x31,
0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22,
0x68, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46,
0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72,
0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65,
0x70, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73,
0x68, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x56, 0x0a, 0x19, 0x4c, 0x69, 0x73,
0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x07, 0x65, 0x6e,
0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x76, 0x31,
0x2e, 0x4c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65,
0x73, 0x22, 0x22, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x72, 0x65, 0x66, 0x22, 0xd3, 0x01, 0x0a, 0x07, 0x4c, 0x73, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a,
0x03, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12,
0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x69,
0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52,
0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20,
0x01, 0x28, 0x03, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x69,
0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x61, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x61, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x11, 0x52,
0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d,
0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
0x61, 0x6e, 0x64, 0x32, 0x9e, 0x09, 0x0a, 0x08, 0x42, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x73, 0x74,
0x12, 0x31, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x22, 0x00, 0x12, 0x25, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x12, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x0a, 0x2e, 0x76,
0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x21, 0x0a, 0x07, 0x41, 0x64,
0x64, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x08, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x1a,
0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x44, 0x0a,
0x12, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x76, 0x31,
0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22,
0x00, 0x30, 0x01, 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11,
0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73,
0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73,
0x68, 0x6f, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e,
0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x69, 0x63, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74,
0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x2e,
0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46,
0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31,
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c,
0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0e, 0x49, 0x6e,
0x64, 0x65, 0x78, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x12, 0x2e, 0x74,
0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65,
0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x06, 0x42, 0x61,
0x63, 0x6b, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72,
0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0e,
0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x12,
0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x06,
0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53,
0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x05, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x12, 0x12, 0x2e,
0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75,
0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x46,
0x6f, 0x72, 0x67, 0x65, 0x74, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65,
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x2e,
0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x2e,
0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75,
0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x05, 0x53,
0x74, 0x61, 0x74, 0x73, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72,
0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x22, 0x00, 0x12, 0x35, 0x0a, 0x05, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x12, 0x12, 0x2e, 0x74, 0x79,
0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a,
0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x11, 0x2e, 0x74,
0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a,
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x46, 0x6f, 0x72,
0x67, 0x65, 0x74, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x74, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00,
0x12, 0x3f, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31,
0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
0x00, 0x12, 0x36, 0x0a, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x2e, 0x74, 0x79,
0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a,
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61,
0x74, 0x73, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00,
0x12, 0x35, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x11, 0x2e, 0x74, 0x79, 0x70,
0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e,
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x07, 0x47, 0x65, 0x74,
0x4c, 0x6f, 0x67, 0x73, 0x12, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74,
0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a,
0x0a, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x15, 0x2e, 0x76, 0x31,
0x2e, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73,
0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x0e, 0x47, 0x65, 0x74,
0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x52, 0x4c, 0x12, 0x11, 0x2e, 0x74, 0x79,
0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x12,
0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
0x75, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0c, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x69, 0x73,
0x74, 0x6f, 0x72, 0x79, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48,
0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4c, 0x6f,
0x67, 0x73, 0x12, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42,
0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0a, 0x52,
0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x52,
0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61,
0x6c, 0x75, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x6f,
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x52, 0x4c, 0x12, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65,
0x73, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x12, 0x2e, 0x74,
0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65,
0x22, 0x00, 0x12, 0x41, 0x0a, 0x0c, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f,
0x72, 0x79, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x69, 0x73,
0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x10, 0x50, 0x61, 0x74, 0x68, 0x41, 0x75, 0x74,
0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65,
0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x11, 0x2e,
0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74,
0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
0x2f, 0x67, 0x61, 0x72, 0x65, 0x74, 0x68, 0x67, 0x65, 0x6f, 0x72, 0x67, 0x65, 0x2f, 0x62, 0x61,
0x63, 0x6b, 0x72, 0x65, 0x73, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x31,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x10, 0x50, 0x61, 0x74, 0x68, 0x41,
0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x74, 0x79,
0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a,
0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69,
0x73, 0x74, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x72, 0x65, 0x74, 0x68, 0x67, 0x65, 0x6f, 0x72, 0x67, 0x65, 0x2f,
0x62, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x73, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f,
0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -893,76 +927,79 @@ func file_v1_service_proto_rawDescGZIP() []byte {
return file_v1_service_proto_rawDescData
}
var file_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_v1_service_proto_goTypes = []interface{}{
(*ClearHistoryRequest)(nil), // 0: v1.ClearHistoryRequest
(*ForgetRequest)(nil), // 1: v1.ForgetRequest
(*ListSnapshotsRequest)(nil), // 2: v1.ListSnapshotsRequest
(*GetOperationsRequest)(nil), // 3: v1.GetOperationsRequest
(*RestoreSnapshotRequest)(nil), // 4: v1.RestoreSnapshotRequest
(*ListSnapshotFilesRequest)(nil), // 5: v1.ListSnapshotFilesRequest
(*ListSnapshotFilesResponse)(nil), // 6: v1.ListSnapshotFilesResponse
(*LogDataRequest)(nil), // 7: v1.LogDataRequest
(*LsEntry)(nil), // 8: v1.LsEntry
(*RunCommandRequest)(nil), // 9: v1.RunCommandRequest
(*emptypb.Empty)(nil), // 10: google.protobuf.Empty
(*Config)(nil), // 11: v1.Config
(*Repo)(nil), // 12: v1.Repo
(*types.StringValue)(nil), // 13: types.StringValue
(*types.Int64Value)(nil), // 14: types.Int64Value
(*OperationEvent)(nil), // 15: v1.OperationEvent
(*OperationList)(nil), // 16: v1.OperationList
(*ResticSnapshotList)(nil), // 17: v1.ResticSnapshotList
(*types.BytesValue)(nil), // 18: types.BytesValue
(*types.StringList)(nil), // 19: types.StringList
(*OpSelector)(nil), // 0: v1.OpSelector
(*ClearHistoryRequest)(nil), // 1: v1.ClearHistoryRequest
(*ForgetRequest)(nil), // 2: v1.ForgetRequest
(*ListSnapshotsRequest)(nil), // 3: v1.ListSnapshotsRequest
(*GetOperationsRequest)(nil), // 4: v1.GetOperationsRequest
(*RestoreSnapshotRequest)(nil), // 5: v1.RestoreSnapshotRequest
(*ListSnapshotFilesRequest)(nil), // 6: v1.ListSnapshotFilesRequest
(*ListSnapshotFilesResponse)(nil), // 7: v1.ListSnapshotFilesResponse
(*LogDataRequest)(nil), // 8: v1.LogDataRequest
(*LsEntry)(nil), // 9: v1.LsEntry
(*RunCommandRequest)(nil), // 10: v1.RunCommandRequest
(*emptypb.Empty)(nil), // 11: google.protobuf.Empty
(*Config)(nil), // 12: v1.Config
(*Repo)(nil), // 13: v1.Repo
(*types.StringValue)(nil), // 14: types.StringValue
(*types.Int64Value)(nil), // 15: types.Int64Value
(*OperationEvent)(nil), // 16: v1.OperationEvent
(*OperationList)(nil), // 17: v1.OperationList
(*ResticSnapshotList)(nil), // 18: v1.ResticSnapshotList
(*types.BytesValue)(nil), // 19: types.BytesValue
(*types.StringList)(nil), // 20: types.StringList
}
var file_v1_service_proto_depIdxs = []int32{
8, // 0: v1.ListSnapshotFilesResponse.entries:type_name -> v1.LsEntry
10, // 1: v1.Backrest.GetConfig:input_type -> google.protobuf.Empty
11, // 2: v1.Backrest.SetConfig:input_type -> v1.Config
12, // 3: v1.Backrest.AddRepo:input_type -> v1.Repo
10, // 4: v1.Backrest.GetOperationEvents:input_type -> google.protobuf.Empty
3, // 5: v1.Backrest.GetOperations:input_type -> v1.GetOperationsRequest
2, // 6: v1.Backrest.ListSnapshots:input_type -> v1.ListSnapshotsRequest
5, // 7: v1.Backrest.ListSnapshotFiles:input_type -> v1.ListSnapshotFilesRequest
13, // 8: v1.Backrest.IndexSnapshots:input_type -> types.StringValue
13, // 9: v1.Backrest.Backup:input_type -> types.StringValue
13, // 10: v1.Backrest.Prune:input_type -> types.StringValue
1, // 11: v1.Backrest.Forget:input_type -> v1.ForgetRequest
4, // 12: v1.Backrest.Restore:input_type -> v1.RestoreSnapshotRequest
13, // 13: v1.Backrest.Unlock:input_type -> types.StringValue
13, // 14: v1.Backrest.Stats:input_type -> types.StringValue
14, // 15: v1.Backrest.Cancel:input_type -> types.Int64Value
7, // 16: v1.Backrest.GetLogs:input_type -> v1.LogDataRequest
9, // 17: v1.Backrest.RunCommand:input_type -> v1.RunCommandRequest
14, // 18: v1.Backrest.GetDownloadURL:input_type -> types.Int64Value
0, // 19: v1.Backrest.ClearHistory:input_type -> v1.ClearHistoryRequest
13, // 20: v1.Backrest.PathAutocomplete:input_type -> types.StringValue
11, // 21: v1.Backrest.GetConfig:output_type -> v1.Config
11, // 22: v1.Backrest.SetConfig:output_type -> v1.Config
11, // 23: v1.Backrest.AddRepo:output_type -> v1.Config
15, // 24: v1.Backrest.GetOperationEvents:output_type -> v1.OperationEvent
16, // 25: v1.Backrest.GetOperations:output_type -> v1.OperationList
17, // 26: v1.Backrest.ListSnapshots:output_type -> v1.ResticSnapshotList
6, // 27: v1.Backrest.ListSnapshotFiles:output_type -> v1.ListSnapshotFilesResponse
10, // 28: v1.Backrest.IndexSnapshots:output_type -> google.protobuf.Empty
10, // 29: v1.Backrest.Backup:output_type -> google.protobuf.Empty
10, // 30: v1.Backrest.Prune:output_type -> google.protobuf.Empty
10, // 31: v1.Backrest.Forget:output_type -> google.protobuf.Empty
10, // 32: v1.Backrest.Restore:output_type -> google.protobuf.Empty
10, // 33: v1.Backrest.Unlock:output_type -> google.protobuf.Empty
10, // 34: v1.Backrest.Stats:output_type -> google.protobuf.Empty
10, // 35: v1.Backrest.Cancel:output_type -> google.protobuf.Empty
18, // 36: v1.Backrest.GetLogs:output_type -> types.BytesValue
18, // 37: v1.Backrest.RunCommand:output_type -> types.BytesValue
13, // 38: v1.Backrest.GetDownloadURL:output_type -> types.StringValue
10, // 39: v1.Backrest.ClearHistory:output_type -> google.protobuf.Empty
19, // 40: v1.Backrest.PathAutocomplete:output_type -> types.StringList
21, // [21:41] is the sub-list for method output_type
1, // [1:21] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
0, // 0: v1.ClearHistoryRequest.selector:type_name -> v1.OpSelector
0, // 1: v1.GetOperationsRequest.selector:type_name -> v1.OpSelector
9, // 2: v1.ListSnapshotFilesResponse.entries:type_name -> v1.LsEntry
11, // 3: v1.Backrest.GetConfig:input_type -> google.protobuf.Empty
12, // 4: v1.Backrest.SetConfig:input_type -> v1.Config
13, // 5: v1.Backrest.AddRepo:input_type -> v1.Repo
11, // 6: v1.Backrest.GetOperationEvents:input_type -> google.protobuf.Empty
4, // 7: v1.Backrest.GetOperations:input_type -> v1.GetOperationsRequest
3, // 8: v1.Backrest.ListSnapshots:input_type -> v1.ListSnapshotsRequest
6, // 9: v1.Backrest.ListSnapshotFiles:input_type -> v1.ListSnapshotFilesRequest
14, // 10: v1.Backrest.IndexSnapshots:input_type -> types.StringValue
14, // 11: v1.Backrest.Backup:input_type -> types.StringValue
14, // 12: v1.Backrest.Prune:input_type -> types.StringValue
2, // 13: v1.Backrest.Forget:input_type -> v1.ForgetRequest
5, // 14: v1.Backrest.Restore:input_type -> v1.RestoreSnapshotRequest
14, // 15: v1.Backrest.Unlock:input_type -> types.StringValue
14, // 16: v1.Backrest.Stats:input_type -> types.StringValue
15, // 17: v1.Backrest.Cancel:input_type -> types.Int64Value
8, // 18: v1.Backrest.GetLogs:input_type -> v1.LogDataRequest
10, // 19: v1.Backrest.RunCommand:input_type -> v1.RunCommandRequest
15, // 20: v1.Backrest.GetDownloadURL:input_type -> types.Int64Value
1, // 21: v1.Backrest.ClearHistory:input_type -> v1.ClearHistoryRequest
14, // 22: v1.Backrest.PathAutocomplete:input_type -> types.StringValue
12, // 23: v1.Backrest.GetConfig:output_type -> v1.Config
12, // 24: v1.Backrest.SetConfig:output_type -> v1.Config
12, // 25: v1.Backrest.AddRepo:output_type -> v1.Config
16, // 26: v1.Backrest.GetOperationEvents:output_type -> v1.OperationEvent
17, // 27: v1.Backrest.GetOperations:output_type -> v1.OperationList
18, // 28: v1.Backrest.ListSnapshots:output_type -> v1.ResticSnapshotList
7, // 29: v1.Backrest.ListSnapshotFiles:output_type -> v1.ListSnapshotFilesResponse
11, // 30: v1.Backrest.IndexSnapshots:output_type -> google.protobuf.Empty
11, // 31: v1.Backrest.Backup:output_type -> google.protobuf.Empty
11, // 32: v1.Backrest.Prune:output_type -> google.protobuf.Empty
11, // 33: v1.Backrest.Forget:output_type -> google.protobuf.Empty
11, // 34: v1.Backrest.Restore:output_type -> google.protobuf.Empty
11, // 35: v1.Backrest.Unlock:output_type -> google.protobuf.Empty
11, // 36: v1.Backrest.Stats:output_type -> google.protobuf.Empty
11, // 37: v1.Backrest.Cancel:output_type -> google.protobuf.Empty
19, // 38: v1.Backrest.GetLogs:output_type -> types.BytesValue
19, // 39: v1.Backrest.RunCommand:output_type -> types.BytesValue
14, // 40: v1.Backrest.GetDownloadURL:output_type -> types.StringValue
11, // 41: v1.Backrest.ClearHistory:output_type -> google.protobuf.Empty
20, // 42: v1.Backrest.PathAutocomplete:output_type -> types.StringList
23, // [23:43] is the sub-list for method output_type
3, // [3:23] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
}
func init() { file_v1_service_proto_init() }
@@ -975,7 +1012,7 @@ func file_v1_service_proto_init() {
file_v1_operations_proto_init()
if !protoimpl.UnsafeEnabled {
file_v1_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClearHistoryRequest); i {
switch v := v.(*OpSelector); i {
case 0:
return &v.state
case 1:
@@ -987,7 +1024,7 @@ func file_v1_service_proto_init() {
}
}
file_v1_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ForgetRequest); i {
switch v := v.(*ClearHistoryRequest); i {
case 0:
return &v.state
case 1:
@@ -999,7 +1036,7 @@ func file_v1_service_proto_init() {
}
}
file_v1_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListSnapshotsRequest); i {
switch v := v.(*ForgetRequest); i {
case 0:
return &v.state
case 1:
@@ -1011,7 +1048,7 @@ func file_v1_service_proto_init() {
}
}
file_v1_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetOperationsRequest); i {
switch v := v.(*ListSnapshotsRequest); i {
case 0:
return &v.state
case 1:
@@ -1023,7 +1060,7 @@ func file_v1_service_proto_init() {
}
}
file_v1_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RestoreSnapshotRequest); i {
switch v := v.(*GetOperationsRequest); i {
case 0:
return &v.state
case 1:
@@ -1035,7 +1072,7 @@ func file_v1_service_proto_init() {
}
}
file_v1_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListSnapshotFilesRequest); i {
switch v := v.(*RestoreSnapshotRequest); i {
case 0:
return &v.state
case 1:
@@ -1047,7 +1084,7 @@ func file_v1_service_proto_init() {
}
}
file_v1_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListSnapshotFilesResponse); i {
switch v := v.(*ListSnapshotFilesRequest); i {
case 0:
return &v.state
case 1:
@@ -1059,7 +1096,7 @@ func file_v1_service_proto_init() {
}
}
file_v1_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LogDataRequest); i {
switch v := v.(*ListSnapshotFilesResponse); i {
case 0:
return &v.state
case 1:
@@ -1071,7 +1108,7 @@ func file_v1_service_proto_init() {
}
}
file_v1_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsEntry); i {
switch v := v.(*LogDataRequest); i {
case 0:
return &v.state
case 1:
@@ -1083,6 +1120,18 @@ func file_v1_service_proto_init() {
}
}
file_v1_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LsEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_v1_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RunCommandRequest); i {
case 0:
return &v.state
@@ -1101,7 +1150,7 @@ func file_v1_service_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_v1_service_proto_rawDesc,
NumEnums: 0,
NumMessages: 10,
NumMessages: 11,
NumExtensions: 0,
NumServices: 1,
},
+32 -31
View File
@@ -8,6 +8,7 @@ import (
"fmt"
"os"
"path"
"reflect"
"time"
"connectrpc.com/connect"
@@ -246,32 +247,18 @@ func (s *BackrestHandler) GetOperations(ctx context.Context, req *connect.Reques
if req.Msg.LastN != 0 {
idCollector = indexutil.CollectLastN(int(req.Msg.LastN))
}
q, err := opSelectorToQuery(req.Msg.Selector)
if err != nil {
return nil, err
}
var err error
var ops []*v1.Operation
opCollector := func(op *v1.Operation) error {
ops = append(ops, op)
return nil
}
if req.Msg.RepoId != "" && req.Msg.PlanId != "" {
return nil, errors.New("cannot specify both repoId and planId")
} else if req.Msg.PlanId != "" {
err = s.oplog.ForEachByPlan(req.Msg.PlanId, idCollector, opCollector)
} else if req.Msg.RepoId != "" {
err = s.oplog.ForEachByRepo(req.Msg.RepoId, idCollector, opCollector)
} else if req.Msg.SnapshotId != "" {
err = s.oplog.ForEachBySnapshotId(req.Msg.SnapshotId, idCollector, opCollector)
} else if req.Msg.FlowId != 0 {
err = s.oplog.ForEachByFlowId(req.Msg.FlowId, idCollector, opCollector)
} else if len(req.Msg.Ids) > 0 {
ops = make([]*v1.Operation, 0, len(req.Msg.Ids))
for i, id := range req.Msg.Ids {
op, err := s.oplog.Get(id)
if err != nil {
return nil, fmt.Errorf("failed to get operation %d: %w", i, err)
}
ops = append(ops, op)
}
if !reflect.DeepEqual(q, oplog.Query{}) {
err = s.oplog.ForEach(q, idCollector, opCollector)
} else {
err = s.oplog.ForAll(opCollector)
}
@@ -489,10 +476,6 @@ func (s *BackrestHandler) ClearHistory(ctx context.Context, req *connect.Request
var err error
var ids []int64
if len(req.Msg.Ops) != 0 {
ids = append(ids, req.Msg.Ops...)
}
opCollector := func(op *v1.Operation) error {
if !req.Msg.OnlyFailed || op.Status == v1.OperationStatus_STATUS_ERROR {
ids = append(ids, op.Id)
@@ -500,14 +483,15 @@ func (s *BackrestHandler) ClearHistory(ctx context.Context, req *connect.Request
return nil
}
if req.Msg.RepoId != "" && req.Msg.PlanId != "" {
return nil, errors.New("cannot specify both repoId and planId")
} else if req.Msg.PlanId != "" {
err = s.oplog.ForEachByPlan(req.Msg.PlanId, indexutil.CollectAll(), opCollector)
} else if req.Msg.RepoId != "" {
err = s.oplog.ForEachByRepo(req.Msg.RepoId, indexutil.CollectAll(), opCollector)
q, err := opSelectorToQuery(req.Msg.Selector)
if err != nil {
return nil, err
}
if !reflect.DeepEqual(q, oplog.Query{}) {
err = s.oplog.ForEach(q, indexutil.CollectAll(), opCollector)
} else {
err = s.oplog.ForAll(opCollector)
}
if err != nil {
return nil, fmt.Errorf("failed to get operations to delete: %w", err)
}
@@ -566,3 +550,20 @@ func (s *BackrestHandler) PathAutocomplete(ctx context.Context, path *connect.Re
return connect.NewResponse(&types.StringList{Values: paths}), nil
}
func opSelectorToQuery(sel *v1.OpSelector) (oplog.Query, error) {
if sel == nil {
return oplog.Query{}, errors.New("empty selector")
}
q := oplog.Query{
RepoId: sel.RepoId,
PlanId: sel.PlanId,
SnapshotId: sel.SnapshotId,
FlowId: sel.FlowId,
}
if len(sel.Ids) > 0 && reflect.DeepEqual(q, oplog.Query{}) {
return oplog.Query{}, errors.New("cannot specify both query and ids")
}
q.Ids = sel.Ids
return q, nil
}
+32 -25
View File
@@ -13,7 +13,6 @@ import (
"github.com/garethgeorge/backrest/internal/oplog/indexutil"
"github.com/garethgeorge/backrest/internal/oplog/serializationutil"
"github.com/garethgeorge/backrest/internal/protoutil"
"github.com/garethgeorge/backrest/pkg/restic"
bolt "go.etcd.io/bbolt"
"go.uber.org/zap"
"google.golang.org/protobuf/proto"
@@ -361,33 +360,41 @@ func (o *OpLog) Get(id int64) (*v1.Operation, error) {
return op, nil
}
func (o *OpLog) ForEachByRepo(repoId string, collector indexutil.Collector, do func(op *v1.Operation) error) error {
return o.db.View(func(tx *bolt.Tx) error {
ids := collector(indexutil.IndexSearchByteValue(tx.Bucket(RepoIndexBucket), []byte(repoId)))
return o.forOpsByIds(tx, ids, do)
})
// Query represents a query to the operation log.
type Query struct {
RepoId string
PlanId string
SnapshotId string
FlowId int64
InstanceId string
Ids []int64
}
func (o *OpLog) ForEachByPlan(planId string, collector indexutil.Collector, do func(op *v1.Operation) error) error {
func (o *OpLog) ForEach(query Query, collector indexutil.Collector, do func(op *v1.Operation) error) error {
return o.db.View(func(tx *bolt.Tx) error {
ids := collector(indexutil.IndexSearchByteValue(tx.Bucket(PlanIndexBucket), []byte(planId)))
return o.forOpsByIds(tx, ids, do)
})
}
func (o *OpLog) ForEachBySnapshotId(snapshotId string, collector indexutil.Collector, do func(op *v1.Operation) error) error {
if err := restic.ValidateSnapshotId(snapshotId); err != nil {
return nil
}
return o.db.View(func(tx *bolt.Tx) error {
ids := collector(indexutil.IndexSearchByteValue(tx.Bucket(SnapshotIndexBucket), []byte(snapshotId)))
return o.forOpsByIds(tx, ids, do)
})
}
func (o *OpLog) ForEachByFlowId(flowId int64, collector indexutil.Collector, do func(op *v1.Operation) error) error {
return o.db.View(func(tx *bolt.Tx) error {
ids := collector(indexutil.IndexSearchByteValue(tx.Bucket(FlowIdIndexBucket), serializationutil.Itob(flowId)))
iterators := make([]indexutil.IndexIterator, 0, 5)
if query.RepoId != "" {
iterators = append(iterators, indexutil.IndexSearchByteValue(tx.Bucket(RepoIndexBucket), []byte(query.RepoId)))
}
if query.PlanId != "" {
iterators = append(iterators, indexutil.IndexSearchByteValue(tx.Bucket(PlanIndexBucket), []byte(query.PlanId)))
}
if query.SnapshotId != "" {
iterators = append(iterators, indexutil.IndexSearchByteValue(tx.Bucket(SnapshotIndexBucket), []byte(query.SnapshotId)))
}
if query.FlowId != 0 {
iterators = append(iterators, indexutil.IndexSearchByteValue(tx.Bucket(FlowIdIndexBucket), serializationutil.Itob(query.FlowId)))
}
if query.InstanceId != "" {
iterators = append(iterators, indexutil.IndexSearchByteValue(tx.Bucket(InstanceIndexBucket), []byte(query.InstanceId)))
}
if len(iterators) == 0 {
return errors.New("no query parameters provided")
}
ids := collector(indexutil.NewJoinIterator(iterators...))
if len(query.Ids) > 0 {
ids = append(ids, query.Ids...)
}
return o.forOpsByIds(tx, ids, do)
})
}
+7 -7
View File
@@ -198,9 +198,9 @@ func TestListOperation(t *testing.T) {
return nil
}
if tc.byPlan {
err = log.ForEachByPlan(tc.id, indexutil.CollectAll(), collect)
err = log.ForEach(Query{PlanId: tc.id}, indexutil.CollectAll(), collect)
} else if tc.byRepo {
err = log.ForEachByRepo(tc.id, indexutil.CollectAll(), collect)
err = log.ForEach(Query{RepoId: tc.id}, indexutil.CollectAll(), collect)
} else {
t.Fatalf("must specify byPlan or byRepo")
}
@@ -237,7 +237,7 @@ func TestListByFlowId(t *testing.T) {
}
var ops []*v1.Operation
if err := log.ForEachByFlowId(1, indexutil.CollectAll(), func(op *v1.Operation) error {
if err := log.ForEach(Query{FlowId: 1}, indexutil.CollectAll(), func(op *v1.Operation) error {
ops = append(ops, op)
return nil
}); err != nil {
@@ -297,7 +297,7 @@ func TestIndexSnapshot(t *testing.T) {
}
var ops []*v1.Operation
if err := log.ForEachBySnapshotId(snapshotId, indexutil.CollectAll(), func(op *v1.Operation) error {
if err := log.ForEach(Query{SnapshotId: snapshotId}, indexutil.CollectAll(), func(op *v1.Operation) error {
ops = append(ops, op)
return nil
}); err != nil {
@@ -370,7 +370,7 @@ func collectMessages(ops []*v1.Operation) []string {
func countByRepoHelper(t *testing.T, log *OpLog, repo string, expected int) {
t.Helper()
count := 0
if err := log.ForEachByRepo(repo, indexutil.CollectAll(), func(op *v1.Operation) error {
if err := log.ForEach(Query{RepoId: repo}, indexutil.CollectAll(), func(op *v1.Operation) error {
count += 1
return nil
}); err != nil {
@@ -384,7 +384,7 @@ func countByRepoHelper(t *testing.T, log *OpLog, repo string, expected int) {
func countByPlanHelper(t *testing.T, log *OpLog, plan string, expected int) {
t.Helper()
count := 0
if err := log.ForEachByPlan(plan, indexutil.CollectAll(), func(op *v1.Operation) error {
if err := log.ForEach(Query{PlanId: plan}, indexutil.CollectAll(), func(op *v1.Operation) error {
count += 1
return nil
}); err != nil {
@@ -398,7 +398,7 @@ func countByPlanHelper(t *testing.T, log *OpLog, plan string, expected int) {
func countBySnapshotIdHelper(t *testing.T, log *OpLog, snapshotId string, expected int) {
t.Helper()
count := 0
if err := log.ForEachBySnapshotId(snapshotId, indexutil.CollectAll(), func(op *v1.Operation) error {
if err := log.ForEach(Query{SnapshotId: snapshotId}, indexutil.CollectAll(), func(op *v1.Operation) error {
count += 1
return nil
}); err != nil {
+2 -2
View File
@@ -9,9 +9,9 @@ import (
)
// FlowIDForSnapshotID returns the flow ID associated with the backup task that created snapshot ID or 0 if not found.
func FlowIDForSnapshotID(oplog *oplog.OpLog, snapshotID string) (int64, error) {
func FlowIDForSnapshotID(log *oplog.OpLog, snapshotID string) (int64, error) {
var flowID int64
if err := oplog.ForEachBySnapshotId(snapshotID, indexutil.CollectAll(), func(op *v1.Operation) error {
if err := log.ForEach(oplog.Query{SnapshotId: snapshotID}, indexutil.CollectAll(), func(op *v1.Operation) error {
if _, ok := op.Op.(*v1.Operation_OperationBackup); !ok {
return nil
}
+5 -5
View File
@@ -51,7 +51,7 @@ func NewOneoffForgetTask(repoID, planID string, flowID int64, at time.Time) Task
func forgetHelper(ctx context.Context, st ScheduledTask, taskRunner TaskRunner) error {
t := st.Task
oplog := taskRunner.OpLog()
log := taskRunner.OpLog()
r, err := taskRunner.GetRepoOrchestrator(t.RepoID())
if err != nil {
@@ -69,7 +69,7 @@ func forgetHelper(ctx context.Context, st ScheduledTask, taskRunner TaskRunner)
}
tags := []string{repo.TagForPlan(t.PlanID())}
if compat, err := useLegacyCompatMode(oplog, t.PlanID()); err != nil {
if compat, err := useLegacyCompatMode(log, t.RepoID(), t.PlanID()); err != nil {
return fmt.Errorf("check legacy compat mode: %w", err)
} else if !compat {
tags = append(tags, repo.TagForInstance(taskRunner.Config().Instance))
@@ -95,7 +95,7 @@ func forgetHelper(ctx context.Context, st ScheduledTask, taskRunner TaskRunner)
var ops []*v1.Operation
for _, forgot := range forgot {
if e := taskRunner.OpLog().ForEachBySnapshotId(forgot.Id, indexutil.CollectAll(), func(op *v1.Operation) error {
if e := taskRunner.OpLog().ForEach(oplog.Query{SnapshotId: forgot.Id}, indexutil.CollectAll(), func(op *v1.Operation) error {
ops = append(ops, op)
return nil
}); e != nil {
@@ -126,9 +126,9 @@ func forgetHelper(ctx context.Context, st ScheduledTask, taskRunner TaskRunner)
// useLegacyCompatMode checks if there are any snapshots that were created without a `created-by` tag still exist in the repo.
// The property is overridden if mixed `created-by` tag values are found.
func useLegacyCompatMode(oplog *oplog.OpLog, planID string) (bool, error) {
func useLegacyCompatMode(log *oplog.OpLog, repoID, planID string) (bool, error) {
instanceIDs := make(map[string]struct{})
if err := oplog.ForEachByPlan(planID, indexutil.CollectAll(), func(op *v1.Operation) error {
if err := log.ForEach(oplog.Query{RepoId: repoID, PlanId: planID}, indexutil.CollectAll(), func(op *v1.Operation) error {
if snapshotOp, ok := op.Op.(*v1.Operation_OperationIndexSnapshot); ok && !snapshotOp.OperationIndexSnapshot.GetForgot() {
tags := snapshotOp.OperationIndexSnapshot.GetSnapshot().GetTags()
instanceIDs[repo.InstanceIDFromTags(tags)] = struct{}{}
@@ -164,7 +164,7 @@ func indexCurrentSnapshotIdsForRepo(log *oplog.OpLog, repoId string) (map[string
knownIds := make(map[string]int64)
startTime := time.Now()
if err := log.ForEachByRepo(repoId, indexutil.CollectAll(), func(op *v1.Operation) error {
if err := log.ForEach(oplog.Query{RepoId: repoId}, indexutil.CollectAll(), func(op *v1.Operation) error {
if snapshotOp, ok := op.Op.(*v1.Operation_OperationIndexSnapshot); ok {
if snapshotOp.OperationIndexSnapshot == nil {
return fmt.Errorf("operation %q has nil OperationIndexSnapshot, this shouldn't be possible", op.Id)
+1 -1
View File
@@ -70,7 +70,7 @@ func (t *PruneTask) shouldRun(now time.Time, runner TaskRunner) (bool, error) {
func (t *PruneTask) getNextPruneTime(runner TaskRunner, policy *v1.PrunePolicy) (time.Time, error) {
var lastPruneTime time.Time
runner.OpLog().ForEachByRepo(t.RepoID(), indexutil.Reversed(indexutil.CollectAll()), func(op *v1.Operation) error {
runner.OpLog().ForEach(oplog.Query{RepoId: t.RepoID()}, indexutil.Reversed(indexutil.CollectAll()), func(op *v1.Operation) error {
if _, ok := op.Op.(*v1.Operation_OperationPrune); ok {
lastPruneTime = time.Unix(0, op.UnixTimeStartMs*int64(time.Millisecond))
return oplog.ErrStopIteration
+6
View File
@@ -87,6 +87,12 @@ message PrunePolicy {
int32 max_unused_bytes = 101 [json_name="maxUnusedBytes"]; // max number of bytes that can be unused before prune is run.
}
message CheckPolicy {
oneof policy {
int32 max_frequency_days = 1 [json_name="maxFrequencyDays"];
}
}
message Hook {
enum Condition {
CONDITION_UNKNOWN = 0;
+13 -10
View File
@@ -66,11 +66,18 @@ service Backrest {
rpc PathAutocomplete (types.StringValue) returns (types.StringList) {}
}
// OpSelector is a message that can be used to select operations e.g. by query.
message OpSelector {
repeated int64 ids = 1;
string repo_id = 2;
string plan_id = 3;
string snapshot_id = 4;
int64 flow_id = 5;
}
message ClearHistoryRequest {
string repo_id = 1;
string plan_id = 2;
bool only_failed = 3;
repeated int64 ops = 4;
OpSelector selector = 1;
bool only_failed = 2;
}
message ForgetRequest {
@@ -85,12 +92,8 @@ message ListSnapshotsRequest {
}
message GetOperationsRequest {
string repo_id = 1;
string plan_id = 2;
string snapshot_id = 4;
int64 flow_id = 6;
repeated int64 ids = 5;
int64 last_n = 3; // limit to the last n operations
OpSelector selector = 1;
int64 last_n = 2; // limit to the last n operations
}
message RestoreSnapshotRequest {
+76 -177
View File
@@ -17,14 +17,7 @@
/* eslint-disable */
// @ts-nocheck
import type {
BinaryReadOptions,
FieldList,
JsonReadOptions,
JsonValue,
PartialMessage,
PlainMessage,
} from "@bufbuild/protobuf";
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
/**
@@ -65,39 +58,22 @@ export class Http extends Message<Http> {
static readonly typeName = "google.api.Http";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "rules", kind: "message", T: HttpRule, repeated: true },
{
no: 2,
name: "fully_decode_reserved_expansion",
kind: "scalar",
T: 8 /* ScalarType.BOOL */,
},
{ no: 2, name: "fully_decode_reserved_expansion", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): Http {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Http {
return new Http().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): Http {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Http {
return new Http().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): Http {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Http {
return new Http().fromJsonString(jsonString, options);
}
static equals(
a: Http | PlainMessage<Http> | undefined,
b: Http | PlainMessage<Http> | undefined,
): boolean {
static equals(a: Http | PlainMessage<Http> | undefined, b: Http | PlainMessage<Http> | undefined): boolean {
return proto3.util.equals(Http, a, b);
}
}
@@ -396,66 +372,59 @@ export class HttpRule extends Message<HttpRule> {
*
* @generated from oneof google.api.HttpRule.pattern
*/
pattern:
| {
/**
* Maps to HTTP GET. Used for listing and getting information about
* resources.
*
* @generated from field: string get = 2;
*/
value: string;
case: "get";
}
| {
/**
* Maps to HTTP PUT. Used for replacing a resource.
*
* @generated from field: string put = 3;
*/
value: string;
case: "put";
}
| {
/**
* Maps to HTTP POST. Used for creating a resource or performing an action.
*
* @generated from field: string post = 4;
*/
value: string;
case: "post";
}
| {
/**
* Maps to HTTP DELETE. Used for deleting a resource.
*
* @generated from field: string delete = 5;
*/
value: string;
case: "delete";
}
| {
/**
* Maps to HTTP PATCH. Used for updating a resource.
*
* @generated from field: string patch = 6;
*/
value: string;
case: "patch";
}
| {
/**
* The custom pattern is used for specifying an HTTP method that is not
* included in the `pattern` field, such as HEAD, or "*" to leave the
* HTTP method unspecified for this rule. The wild-card rule is useful
* for services that provide content to Web (HTML) clients.
*
* @generated from field: google.api.CustomHttpPattern custom = 8;
*/
value: CustomHttpPattern;
case: "custom";
}
| { case: undefined; value?: undefined } = { case: undefined };
pattern: {
/**
* Maps to HTTP GET. Used for listing and getting information about
* resources.
*
* @generated from field: string get = 2;
*/
value: string;
case: "get";
} | {
/**
* Maps to HTTP PUT. Used for replacing a resource.
*
* @generated from field: string put = 3;
*/
value: string;
case: "put";
} | {
/**
* Maps to HTTP POST. Used for creating a resource or performing an action.
*
* @generated from field: string post = 4;
*/
value: string;
case: "post";
} | {
/**
* Maps to HTTP DELETE. Used for deleting a resource.
*
* @generated from field: string delete = 5;
*/
value: string;
case: "delete";
} | {
/**
* Maps to HTTP PATCH. Used for updating a resource.
*
* @generated from field: string patch = 6;
*/
value: string;
case: "patch";
} | {
/**
* The custom pattern is used for specifying an HTTP method that is not
* included in the `pattern` field, such as HEAD, or "*" to leave the
* HTTP method unspecified for this rule. The wild-card rule is useful
* for services that provide content to Web (HTML) clients.
*
* @generated from field: google.api.CustomHttpPattern custom = 8;
*/
value: CustomHttpPattern;
case: "custom";
} | { case: undefined; value?: undefined } = { case: undefined };
/**
* The name of the request field whose value is mapped to the HTTP request
@@ -499,89 +468,30 @@ export class HttpRule extends Message<HttpRule> {
static readonly typeName = "google.api.HttpRule";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "selector", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 2,
name: "get",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
oneof: "pattern",
},
{
no: 3,
name: "put",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
oneof: "pattern",
},
{
no: 4,
name: "post",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
oneof: "pattern",
},
{
no: 5,
name: "delete",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
oneof: "pattern",
},
{
no: 6,
name: "patch",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
oneof: "pattern",
},
{
no: 8,
name: "custom",
kind: "message",
T: CustomHttpPattern,
oneof: "pattern",
},
{ no: 2, name: "get", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "pattern" },
{ no: 3, name: "put", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "pattern" },
{ no: 4, name: "post", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "pattern" },
{ no: 5, name: "delete", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "pattern" },
{ no: 6, name: "patch", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "pattern" },
{ no: 8, name: "custom", kind: "message", T: CustomHttpPattern, oneof: "pattern" },
{ no: 7, name: "body", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 12,
name: "response_body",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{
no: 11,
name: "additional_bindings",
kind: "message",
T: HttpRule,
repeated: true,
},
{ no: 12, name: "response_body", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 11, name: "additional_bindings", kind: "message", T: HttpRule, repeated: true },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): HttpRule {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HttpRule {
return new HttpRule().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): HttpRule {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HttpRule {
return new HttpRule().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): HttpRule {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HttpRule {
return new HttpRule().fromJsonString(jsonString, options);
}
static equals(
a: HttpRule | PlainMessage<HttpRule> | undefined,
b: HttpRule | PlainMessage<HttpRule> | undefined,
): boolean {
static equals(a: HttpRule | PlainMessage<HttpRule> | undefined, b: HttpRule | PlainMessage<HttpRule> | undefined): boolean {
return proto3.util.equals(HttpRule, a, b);
}
}
@@ -618,31 +528,20 @@ export class CustomHttpPattern extends Message<CustomHttpPattern> {
{ no: 2, name: "path", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): CustomHttpPattern {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CustomHttpPattern {
return new CustomHttpPattern().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): CustomHttpPattern {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CustomHttpPattern {
return new CustomHttpPattern().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): CustomHttpPattern {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CustomHttpPattern {
return new CustomHttpPattern().fromJsonString(jsonString, options);
}
static equals(
a: CustomHttpPattern | PlainMessage<CustomHttpPattern> | undefined,
b: CustomHttpPattern | PlainMessage<CustomHttpPattern> | undefined,
): boolean {
static equals(a: CustomHttpPattern | PlainMessage<CustomHttpPattern> | undefined, b: CustomHttpPattern | PlainMessage<CustomHttpPattern> | undefined): boolean {
return proto3.util.equals(CustomHttpPattern, a, b);
}
}
+25 -96
View File
@@ -3,14 +3,7 @@
/* eslint-disable */
// @ts-nocheck
import type {
BinaryReadOptions,
FieldList,
JsonReadOptions,
JsonValue,
PartialMessage,
PlainMessage,
} from "@bufbuild/protobuf";
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3, protoInt64 } from "@bufbuild/protobuf";
/**
@@ -33,31 +26,19 @@ export class StringValue extends Message<StringValue> {
{ no: 1, name: "value", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): StringValue {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): StringValue {
return new StringValue().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): StringValue {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): StringValue {
return new StringValue().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): StringValue {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): StringValue {
return new StringValue().fromJsonString(jsonString, options);
}
static equals(
a: StringValue | PlainMessage<StringValue> | undefined,
b: StringValue | PlainMessage<StringValue> | undefined,
): boolean {
static equals(a: StringValue | PlainMessage<StringValue> | undefined, b: StringValue | PlainMessage<StringValue> | undefined): boolean {
return proto3.util.equals(StringValue, a, b);
}
}
@@ -82,31 +63,19 @@ export class BytesValue extends Message<BytesValue> {
{ no: 1, name: "value", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): BytesValue {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): BytesValue {
return new BytesValue().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): BytesValue {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): BytesValue {
return new BytesValue().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): BytesValue {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): BytesValue {
return new BytesValue().fromJsonString(jsonString, options);
}
static equals(
a: BytesValue | PlainMessage<BytesValue> | undefined,
b: BytesValue | PlainMessage<BytesValue> | undefined,
): boolean {
static equals(a: BytesValue | PlainMessage<BytesValue> | undefined, b: BytesValue | PlainMessage<BytesValue> | undefined): boolean {
return proto3.util.equals(BytesValue, a, b);
}
}
@@ -128,40 +97,22 @@ export class StringList extends Message<StringList> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "types.StringList";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{
no: 1,
name: "values",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
repeated: true,
},
{ no: 1, name: "values", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): StringList {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): StringList {
return new StringList().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): StringList {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): StringList {
return new StringList().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): StringList {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): StringList {
return new StringList().fromJsonString(jsonString, options);
}
static equals(
a: StringList | PlainMessage<StringList> | undefined,
b: StringList | PlainMessage<StringList> | undefined,
): boolean {
static equals(a: StringList | PlainMessage<StringList> | undefined, b: StringList | PlainMessage<StringList> | undefined): boolean {
return proto3.util.equals(StringList, a, b);
}
}
@@ -186,31 +137,19 @@ export class Int64Value extends Message<Int64Value> {
{ no: 1, name: "value", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): Int64Value {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Int64Value {
return new Int64Value().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): Int64Value {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Int64Value {
return new Int64Value().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): Int64Value {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Int64Value {
return new Int64Value().fromJsonString(jsonString, options);
}
static equals(
a: Int64Value | PlainMessage<Int64Value> | undefined,
b: Int64Value | PlainMessage<Int64Value> | undefined,
): boolean {
static equals(a: Int64Value | PlainMessage<Int64Value> | undefined, b: Int64Value | PlainMessage<Int64Value> | undefined): boolean {
return proto3.util.equals(Int64Value, a, b);
}
}
@@ -226,33 +165,23 @@ export class Empty extends Message<Empty> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "types.Empty";
static readonly fields: FieldList = proto3.util.newFieldList(() => []);
static readonly fields: FieldList = proto3.util.newFieldList(() => [
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): Empty {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Empty {
return new Empty().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): Empty {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Empty {
return new Empty().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): Empty {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Empty {
return new Empty().fromJsonString(jsonString, options);
}
static equals(
a: Empty | PlainMessage<Empty> | undefined,
b: Empty | PlainMessage<Empty> | undefined,
): boolean {
static equals(a: Empty | PlainMessage<Empty> | undefined, b: Empty | PlainMessage<Empty> | undefined): boolean {
return proto3.util.equals(Empty, a, b);
}
}
+2 -1
View File
@@ -31,5 +31,6 @@ export const Authentication = {
O: StringValue,
kind: MethodKind.Unary,
},
},
}
} as const;
+10 -40
View File
@@ -3,14 +3,7 @@
/* eslint-disable */
// @ts-nocheck
import type {
BinaryReadOptions,
FieldList,
JsonReadOptions,
JsonValue,
PartialMessage,
PlainMessage,
} from "@bufbuild/protobuf";
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
/**
@@ -39,31 +32,19 @@ export class LoginRequest extends Message<LoginRequest> {
{ no: 2, name: "password", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): LoginRequest {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LoginRequest {
return new LoginRequest().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): LoginRequest {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LoginRequest {
return new LoginRequest().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): LoginRequest {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LoginRequest {
return new LoginRequest().fromJsonString(jsonString, options);
}
static equals(
a: LoginRequest | PlainMessage<LoginRequest> | undefined,
b: LoginRequest | PlainMessage<LoginRequest> | undefined,
): boolean {
static equals(a: LoginRequest | PlainMessage<LoginRequest> | undefined, b: LoginRequest | PlainMessage<LoginRequest> | undefined): boolean {
return proto3.util.equals(LoginRequest, a, b);
}
}
@@ -90,31 +71,20 @@ export class LoginResponse extends Message<LoginResponse> {
{ no: 1, name: "token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): LoginResponse {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LoginResponse {
return new LoginResponse().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): LoginResponse {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LoginResponse {
return new LoginResponse().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): LoginResponse {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LoginResponse {
return new LoginResponse().fromJsonString(jsonString, options);
}
static equals(
a: LoginResponse | PlainMessage<LoginResponse> | undefined,
b: LoginResponse | PlainMessage<LoginResponse> | undefined,
): boolean {
static equals(a: LoginResponse | PlainMessage<LoginResponse> | undefined, b: LoginResponse | PlainMessage<LoginResponse> | undefined): boolean {
return proto3.util.equals(LoginResponse, a, b);
}
}
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -23,5 +23,6 @@ export const Hub = {
O: GetInstancesResponse,
kind: MethodKind.Unary,
},
},
}
} as const;
+10 -40
View File
@@ -3,14 +3,7 @@
/* eslint-disable */
// @ts-nocheck
import type {
BinaryReadOptions,
FieldList,
JsonReadOptions,
JsonValue,
PartialMessage,
PlainMessage,
} from "@bufbuild/protobuf";
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
/**
@@ -33,31 +26,19 @@ export class GetInstancesResponse extends Message<GetInstancesResponse> {
{ no: 1, name: "instances", kind: "message", T: Instance, repeated: true },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): GetInstancesResponse {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetInstancesResponse {
return new GetInstancesResponse().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): GetInstancesResponse {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetInstancesResponse {
return new GetInstancesResponse().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): GetInstancesResponse {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetInstancesResponse {
return new GetInstancesResponse().fromJsonString(jsonString, options);
}
static equals(
a: GetInstancesResponse | PlainMessage<GetInstancesResponse> | undefined,
b: GetInstancesResponse | PlainMessage<GetInstancesResponse> | undefined,
): boolean {
static equals(a: GetInstancesResponse | PlainMessage<GetInstancesResponse> | undefined, b: GetInstancesResponse | PlainMessage<GetInstancesResponse> | undefined): boolean {
return proto3.util.equals(GetInstancesResponse, a, b);
}
}
@@ -82,31 +63,20 @@ export class Instance extends Message<Instance> {
{ no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): Instance {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Instance {
return new Instance().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): Instance {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Instance {
return new Instance().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): Instance {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Instance {
return new Instance().fromJsonString(jsonString, options);
}
static equals(
a: Instance | PlainMessage<Instance> | undefined,
b: Instance | PlainMessage<Instance> | undefined,
): boolean {
static equals(a: Instance | PlainMessage<Instance> | undefined, b: Instance | PlainMessage<Instance> | undefined): boolean {
return proto3.util.equals(Instance, a, b);
}
}
+107 -363
View File
@@ -3,22 +3,9 @@
/* eslint-disable */
// @ts-nocheck
import type {
BinaryReadOptions,
FieldList,
JsonReadOptions,
JsonValue,
PartialMessage,
PlainMessage,
} from "@bufbuild/protobuf";
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3, protoInt64 } from "@bufbuild/protobuf";
import {
BackupProgressEntry,
BackupProgressError,
RepoStats,
ResticSnapshot,
RestoreProgressEntry,
} from "./restic_pb.js";
import { BackupProgressEntry, BackupProgressError, RepoStats, ResticSnapshot, RestoreProgressEntry } from "./restic_pb.js";
import { Hook_Condition, RetentionPolicy } from "./config_pb.js";
/**
@@ -144,40 +131,22 @@ export class OperationList extends Message<OperationList> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "v1.OperationList";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{
no: 1,
name: "operations",
kind: "message",
T: Operation,
repeated: true,
},
{ no: 1, name: "operations", kind: "message", T: Operation, repeated: true },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): OperationList {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OperationList {
return new OperationList().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): OperationList {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OperationList {
return new OperationList().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): OperationList {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OperationList {
return new OperationList().fromJsonString(jsonString, options);
}
static equals(
a: OperationList | PlainMessage<OperationList> | undefined,
b: OperationList | PlainMessage<OperationList> | undefined,
): boolean {
static equals(a: OperationList | PlainMessage<OperationList> | undefined, b: OperationList | PlainMessage<OperationList> | undefined): boolean {
return proto3.util.equals(OperationList, a, b);
}
}
@@ -260,57 +229,49 @@ export class Operation extends Message<Operation> {
/**
* @generated from oneof v1.Operation.op
*/
op:
| {
/**
* @generated from field: v1.OperationBackup operation_backup = 100;
*/
value: OperationBackup;
case: "operationBackup";
}
| {
/**
* @generated from field: v1.OperationIndexSnapshot operation_index_snapshot = 101;
*/
value: OperationIndexSnapshot;
case: "operationIndexSnapshot";
}
| {
/**
* @generated from field: v1.OperationForget operation_forget = 102;
*/
value: OperationForget;
case: "operationForget";
}
| {
/**
* @generated from field: v1.OperationPrune operation_prune = 103;
*/
value: OperationPrune;
case: "operationPrune";
}
| {
/**
* @generated from field: v1.OperationRestore operation_restore = 104;
*/
value: OperationRestore;
case: "operationRestore";
}
| {
/**
* @generated from field: v1.OperationStats operation_stats = 105;
*/
value: OperationStats;
case: "operationStats";
}
| {
/**
* @generated from field: v1.OperationRunHook operation_run_hook = 106;
*/
value: OperationRunHook;
case: "operationRunHook";
}
| { case: undefined; value?: undefined } = { case: undefined };
op: {
/**
* @generated from field: v1.OperationBackup operation_backup = 100;
*/
value: OperationBackup;
case: "operationBackup";
} | {
/**
* @generated from field: v1.OperationIndexSnapshot operation_index_snapshot = 101;
*/
value: OperationIndexSnapshot;
case: "operationIndexSnapshot";
} | {
/**
* @generated from field: v1.OperationForget operation_forget = 102;
*/
value: OperationForget;
case: "operationForget";
} | {
/**
* @generated from field: v1.OperationPrune operation_prune = 103;
*/
value: OperationPrune;
case: "operationPrune";
} | {
/**
* @generated from field: v1.OperationRestore operation_restore = 104;
*/
value: OperationRestore;
case: "operationRestore";
} | {
/**
* @generated from field: v1.OperationStats operation_stats = 105;
*/
value: OperationStats;
case: "operationStats";
} | {
/**
* @generated from field: v1.OperationRunHook operation_run_hook = 106;
*/
value: OperationRunHook;
case: "operationRunHook";
} | { case: undefined; value?: undefined } = { case: undefined };
constructor(data?: PartialMessage<Operation>) {
super();
@@ -324,119 +285,35 @@ export class Operation extends Message<Operation> {
{ no: 10, name: "flow_id", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 2, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 3, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 11,
name: "instance_id",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{
no: 8,
name: "snapshot_id",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{
no: 4,
name: "status",
kind: "enum",
T: proto3.getEnumType(OperationStatus),
},
{
no: 5,
name: "unix_time_start_ms",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{
no: 6,
name: "unix_time_end_ms",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{
no: 7,
name: "display_message",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{ no: 11, name: "instance_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 8, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 4, name: "status", kind: "enum", T: proto3.getEnumType(OperationStatus) },
{ no: 5, name: "unix_time_start_ms", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 6, name: "unix_time_end_ms", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 7, name: "display_message", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 9, name: "logref", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 100,
name: "operation_backup",
kind: "message",
T: OperationBackup,
oneof: "op",
},
{
no: 101,
name: "operation_index_snapshot",
kind: "message",
T: OperationIndexSnapshot,
oneof: "op",
},
{
no: 102,
name: "operation_forget",
kind: "message",
T: OperationForget,
oneof: "op",
},
{
no: 103,
name: "operation_prune",
kind: "message",
T: OperationPrune,
oneof: "op",
},
{
no: 104,
name: "operation_restore",
kind: "message",
T: OperationRestore,
oneof: "op",
},
{
no: 105,
name: "operation_stats",
kind: "message",
T: OperationStats,
oneof: "op",
},
{
no: 106,
name: "operation_run_hook",
kind: "message",
T: OperationRunHook,
oneof: "op",
},
{ no: 100, name: "operation_backup", kind: "message", T: OperationBackup, oneof: "op" },
{ no: 101, name: "operation_index_snapshot", kind: "message", T: OperationIndexSnapshot, oneof: "op" },
{ no: 102, name: "operation_forget", kind: "message", T: OperationForget, oneof: "op" },
{ no: 103, name: "operation_prune", kind: "message", T: OperationPrune, oneof: "op" },
{ no: 104, name: "operation_restore", kind: "message", T: OperationRestore, oneof: "op" },
{ no: 105, name: "operation_stats", kind: "message", T: OperationStats, oneof: "op" },
{ no: 106, name: "operation_run_hook", kind: "message", T: OperationRunHook, oneof: "op" },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): Operation {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Operation {
return new Operation().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): Operation {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Operation {
return new Operation().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): Operation {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Operation {
return new Operation().fromJsonString(jsonString, options);
}
static equals(
a: Operation | PlainMessage<Operation> | undefined,
b: Operation | PlainMessage<Operation> | undefined,
): boolean {
static equals(a: Operation | PlainMessage<Operation> | undefined, b: Operation | PlainMessage<Operation> | undefined): boolean {
return proto3.util.equals(Operation, a, b);
}
}
@@ -465,40 +342,23 @@ export class OperationEvent extends Message<OperationEvent> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "v1.OperationEvent";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{
no: 1,
name: "type",
kind: "enum",
T: proto3.getEnumType(OperationEventType),
},
{ no: 1, name: "type", kind: "enum", T: proto3.getEnumType(OperationEventType) },
{ no: 2, name: "operation", kind: "message", T: Operation },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): OperationEvent {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OperationEvent {
return new OperationEvent().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): OperationEvent {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OperationEvent {
return new OperationEvent().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): OperationEvent {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OperationEvent {
return new OperationEvent().fromJsonString(jsonString, options);
}
static equals(
a: OperationEvent | PlainMessage<OperationEvent> | undefined,
b: OperationEvent | PlainMessage<OperationEvent> | undefined,
): boolean {
static equals(a: OperationEvent | PlainMessage<OperationEvent> | undefined, b: OperationEvent | PlainMessage<OperationEvent> | undefined): boolean {
return proto3.util.equals(OperationEvent, a, b);
}
}
@@ -526,46 +386,28 @@ export class OperationBackup extends Message<OperationBackup> {
static readonly typeName = "v1.OperationBackup";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 3, name: "last_status", kind: "message", T: BackupProgressEntry },
{
no: 4,
name: "errors",
kind: "message",
T: BackupProgressError,
repeated: true,
},
{ no: 4, name: "errors", kind: "message", T: BackupProgressError, repeated: true },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): OperationBackup {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OperationBackup {
return new OperationBackup().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): OperationBackup {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OperationBackup {
return new OperationBackup().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): OperationBackup {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OperationBackup {
return new OperationBackup().fromJsonString(jsonString, options);
}
static equals(
a: OperationBackup | PlainMessage<OperationBackup> | undefined,
b: OperationBackup | PlainMessage<OperationBackup> | undefined,
): boolean {
static equals(a: OperationBackup | PlainMessage<OperationBackup> | undefined, b: OperationBackup | PlainMessage<OperationBackup> | undefined): boolean {
return proto3.util.equals(OperationBackup, a, b);
}
}
/**
* OperationIndexSnapshot tracks that a snapshot was detected by backrest.
* OperationIndexSnapshot tracks that a snapshot was detected by backrest.
*
* @generated from message v1.OperationIndexSnapshot
*/
@@ -601,45 +443,22 @@ export class OperationIndexSnapshot extends Message<OperationIndexSnapshot> {
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 2, name: "snapshot", kind: "message", T: ResticSnapshot },
{ no: 3, name: "forgot", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
{
no: 4,
name: "forgot_by_op",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{ no: 4, name: "forgot_by_op", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): OperationIndexSnapshot {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OperationIndexSnapshot {
return new OperationIndexSnapshot().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): OperationIndexSnapshot {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OperationIndexSnapshot {
return new OperationIndexSnapshot().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): OperationIndexSnapshot {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OperationIndexSnapshot {
return new OperationIndexSnapshot().fromJsonString(jsonString, options);
}
static equals(
a:
| OperationIndexSnapshot
| PlainMessage<OperationIndexSnapshot>
| undefined,
b:
| OperationIndexSnapshot
| PlainMessage<OperationIndexSnapshot>
| undefined,
): boolean {
static equals(a: OperationIndexSnapshot | PlainMessage<OperationIndexSnapshot> | undefined, b: OperationIndexSnapshot | PlainMessage<OperationIndexSnapshot> | undefined): boolean {
return proto3.util.equals(OperationIndexSnapshot, a, b);
}
}
@@ -668,41 +487,23 @@ export class OperationForget extends Message<OperationForget> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "v1.OperationForget";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{
no: 1,
name: "forget",
kind: "message",
T: ResticSnapshot,
repeated: true,
},
{ no: 1, name: "forget", kind: "message", T: ResticSnapshot, repeated: true },
{ no: 2, name: "policy", kind: "message", T: RetentionPolicy },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): OperationForget {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OperationForget {
return new OperationForget().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): OperationForget {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OperationForget {
return new OperationForget().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): OperationForget {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OperationForget {
return new OperationForget().fromJsonString(jsonString, options);
}
static equals(
a: OperationForget | PlainMessage<OperationForget> | undefined,
b: OperationForget | PlainMessage<OperationForget> | undefined,
): boolean {
static equals(a: OperationForget | PlainMessage<OperationForget> | undefined, b: OperationForget | PlainMessage<OperationForget> | undefined): boolean {
return proto3.util.equals(OperationForget, a, b);
}
}
@@ -731,31 +532,19 @@ export class OperationPrune extends Message<OperationPrune> {
{ no: 1, name: "output", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): OperationPrune {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OperationPrune {
return new OperationPrune().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): OperationPrune {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OperationPrune {
return new OperationPrune().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): OperationPrune {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OperationPrune {
return new OperationPrune().fromJsonString(jsonString, options);
}
static equals(
a: OperationPrune | PlainMessage<OperationPrune> | undefined,
b: OperationPrune | PlainMessage<OperationPrune> | undefined,
): boolean {
static equals(a: OperationPrune | PlainMessage<OperationPrune> | undefined, b: OperationPrune | PlainMessage<OperationPrune> | undefined): boolean {
return proto3.util.equals(OperationPrune, a, b);
}
}
@@ -798,31 +587,19 @@ export class OperationRestore extends Message<OperationRestore> {
{ no: 3, name: "status", kind: "message", T: RestoreProgressEntry },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): OperationRestore {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OperationRestore {
return new OperationRestore().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): OperationRestore {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OperationRestore {
return new OperationRestore().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): OperationRestore {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OperationRestore {
return new OperationRestore().fromJsonString(jsonString, options);
}
static equals(
a: OperationRestore | PlainMessage<OperationRestore> | undefined,
b: OperationRestore | PlainMessage<OperationRestore> | undefined,
): boolean {
static equals(a: OperationRestore | PlainMessage<OperationRestore> | undefined, b: OperationRestore | PlainMessage<OperationRestore> | undefined): boolean {
return proto3.util.equals(OperationRestore, a, b);
}
}
@@ -847,31 +624,19 @@ export class OperationStats extends Message<OperationStats> {
{ no: 1, name: "stats", kind: "message", T: RepoStats },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): OperationStats {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OperationStats {
return new OperationStats().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): OperationStats {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OperationStats {
return new OperationStats().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): OperationStats {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OperationStats {
return new OperationStats().fromJsonString(jsonString, options);
}
static equals(
a: OperationStats | PlainMessage<OperationStats> | undefined,
b: OperationStats | PlainMessage<OperationStats> | undefined,
): boolean {
static equals(a: OperationStats | PlainMessage<OperationStats> | undefined, b: OperationStats | PlainMessage<OperationStats> | undefined): boolean {
return proto3.util.equals(OperationStats, a, b);
}
}
@@ -910,45 +675,24 @@ export class OperationRunHook extends Message<OperationRunHook> {
static readonly typeName = "v1.OperationRunHook";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 2,
name: "output_logref",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{
no: 3,
name: "condition",
kind: "enum",
T: proto3.getEnumType(Hook_Condition),
},
{ no: 2, name: "output_logref", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 3, name: "condition", kind: "enum", T: proto3.getEnumType(Hook_Condition) },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): OperationRunHook {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OperationRunHook {
return new OperationRunHook().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): OperationRunHook {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OperationRunHook {
return new OperationRunHook().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): OperationRunHook {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OperationRunHook {
return new OperationRunHook().fromJsonString(jsonString, options);
}
static equals(
a: OperationRunHook | PlainMessage<OperationRunHook> | undefined,
b: OperationRunHook | PlainMessage<OperationRunHook> | undefined,
): boolean {
static equals(a: OperationRunHook | PlainMessage<OperationRunHook> | undefined, b: OperationRunHook | PlainMessage<OperationRunHook> | undefined): boolean {
return proto3.util.equals(OperationRunHook, a, b);
}
}
+72 -314
View File
@@ -3,14 +3,7 @@
/* eslint-disable */
// @ts-nocheck
import type {
BinaryReadOptions,
FieldList,
JsonReadOptions,
JsonValue,
PartialMessage,
PlainMessage,
} from "@bufbuild/protobuf";
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3, protoInt64 } from "@bufbuild/protobuf";
/**
@@ -72,57 +65,28 @@ export class ResticSnapshot extends Message<ResticSnapshot> {
static readonly typeName = "v1.ResticSnapshot";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 2,
name: "unix_time_ms",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{ no: 2, name: "unix_time_ms", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 3, name: "hostname", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 4, name: "username", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 5, name: "tree", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 6, name: "parent", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 7,
name: "paths",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
repeated: true,
},
{
no: 8,
name: "tags",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
repeated: true,
},
{ no: 7, name: "paths", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
{ no: 8, name: "tags", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): ResticSnapshot {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ResticSnapshot {
return new ResticSnapshot().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): ResticSnapshot {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ResticSnapshot {
return new ResticSnapshot().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): ResticSnapshot {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ResticSnapshot {
return new ResticSnapshot().fromJsonString(jsonString, options);
}
static equals(
a: ResticSnapshot | PlainMessage<ResticSnapshot> | undefined,
b: ResticSnapshot | PlainMessage<ResticSnapshot> | undefined,
): boolean {
static equals(a: ResticSnapshot | PlainMessage<ResticSnapshot> | undefined, b: ResticSnapshot | PlainMessage<ResticSnapshot> | undefined): boolean {
return proto3.util.equals(ResticSnapshot, a, b);
}
}
@@ -146,40 +110,22 @@ export class ResticSnapshotList extends Message<ResticSnapshotList> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "v1.ResticSnapshotList";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{
no: 1,
name: "snapshots",
kind: "message",
T: ResticSnapshot,
repeated: true,
},
{ no: 1, name: "snapshots", kind: "message", T: ResticSnapshot, repeated: true },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): ResticSnapshotList {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ResticSnapshotList {
return new ResticSnapshotList().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): ResticSnapshotList {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ResticSnapshotList {
return new ResticSnapshotList().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): ResticSnapshotList {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ResticSnapshotList {
return new ResticSnapshotList().fromJsonString(jsonString, options);
}
static equals(
a: ResticSnapshotList | PlainMessage<ResticSnapshotList> | undefined,
b: ResticSnapshotList | PlainMessage<ResticSnapshotList> | undefined,
): boolean {
static equals(a: ResticSnapshotList | PlainMessage<ResticSnapshotList> | undefined, b: ResticSnapshotList | PlainMessage<ResticSnapshotList> | undefined): boolean {
return proto3.util.equals(ResticSnapshotList, a, b);
}
}
@@ -193,22 +139,19 @@ export class BackupProgressEntry extends Message<BackupProgressEntry> {
/**
* @generated from oneof v1.BackupProgressEntry.entry
*/
entry:
| {
/**
* @generated from field: v1.BackupProgressStatusEntry status = 1;
*/
value: BackupProgressStatusEntry;
case: "status";
}
| {
/**
* @generated from field: v1.BackupProgressSummary summary = 2;
*/
value: BackupProgressSummary;
case: "summary";
}
| { case: undefined; value?: undefined } = { case: undefined };
entry: {
/**
* @generated from field: v1.BackupProgressStatusEntry status = 1;
*/
value: BackupProgressStatusEntry;
case: "status";
} | {
/**
* @generated from field: v1.BackupProgressSummary summary = 2;
*/
value: BackupProgressSummary;
case: "summary";
} | { case: undefined; value?: undefined } = { case: undefined };
constructor(data?: PartialMessage<BackupProgressEntry>) {
super();
@@ -218,47 +161,23 @@ export class BackupProgressEntry extends Message<BackupProgressEntry> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "v1.BackupProgressEntry";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{
no: 1,
name: "status",
kind: "message",
T: BackupProgressStatusEntry,
oneof: "entry",
},
{
no: 2,
name: "summary",
kind: "message",
T: BackupProgressSummary,
oneof: "entry",
},
{ no: 1, name: "status", kind: "message", T: BackupProgressStatusEntry, oneof: "entry" },
{ no: 2, name: "summary", kind: "message", T: BackupProgressSummary, oneof: "entry" },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): BackupProgressEntry {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): BackupProgressEntry {
return new BackupProgressEntry().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): BackupProgressEntry {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): BackupProgressEntry {
return new BackupProgressEntry().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): BackupProgressEntry {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): BackupProgressEntry {
return new BackupProgressEntry().fromJsonString(jsonString, options);
}
static equals(
a: BackupProgressEntry | PlainMessage<BackupProgressEntry> | undefined,
b: BackupProgressEntry | PlainMessage<BackupProgressEntry> | undefined,
): boolean {
static equals(a: BackupProgressEntry | PlainMessage<BackupProgressEntry> | undefined, b: BackupProgressEntry | PlainMessage<BackupProgressEntry> | undefined): boolean {
return proto3.util.equals(BackupProgressEntry, a, b);
}
}
@@ -311,56 +230,27 @@ export class BackupProgressStatusEntry extends Message<BackupProgressStatusEntry
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "v1.BackupProgressStatusEntry";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{
no: 1,
name: "percent_done",
kind: "scalar",
T: 1 /* ScalarType.DOUBLE */,
},
{ no: 1, name: "percent_done", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
{ no: 2, name: "total_files", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 3, name: "total_bytes", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 4, name: "files_done", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 5, name: "bytes_done", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{
no: 6,
name: "current_file",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
repeated: true,
},
{ no: 6, name: "current_file", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): BackupProgressStatusEntry {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): BackupProgressStatusEntry {
return new BackupProgressStatusEntry().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): BackupProgressStatusEntry {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): BackupProgressStatusEntry {
return new BackupProgressStatusEntry().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): BackupProgressStatusEntry {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): BackupProgressStatusEntry {
return new BackupProgressStatusEntry().fromJsonString(jsonString, options);
}
static equals(
a:
| BackupProgressStatusEntry
| PlainMessage<BackupProgressStatusEntry>
| undefined,
b:
| BackupProgressStatusEntry
| PlainMessage<BackupProgressStatusEntry>
| undefined,
): boolean {
static equals(a: BackupProgressStatusEntry | PlainMessage<BackupProgressStatusEntry> | undefined, b: BackupProgressStatusEntry | PlainMessage<BackupProgressStatusEntry> | undefined): boolean {
return proto3.util.equals(BackupProgressStatusEntry, a, b);
}
}
@@ -447,85 +337,33 @@ export class BackupProgressSummary extends Message<BackupProgressSummary> {
static readonly typeName = "v1.BackupProgressSummary";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "files_new", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{
no: 2,
name: "files_changed",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{
no: 3,
name: "files_unmodified",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{ no: 2, name: "files_changed", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 3, name: "files_unmodified", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 4, name: "dirs_new", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{
no: 5,
name: "dirs_changed",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{
no: 6,
name: "dirs_unmodified",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{ no: 5, name: "dirs_changed", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 6, name: "dirs_unmodified", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 7, name: "data_blobs", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 8, name: "tree_blobs", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 9, name: "data_added", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{
no: 10,
name: "total_files_processed",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{
no: 11,
name: "total_bytes_processed",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{
no: 12,
name: "total_duration",
kind: "scalar",
T: 1 /* ScalarType.DOUBLE */,
},
{
no: 13,
name: "snapshot_id",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{ no: 10, name: "total_files_processed", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 11, name: "total_bytes_processed", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 12, name: "total_duration", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
{ no: 13, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): BackupProgressSummary {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): BackupProgressSummary {
return new BackupProgressSummary().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): BackupProgressSummary {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): BackupProgressSummary {
return new BackupProgressSummary().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): BackupProgressSummary {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): BackupProgressSummary {
return new BackupProgressSummary().fromJsonString(jsonString, options);
}
static equals(
a: BackupProgressSummary | PlainMessage<BackupProgressSummary> | undefined,
b: BackupProgressSummary | PlainMessage<BackupProgressSummary> | undefined,
): boolean {
static equals(a: BackupProgressSummary | PlainMessage<BackupProgressSummary> | undefined, b: BackupProgressSummary | PlainMessage<BackupProgressSummary> | undefined): boolean {
return proto3.util.equals(BackupProgressSummary, a, b);
}
}
@@ -564,31 +402,19 @@ export class BackupProgressError extends Message<BackupProgressError> {
{ no: 3, name: "message", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): BackupProgressError {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): BackupProgressError {
return new BackupProgressError().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): BackupProgressError {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): BackupProgressError {
return new BackupProgressError().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): BackupProgressError {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): BackupProgressError {
return new BackupProgressError().fromJsonString(jsonString, options);
}
static equals(
a: BackupProgressError | PlainMessage<BackupProgressError> | undefined,
b: BackupProgressError | PlainMessage<BackupProgressError> | undefined,
): boolean {
static equals(a: BackupProgressError | PlainMessage<BackupProgressError> | undefined, b: BackupProgressError | PlainMessage<BackupProgressError> | undefined): boolean {
return proto3.util.equals(BackupProgressError, a, b);
}
}
@@ -646,65 +472,28 @@ export class RestoreProgressEntry extends Message<RestoreProgressEntry> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "v1.RestoreProgressEntry";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{
no: 1,
name: "message_type",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{
no: 2,
name: "seconds_elapsed",
kind: "scalar",
T: 1 /* ScalarType.DOUBLE */,
},
{ no: 1, name: "message_type", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 2, name: "seconds_elapsed", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
{ no: 3, name: "total_bytes", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{
no: 4,
name: "bytes_restored",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{ no: 4, name: "bytes_restored", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 5, name: "total_files", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{
no: 6,
name: "files_restored",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{
no: 7,
name: "percent_done",
kind: "scalar",
T: 1 /* ScalarType.DOUBLE */,
},
{ no: 6, name: "files_restored", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 7, name: "percent_done", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): RestoreProgressEntry {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RestoreProgressEntry {
return new RestoreProgressEntry().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): RestoreProgressEntry {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RestoreProgressEntry {
return new RestoreProgressEntry().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): RestoreProgressEntry {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RestoreProgressEntry {
return new RestoreProgressEntry().fromJsonString(jsonString, options);
}
static equals(
a: RestoreProgressEntry | PlainMessage<RestoreProgressEntry> | undefined,
b: RestoreProgressEntry | PlainMessage<RestoreProgressEntry> | undefined,
): boolean {
static equals(a: RestoreProgressEntry | PlainMessage<RestoreProgressEntry> | undefined, b: RestoreProgressEntry | PlainMessage<RestoreProgressEntry> | undefined): boolean {
return proto3.util.equals(RestoreProgressEntry, a, b);
}
}
@@ -747,57 +536,26 @@ export class RepoStats extends Message<RepoStats> {
static readonly typeName = "v1.RepoStats";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "total_size", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{
no: 2,
name: "total_uncompressed_size",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{
no: 3,
name: "compression_ratio",
kind: "scalar",
T: 1 /* ScalarType.DOUBLE */,
},
{
no: 5,
name: "total_blob_count",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{
no: 6,
name: "snapshot_count",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
},
{ no: 2, name: "total_uncompressed_size", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 3, name: "compression_ratio", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
{ no: 5, name: "total_blob_count", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 6, name: "snapshot_count", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): RepoStats {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RepoStats {
return new RepoStats().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): RepoStats {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RepoStats {
return new RepoStats().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): RepoStats {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RepoStats {
return new RepoStats().fromJsonString(jsonString, options);
}
static equals(
a: RepoStats | PlainMessage<RepoStats> | undefined,
b: RepoStats | PlainMessage<RepoStats> | undefined,
): boolean {
static equals(a: RepoStats | PlainMessage<RepoStats> | undefined, b: RepoStats | PlainMessage<RepoStats> | undefined): boolean {
return proto3.util.equals(RepoStats, a, b);
}
}
+4 -18
View File
@@ -6,24 +6,9 @@
import { Empty, MethodKind } from "@bufbuild/protobuf";
import { Config, Repo } from "./config_pb.js";
import { OperationEvent, OperationList } from "./operations_pb.js";
import {
ClearHistoryRequest,
ForgetRequest,
GetOperationsRequest,
ListSnapshotFilesRequest,
ListSnapshotFilesResponse,
ListSnapshotsRequest,
LogDataRequest,
RestoreSnapshotRequest,
RunCommandRequest,
} from "./service_pb.js";
import { ClearHistoryRequest, ForgetRequest, GetOperationsRequest, ListSnapshotFilesRequest, ListSnapshotFilesResponse, ListSnapshotsRequest, LogDataRequest, RestoreSnapshotRequest, RunCommandRequest } from "./service_pb.js";
import { ResticSnapshotList } from "./restic_pb.js";
import {
BytesValue,
Int64Value,
StringList,
StringValue,
} from "../types/value_pb.js";
import { BytesValue, Int64Value, StringList, StringValue } from "../types/value_pb.js";
/**
* @generated from service v1.Backrest
@@ -237,5 +222,6 @@ export const Backrest = {
O: StringList,
kind: MethodKind.Unary,
},
},
}
} as const;
+118 -267
View File
@@ -3,40 +3,86 @@
/* eslint-disable */
// @ts-nocheck
import type {
BinaryReadOptions,
FieldList,
JsonReadOptions,
JsonValue,
PartialMessage,
PlainMessage,
} from "@bufbuild/protobuf";
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3, protoInt64 } from "@bufbuild/protobuf";
/**
* OpSelector is a message that can be used to select operations e.g. by query.
*
* @generated from message v1.OpSelector
*/
export class OpSelector extends Message<OpSelector> {
/**
* @generated from field: repeated int64 ids = 1;
*/
ids: bigint[] = [];
/**
* @generated from field: string repo_id = 2;
*/
repoId = "";
/**
* @generated from field: string plan_id = 3;
*/
planId = "";
/**
* @generated from field: string snapshot_id = 4;
*/
snapshotId = "";
/**
* @generated from field: int64 flow_id = 5;
*/
flowId = protoInt64.zero;
constructor(data?: PartialMessage<OpSelector>) {
super();
proto3.util.initPartial(data, this);
}
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "v1.OpSelector";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "ids", kind: "scalar", T: 3 /* ScalarType.INT64 */, repeated: true },
{ no: 2, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 3, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 4, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 5, name: "flow_id", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
]);
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OpSelector {
return new OpSelector().fromBinary(bytes, options);
}
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OpSelector {
return new OpSelector().fromJson(jsonValue, options);
}
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OpSelector {
return new OpSelector().fromJsonString(jsonString, options);
}
static equals(a: OpSelector | PlainMessage<OpSelector> | undefined, b: OpSelector | PlainMessage<OpSelector> | undefined): boolean {
return proto3.util.equals(OpSelector, a, b);
}
}
/**
* @generated from message v1.ClearHistoryRequest
*/
export class ClearHistoryRequest extends Message<ClearHistoryRequest> {
/**
* @generated from field: string repo_id = 1;
* @generated from field: v1.OpSelector selector = 1;
*/
repoId = "";
selector?: OpSelector;
/**
* @generated from field: string plan_id = 2;
*/
planId = "";
/**
* @generated from field: bool only_failed = 3;
* @generated from field: bool only_failed = 2;
*/
onlyFailed = false;
/**
* @generated from field: repeated int64 ops = 4;
*/
ops: bigint[] = [];
constructor(data?: PartialMessage<ClearHistoryRequest>) {
super();
proto3.util.initPartial(data, this);
@@ -45,43 +91,23 @@ export class ClearHistoryRequest extends Message<ClearHistoryRequest> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "v1.ClearHistoryRequest";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 2, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 3, name: "only_failed", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
{
no: 4,
name: "ops",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
repeated: true,
},
{ no: 1, name: "selector", kind: "message", T: OpSelector },
{ no: 2, name: "only_failed", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): ClearHistoryRequest {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ClearHistoryRequest {
return new ClearHistoryRequest().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): ClearHistoryRequest {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ClearHistoryRequest {
return new ClearHistoryRequest().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): ClearHistoryRequest {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ClearHistoryRequest {
return new ClearHistoryRequest().fromJsonString(jsonString, options);
}
static equals(
a: ClearHistoryRequest | PlainMessage<ClearHistoryRequest> | undefined,
b: ClearHistoryRequest | PlainMessage<ClearHistoryRequest> | undefined,
): boolean {
static equals(a: ClearHistoryRequest | PlainMessage<ClearHistoryRequest> | undefined, b: ClearHistoryRequest | PlainMessage<ClearHistoryRequest> | undefined): boolean {
return proto3.util.equals(ClearHistoryRequest, a, b);
}
}
@@ -115,39 +141,22 @@ export class ForgetRequest extends Message<ForgetRequest> {
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 2, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 3,
name: "snapshot_id",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{ no: 3, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): ForgetRequest {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ForgetRequest {
return new ForgetRequest().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): ForgetRequest {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ForgetRequest {
return new ForgetRequest().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): ForgetRequest {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ForgetRequest {
return new ForgetRequest().fromJsonString(jsonString, options);
}
static equals(
a: ForgetRequest | PlainMessage<ForgetRequest> | undefined,
b: ForgetRequest | PlainMessage<ForgetRequest> | undefined,
): boolean {
static equals(a: ForgetRequest | PlainMessage<ForgetRequest> | undefined, b: ForgetRequest | PlainMessage<ForgetRequest> | undefined): boolean {
return proto3.util.equals(ForgetRequest, a, b);
}
}
@@ -178,31 +187,19 @@ export class ListSnapshotsRequest extends Message<ListSnapshotsRequest> {
{ no: 2, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): ListSnapshotsRequest {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListSnapshotsRequest {
return new ListSnapshotsRequest().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): ListSnapshotsRequest {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListSnapshotsRequest {
return new ListSnapshotsRequest().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): ListSnapshotsRequest {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListSnapshotsRequest {
return new ListSnapshotsRequest().fromJsonString(jsonString, options);
}
static equals(
a: ListSnapshotsRequest | PlainMessage<ListSnapshotsRequest> | undefined,
b: ListSnapshotsRequest | PlainMessage<ListSnapshotsRequest> | undefined,
): boolean {
static equals(a: ListSnapshotsRequest | PlainMessage<ListSnapshotsRequest> | undefined, b: ListSnapshotsRequest | PlainMessage<ListSnapshotsRequest> | undefined): boolean {
return proto3.util.equals(ListSnapshotsRequest, a, b);
}
}
@@ -212,34 +209,14 @@ export class ListSnapshotsRequest extends Message<ListSnapshotsRequest> {
*/
export class GetOperationsRequest extends Message<GetOperationsRequest> {
/**
* @generated from field: string repo_id = 1;
* @generated from field: v1.OpSelector selector = 1;
*/
repoId = "";
/**
* @generated from field: string plan_id = 2;
*/
planId = "";
/**
* @generated from field: string snapshot_id = 4;
*/
snapshotId = "";
/**
* @generated from field: int64 flow_id = 6;
*/
flowId = protoInt64.zero;
/**
* @generated from field: repeated int64 ids = 5;
*/
ids: bigint[] = [];
selector?: OpSelector;
/**
* limit to the last n operations
*
* @generated from field: int64 last_n = 3;
* @generated from field: int64 last_n = 2;
*/
lastN = protoInt64.zero;
@@ -251,50 +228,23 @@ export class GetOperationsRequest extends Message<GetOperationsRequest> {
static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "v1.GetOperationsRequest";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 2, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 4,
name: "snapshot_id",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{ no: 6, name: "flow_id", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{
no: 5,
name: "ids",
kind: "scalar",
T: 3 /* ScalarType.INT64 */,
repeated: true,
},
{ no: 3, name: "last_n", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
{ no: 1, name: "selector", kind: "message", T: OpSelector },
{ no: 2, name: "last_n", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): GetOperationsRequest {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetOperationsRequest {
return new GetOperationsRequest().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): GetOperationsRequest {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetOperationsRequest {
return new GetOperationsRequest().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): GetOperationsRequest {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetOperationsRequest {
return new GetOperationsRequest().fromJsonString(jsonString, options);
}
static equals(
a: GetOperationsRequest | PlainMessage<GetOperationsRequest> | undefined,
b: GetOperationsRequest | PlainMessage<GetOperationsRequest> | undefined,
): boolean {
static equals(a: GetOperationsRequest | PlainMessage<GetOperationsRequest> | undefined, b: GetOperationsRequest | PlainMessage<GetOperationsRequest> | undefined): boolean {
return proto3.util.equals(GetOperationsRequest, a, b);
}
}
@@ -338,47 +288,24 @@ export class RestoreSnapshotRequest extends Message<RestoreSnapshotRequest> {
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 5, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 2,
name: "snapshot_id",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{ no: 2, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 3, name: "path", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 4, name: "target", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): RestoreSnapshotRequest {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RestoreSnapshotRequest {
return new RestoreSnapshotRequest().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): RestoreSnapshotRequest {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RestoreSnapshotRequest {
return new RestoreSnapshotRequest().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): RestoreSnapshotRequest {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RestoreSnapshotRequest {
return new RestoreSnapshotRequest().fromJsonString(jsonString, options);
}
static equals(
a:
| RestoreSnapshotRequest
| PlainMessage<RestoreSnapshotRequest>
| undefined,
b:
| RestoreSnapshotRequest
| PlainMessage<RestoreSnapshotRequest>
| undefined,
): boolean {
static equals(a: RestoreSnapshotRequest | PlainMessage<RestoreSnapshotRequest> | undefined, b: RestoreSnapshotRequest | PlainMessage<RestoreSnapshotRequest> | undefined): boolean {
return proto3.util.equals(RestoreSnapshotRequest, a, b);
}
}
@@ -411,46 +338,23 @@ export class ListSnapshotFilesRequest extends Message<ListSnapshotFilesRequest>
static readonly typeName = "v1.ListSnapshotFilesRequest";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{
no: 2,
name: "snapshot_id",
kind: "scalar",
T: 9 /* ScalarType.STRING */,
},
{ no: 2, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 3, name: "path", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): ListSnapshotFilesRequest {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListSnapshotFilesRequest {
return new ListSnapshotFilesRequest().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): ListSnapshotFilesRequest {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListSnapshotFilesRequest {
return new ListSnapshotFilesRequest().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): ListSnapshotFilesRequest {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListSnapshotFilesRequest {
return new ListSnapshotFilesRequest().fromJsonString(jsonString, options);
}
static equals(
a:
| ListSnapshotFilesRequest
| PlainMessage<ListSnapshotFilesRequest>
| undefined,
b:
| ListSnapshotFilesRequest
| PlainMessage<ListSnapshotFilesRequest>
| undefined,
): boolean {
static equals(a: ListSnapshotFilesRequest | PlainMessage<ListSnapshotFilesRequest> | undefined, b: ListSnapshotFilesRequest | PlainMessage<ListSnapshotFilesRequest> | undefined): boolean {
return proto3.util.equals(ListSnapshotFilesRequest, a, b);
}
}
@@ -481,37 +385,19 @@ export class ListSnapshotFilesResponse extends Message<ListSnapshotFilesResponse
{ no: 2, name: "entries", kind: "message", T: LsEntry, repeated: true },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): ListSnapshotFilesResponse {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListSnapshotFilesResponse {
return new ListSnapshotFilesResponse().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): ListSnapshotFilesResponse {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListSnapshotFilesResponse {
return new ListSnapshotFilesResponse().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): ListSnapshotFilesResponse {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListSnapshotFilesResponse {
return new ListSnapshotFilesResponse().fromJsonString(jsonString, options);
}
static equals(
a:
| ListSnapshotFilesResponse
| PlainMessage<ListSnapshotFilesResponse>
| undefined,
b:
| ListSnapshotFilesResponse
| PlainMessage<ListSnapshotFilesResponse>
| undefined,
): boolean {
static equals(a: ListSnapshotFilesResponse | PlainMessage<ListSnapshotFilesResponse> | undefined, b: ListSnapshotFilesResponse | PlainMessage<ListSnapshotFilesResponse> | undefined): boolean {
return proto3.util.equals(ListSnapshotFilesResponse, a, b);
}
}
@@ -536,31 +422,19 @@ export class LogDataRequest extends Message<LogDataRequest> {
{ no: 1, name: "ref", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): LogDataRequest {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LogDataRequest {
return new LogDataRequest().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): LogDataRequest {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LogDataRequest {
return new LogDataRequest().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): LogDataRequest {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LogDataRequest {
return new LogDataRequest().fromJsonString(jsonString, options);
}
static equals(
a: LogDataRequest | PlainMessage<LogDataRequest> | undefined,
b: LogDataRequest | PlainMessage<LogDataRequest> | undefined,
): boolean {
static equals(a: LogDataRequest | PlainMessage<LogDataRequest> | undefined, b: LogDataRequest | PlainMessage<LogDataRequest> | undefined): boolean {
return proto3.util.equals(LogDataRequest, a, b);
}
}
@@ -639,31 +513,19 @@ export class LsEntry extends Message<LsEntry> {
{ no: 10, name: "ctime", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): LsEntry {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LsEntry {
return new LsEntry().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): LsEntry {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LsEntry {
return new LsEntry().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): LsEntry {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LsEntry {
return new LsEntry().fromJsonString(jsonString, options);
}
static equals(
a: LsEntry | PlainMessage<LsEntry> | undefined,
b: LsEntry | PlainMessage<LsEntry> | undefined,
): boolean {
static equals(a: LsEntry | PlainMessage<LsEntry> | undefined, b: LsEntry | PlainMessage<LsEntry> | undefined): boolean {
return proto3.util.equals(LsEntry, a, b);
}
}
@@ -694,31 +556,20 @@ export class RunCommandRequest extends Message<RunCommandRequest> {
{ no: 2, name: "command", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);
static fromBinary(
bytes: Uint8Array,
options?: Partial<BinaryReadOptions>,
): RunCommandRequest {
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RunCommandRequest {
return new RunCommandRequest().fromBinary(bytes, options);
}
static fromJson(
jsonValue: JsonValue,
options?: Partial<JsonReadOptions>,
): RunCommandRequest {
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RunCommandRequest {
return new RunCommandRequest().fromJson(jsonValue, options);
}
static fromJsonString(
jsonString: string,
options?: Partial<JsonReadOptions>,
): RunCommandRequest {
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RunCommandRequest {
return new RunCommandRequest().fromJsonString(jsonString, options);
}
static equals(
a: RunCommandRequest | PlainMessage<RunCommandRequest> | undefined,
b: RunCommandRequest | PlainMessage<RunCommandRequest> | undefined,
): boolean {
static equals(a: RunCommandRequest | PlainMessage<RunCommandRequest> | undefined, b: RunCommandRequest | PlainMessage<RunCommandRequest> | undefined): boolean {
return proto3.util.equals(RunCommandRequest, a, b);
}
}
+1 -1
View File
@@ -25,7 +25,7 @@ const fetch = (
const transport = createConnectTransport({
baseUrl: "./",
useBinaryFormat: true,
useBinaryFormat: false,
fetch: fetch as typeof globalThis.fetch,
});
+3 -11
View File
@@ -4,7 +4,7 @@ import {
OperationEventType,
OperationStatus,
} from "../../gen/ts/v1/operations_pb";
import { GetOperationsRequest } from "../../gen/ts/v1/service_pb";
import { GetOperationsRequest, OpSelector } from "../../gen/ts/v1/service_pb";
import { BackupProgressEntry, ResticSnapshot } from "../../gen/ts/v1/restic_pb";
import _ from "lodash";
import { formatDuration, formatTime } from "../lib/formatting";
@@ -57,17 +57,9 @@ export const unsubscribeFromOperations = (
}
};
export const getStatusForPlan = async (plan: string) => {
export const getStatusForSelector = async (sel: OpSelector) => {
const req = new GetOperationsRequest({
planId: plan,
lastN: BigInt(STATUS_OPERATION_HISTORY),
});
return await getStatus(req);
};
export const getStatusForRepo = async (repo: string) => {
const req = new GetOperationsRequest({
repoId: repo,
selector: sel,
lastN: BigInt(STATUS_OPERATION_HISTORY),
});
return await getStatus(req);
+4 -6
View File
@@ -20,6 +20,7 @@ import {
colorForStatus,
getStatusForPlan,
getStatusForRepo,
getStatusForSelector,
subscribeToOperations,
unsubscribeFromOperations,
} from "../state/oplog";
@@ -32,6 +33,7 @@ import { MainContentArea, useSetContent } from "./MainContentArea";
import { GettingStartedGuide } from "./GettingStartedGuide";
import { useConfig } from "../components/ConfigProvider";
import { shouldShowSettings } from "../state/configutil";
import { OpSelector } from "../../gen/ts/v1/service_pb";
const { Header, Sider } = Layout;
@@ -195,7 +197,7 @@ const getSidenavItems = (config: Config | null): MenuProps["items"] => {
...configPlans.map((plan) => {
return {
key: "p-" + plan.id,
icon: <IconForResource planId={plan.id} />,
icon: <IconForResource planId={plan.id} repoId={plan.repo} />,
label: (
<div className="backrest visible-on-hover">
{plan.id}{" "}
@@ -303,11 +305,7 @@ const IconForResource = ({
const [status, setStatus] = useState(OperationStatus.STATUS_UNKNOWN);
useEffect(() => {
const load = async () => {
if (planId) {
setStatus(await getStatusForPlan(planId));
} else if (repoId) {
setStatus(await getStatusForRepo(repoId));
}
setStatus(await getStatusForSelector(new OpSelector({ planId, repoId })));
};
load();
const refresh = _.debounce(load, 1000, { maxWait: 5000, trailing: true });
+9 -3
View File
@@ -6,7 +6,7 @@ import { OperationList } from "../components/OperationList";
import { OperationTree } from "../components/OperationTree";
import { MAX_OPERATION_HISTORY } from "../constants";
import { backrestService } from "../api";
import { GetOperationsRequest } from "../../gen/ts/v1/service_pb";
import { GetOperationsRequest, OpSelector } from "../../gen/ts/v1/service_pb";
import { SpinButton } from "../components/SpinButton";
import { shouldHideStatus } from "../state/oplog";
import { useShowModal } from "../components/ModalManager";
@@ -100,7 +100,10 @@ export const PlanView = ({ plan }: React.PropsWithChildren<{ plan: Plan }>) => {
<OperationTree
req={
new GetOperationsRequest({
planId: plan.id!,
selector: new OpSelector({
repoId: plan.repo!,
planId: plan.id!,
}),
lastN: BigInt(MAX_OPERATION_HISTORY),
})
}
@@ -118,7 +121,10 @@ export const PlanView = ({ plan }: React.PropsWithChildren<{ plan: Plan }>) => {
<OperationList
req={
new GetOperationsRequest({
planId: plan.id!,
selector: new OpSelector({
repoId: plan.repo!,
planId: plan.id!,
}),
lastN: BigInt(MAX_OPERATION_HISTORY),
})
}
+8 -4
View File
@@ -15,7 +15,7 @@ import {
import { OperationList } from "../components/OperationList";
import { OperationTree } from "../components/OperationTree";
import { MAX_OPERATION_HISTORY, STATS_OPERATION_HISTORY } from "../constants";
import { GetOperationsRequest } from "../../gen/ts/v1/service_pb";
import { GetOperationsRequest, OpSelector } from "../../gen/ts/v1/service_pb";
import {
BackupInfo,
BackupInfoCollector,
@@ -71,7 +71,9 @@ export const RepoView = ({ repo }: React.PropsWithChildren<{ repo: Repo }>) => {
<OperationTree
req={
new GetOperationsRequest({
repoId: repo.id!,
selector: new OpSelector({
repoId: repo.id!,
}),
lastN: BigInt(MAX_OPERATION_HISTORY),
})
}
@@ -89,7 +91,9 @@ export const RepoView = ({ repo }: React.PropsWithChildren<{ repo: Repo }>) => {
<OperationList
req={
new GetOperationsRequest({
repoId: repo.id!,
selector: new OpSelector({
repoId: repo.id!,
}),
lastN: BigInt(MAX_OPERATION_HISTORY),
})
}
@@ -166,7 +170,7 @@ const StatsPanel = ({ repoId }: { repoId: string }) => {
new GetOperationsRequest({
repoId: repoId,
lastN: BigInt(MAX_OPERATION_HISTORY),
}),
})
)
.then((ops) => {
backupCollector.bulkAddOperations(ops);