From d25dc9d48b474b47f9f3a2f422b94dd890389ef7 Mon Sep 17 00:00:00 2001 From: Hector Fernandez Date: Tue, 21 Nov 2023 00:41:21 +0100 Subject: [PATCH] add image config diff proto Signed-off-by: Hector Fernandez --- .../registry/v1/registry.platform.pb.go | 1511 +++++++++++++---- .../registry/v1/registry.platform.proto | 54 + 2 files changed, 1222 insertions(+), 343 deletions(-) diff --git a/proto/platform/registry/v1/registry.platform.pb.go b/proto/platform/registry/v1/registry.platform.pb.go index 497c64e..14c75be 100644 --- a/proto/platform/registry/v1/registry.platform.pb.go +++ b/proto/platform/registry/v1/registry.platform.pb.go @@ -886,6 +886,7 @@ type ImageDiff struct { Packages *PackagesDiff `protobuf:"bytes,1,opt,name=packages,proto3" json:"packages,omitempty"` Vulnerabilities *VulnerabilitiesDiff `protobuf:"bytes,2,opt,name=vulnerabilities,proto3" json:"vulnerabilities,omitempty"` Files *FilesDiff `protobuf:"bytes,3,opt,name=files,proto3" json:"files,omitempty"` + Config *ImageConfigDiff `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"` } func (x *ImageDiff) Reset() { @@ -941,6 +942,155 @@ func (x *ImageDiff) GetFiles() *FilesDiff { return nil } +func (x *ImageDiff) GetConfig() *ImageConfigDiff { + if x != nil { + return x.Config + } + return nil +} + +type ImageConfigDiff struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Changed *ChangedImageConfig `protobuf:"bytes,1,opt,name=changed,proto3" json:"changed,omitempty"` +} + +func (x *ImageConfigDiff) Reset() { + *x = ImageConfigDiff{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImageConfigDiff) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImageConfigDiff) ProtoMessage() {} + +func (x *ImageConfigDiff) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[14] + 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 ImageConfigDiff.ProtoReflect.Descriptor instead. +func (*ImageConfigDiff) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{14} +} + +func (x *ImageConfigDiff) GetChanged() *ChangedImageConfig { + if x != nil { + return x.Changed + } + return nil +} + +type ChangedImageConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChangedUser *ChangedImageConfig_ChangedUser `protobuf:"bytes,1,opt,name=changedUser,proto3" json:"changedUser,omitempty"` + ChangedWorkingDir *ChangedImageConfig_ChangedWorkingDir `protobuf:"bytes,2,opt,name=changedWorkingDir,proto3" json:"changedWorkingDir,omitempty"` + Entrypoints *ChangedImageConfig_EntrypointDiff `protobuf:"bytes,3,opt,name=entrypoints,proto3" json:"entrypoints,omitempty"` + Envs *ChangedImageConfig_EnvDiff `protobuf:"bytes,4,opt,name=envs,proto3" json:"envs,omitempty"` + Cmds *ChangedImageConfig_CmdDiff `protobuf:"bytes,5,opt,name=cmds,proto3" json:"cmds,omitempty"` + ChangedStopSignal *ChangedImageConfig_ChangedStopSignal `protobuf:"bytes,6,opt,name=changedStopSignal,proto3" json:"changedStopSignal,omitempty"` + Volumes *ChangedImageConfig_VolumeDiff `protobuf:"bytes,7,opt,name=volumes,proto3" json:"volumes,omitempty"` +} + +func (x *ChangedImageConfig) Reset() { + *x = ChangedImageConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangedImageConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangedImageConfig) ProtoMessage() {} + +func (x *ChangedImageConfig) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[15] + 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 ChangedImageConfig.ProtoReflect.Descriptor instead. +func (*ChangedImageConfig) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{15} +} + +func (x *ChangedImageConfig) GetChangedUser() *ChangedImageConfig_ChangedUser { + if x != nil { + return x.ChangedUser + } + return nil +} + +func (x *ChangedImageConfig) GetChangedWorkingDir() *ChangedImageConfig_ChangedWorkingDir { + if x != nil { + return x.ChangedWorkingDir + } + return nil +} + +func (x *ChangedImageConfig) GetEntrypoints() *ChangedImageConfig_EntrypointDiff { + if x != nil { + return x.Entrypoints + } + return nil +} + +func (x *ChangedImageConfig) GetEnvs() *ChangedImageConfig_EnvDiff { + if x != nil { + return x.Envs + } + return nil +} + +func (x *ChangedImageConfig) GetCmds() *ChangedImageConfig_CmdDiff { + if x != nil { + return x.Cmds + } + return nil +} + +func (x *ChangedImageConfig) GetChangedStopSignal() *ChangedImageConfig_ChangedStopSignal { + if x != nil { + return x.ChangedStopSignal + } + return nil +} + +func (x *ChangedImageConfig) GetVolumes() *ChangedImageConfig_VolumeDiff { + if x != nil { + return x.Volumes + } + return nil +} + type PackagesDiff struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -954,7 +1104,7 @@ type PackagesDiff struct { func (x *PackagesDiff) Reset() { *x = PackagesDiff{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[14] + mi := &file_registry_platform_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -967,7 +1117,7 @@ func (x *PackagesDiff) String() string { func (*PackagesDiff) ProtoMessage() {} func (x *PackagesDiff) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[14] + mi := &file_registry_platform_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -980,7 +1130,7 @@ func (x *PackagesDiff) ProtoReflect() protoreflect.Message { // Deprecated: Use PackagesDiff.ProtoReflect.Descriptor instead. func (*PackagesDiff) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{14} + return file_registry_platform_proto_rawDescGZIP(), []int{16} } func (x *PackagesDiff) GetAdded() []*PackageReference { @@ -1016,7 +1166,7 @@ type FilesDiff struct { func (x *FilesDiff) Reset() { *x = FilesDiff{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[15] + mi := &file_registry_platform_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1029,7 +1179,7 @@ func (x *FilesDiff) String() string { func (*FilesDiff) ProtoMessage() {} func (x *FilesDiff) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[15] + mi := &file_registry_platform_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1042,7 +1192,7 @@ func (x *FilesDiff) ProtoReflect() protoreflect.Message { // Deprecated: Use FilesDiff.ProtoReflect.Descriptor instead. func (*FilesDiff) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{15} + return file_registry_platform_proto_rawDescGZIP(), []int{17} } func (x *FilesDiff) GetAdded() []*FileReference { @@ -1070,7 +1220,7 @@ type FileReference struct { func (x *FileReference) Reset() { *x = FileReference{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[16] + mi := &file_registry_platform_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1083,7 +1233,7 @@ func (x *FileReference) String() string { func (*FileReference) ProtoMessage() {} func (x *FileReference) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[16] + mi := &file_registry_platform_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1096,7 +1246,7 @@ func (x *FileReference) ProtoReflect() protoreflect.Message { // Deprecated: Use FileReference.ProtoReflect.Descriptor instead. func (*FileReference) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{16} + return file_registry_platform_proto_rawDescGZIP(), []int{18} } func (x *FileReference) GetName() string { @@ -1118,7 +1268,7 @@ type VersionReference struct { func (x *VersionReference) Reset() { *x = VersionReference{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[17] + mi := &file_registry_platform_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1131,7 +1281,7 @@ func (x *VersionReference) String() string { func (*VersionReference) ProtoMessage() {} func (x *VersionReference) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[17] + mi := &file_registry_platform_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1144,7 +1294,7 @@ func (x *VersionReference) ProtoReflect() protoreflect.Message { // Deprecated: Use VersionReference.ProtoReflect.Descriptor instead. func (*VersionReference) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{17} + return file_registry_platform_proto_rawDescGZIP(), []int{19} } func (x *VersionReference) GetVersion() string { @@ -1175,7 +1325,7 @@ type PackageReference struct { func (x *PackageReference) Reset() { *x = PackageReference{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[18] + mi := &file_registry_platform_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1188,7 +1338,7 @@ func (x *PackageReference) String() string { func (*PackageReference) ProtoMessage() {} func (x *PackageReference) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[18] + mi := &file_registry_platform_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1201,7 +1351,7 @@ func (x *PackageReference) ProtoReflect() protoreflect.Message { // Deprecated: Use PackageReference.ProtoReflect.Descriptor instead. func (*PackageReference) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{18} + return file_registry_platform_proto_rawDescGZIP(), []int{20} } func (x *PackageReference) GetName() string { @@ -1237,20 +1387,424 @@ type VulnerabilitiesDiff struct { func (x *VulnerabilitiesDiff) Reset() { *x = VulnerabilitiesDiff{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[19] + mi := &file_registry_platform_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VulnerabilitiesDiff) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VulnerabilitiesDiff) ProtoMessage() {} + +func (x *VulnerabilitiesDiff) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[21] + 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 VulnerabilitiesDiff.ProtoReflect.Descriptor instead. +func (*VulnerabilitiesDiff) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{21} +} + +func (x *VulnerabilitiesDiff) GetAdded() []*VulnerabilityReference { + if x != nil { + return x.Added + } + return nil +} + +func (x *VulnerabilitiesDiff) GetRemoved() []*VulnerabilityReference { + if x != nil { + return x.Removed + } + return nil +} + +// VulnerabilityReference is a reference to a vulnerability, containing minimal information to identify it. +type VulnerabilityReference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Reference string `protobuf:"bytes,2,opt,name=reference,proto3" json:"reference,omitempty"` + Severity string `protobuf:"bytes,3,opt,name=severity,proto3" json:"severity,omitempty"` +} + +func (x *VulnerabilityReference) Reset() { + *x = VulnerabilityReference{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VulnerabilityReference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VulnerabilityReference) ProtoMessage() {} + +func (x *VulnerabilityReference) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[22] + 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 VulnerabilityReference.ProtoReflect.Descriptor instead. +func (*VulnerabilityReference) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{22} +} + +func (x *VulnerabilityReference) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *VulnerabilityReference) GetReference() string { + if x != nil { + return x.Reference + } + return "" +} + +func (x *VulnerabilityReference) GetSeverity() string { + if x != nil { + return x.Severity + } + return "" +} + +// DiffImageRequests are used to request a diff between two images. +type DiffImageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The UIDP of the image repo to diff against. + RepoId string `protobuf:"bytes,1,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"` + FromDigest string `protobuf:"bytes,2,opt,name=from_digest,json=fromDigest,proto3" json:"from_digest,omitempty"` + ToDigest string `protobuf:"bytes,3,opt,name=to_digest,json=toDigest,proto3" json:"to_digest,omitempty"` +} + +func (x *DiffImageRequest) Reset() { + *x = DiffImageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiffImageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiffImageRequest) ProtoMessage() {} + +func (x *DiffImageRequest) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[23] + 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 DiffImageRequest.ProtoReflect.Descriptor instead. +func (*DiffImageRequest) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{23} +} + +func (x *DiffImageRequest) GetRepoId() string { + if x != nil { + return x.RepoId + } + return "" +} + +func (x *DiffImageRequest) GetFromDigest() string { + if x != nil { + return x.FromDigest + } + return "" +} + +func (x *DiffImageRequest) GetToDigest() string { + if x != nil { + return x.ToDigest + } + return "" +} + +type ChangedImageConfig_ChangedUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Current string `protobuf:"bytes,1,opt,name=current,proto3" json:"current,omitempty"` + Previous string `protobuf:"bytes,2,opt,name=previous,proto3" json:"previous,omitempty"` +} + +func (x *ChangedImageConfig_ChangedUser) Reset() { + *x = ChangedImageConfig_ChangedUser{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangedImageConfig_ChangedUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangedImageConfig_ChangedUser) ProtoMessage() {} + +func (x *ChangedImageConfig_ChangedUser) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[24] + 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 ChangedImageConfig_ChangedUser.ProtoReflect.Descriptor instead. +func (*ChangedImageConfig_ChangedUser) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{15, 0} +} + +func (x *ChangedImageConfig_ChangedUser) GetCurrent() string { + if x != nil { + return x.Current + } + return "" +} + +func (x *ChangedImageConfig_ChangedUser) GetPrevious() string { + if x != nil { + return x.Previous + } + return "" +} + +type ChangedImageConfig_ChangedWorkingDir struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Current string `protobuf:"bytes,1,opt,name=current,proto3" json:"current,omitempty"` + Previous string `protobuf:"bytes,2,opt,name=previous,proto3" json:"previous,omitempty"` +} + +func (x *ChangedImageConfig_ChangedWorkingDir) Reset() { + *x = ChangedImageConfig_ChangedWorkingDir{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangedImageConfig_ChangedWorkingDir) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangedImageConfig_ChangedWorkingDir) ProtoMessage() {} + +func (x *ChangedImageConfig_ChangedWorkingDir) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[25] + 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 ChangedImageConfig_ChangedWorkingDir.ProtoReflect.Descriptor instead. +func (*ChangedImageConfig_ChangedWorkingDir) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{15, 1} +} + +func (x *ChangedImageConfig_ChangedWorkingDir) GetCurrent() string { + if x != nil { + return x.Current + } + return "" +} + +func (x *ChangedImageConfig_ChangedWorkingDir) GetPrevious() string { + if x != nil { + return x.Previous + } + return "" +} + +type ChangedImageConfig_EntrypointDiff struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Added []string `protobuf:"bytes,1,rep,name=added,proto3" json:"added,omitempty"` + Removed []string `protobuf:"bytes,2,rep,name=removed,proto3" json:"removed,omitempty"` +} + +func (x *ChangedImageConfig_EntrypointDiff) Reset() { + *x = ChangedImageConfig_EntrypointDiff{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangedImageConfig_EntrypointDiff) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangedImageConfig_EntrypointDiff) ProtoMessage() {} + +func (x *ChangedImageConfig_EntrypointDiff) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[26] + 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 ChangedImageConfig_EntrypointDiff.ProtoReflect.Descriptor instead. +func (*ChangedImageConfig_EntrypointDiff) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{15, 2} +} + +func (x *ChangedImageConfig_EntrypointDiff) GetAdded() []string { + if x != nil { + return x.Added + } + return nil +} + +func (x *ChangedImageConfig_EntrypointDiff) GetRemoved() []string { + if x != nil { + return x.Removed + } + return nil +} + +type ChangedImageConfig_EnvDiff struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Added []string `protobuf:"bytes,1,rep,name=added,proto3" json:"added,omitempty"` + Removed []string `protobuf:"bytes,2,rep,name=removed,proto3" json:"removed,omitempty"` +} + +func (x *ChangedImageConfig_EnvDiff) Reset() { + *x = ChangedImageConfig_EnvDiff{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangedImageConfig_EnvDiff) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangedImageConfig_EnvDiff) ProtoMessage() {} + +func (x *ChangedImageConfig_EnvDiff) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[27] + 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 ChangedImageConfig_EnvDiff.ProtoReflect.Descriptor instead. +func (*ChangedImageConfig_EnvDiff) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{15, 3} +} + +func (x *ChangedImageConfig_EnvDiff) GetAdded() []string { + if x != nil { + return x.Added + } + return nil +} + +func (x *ChangedImageConfig_EnvDiff) GetRemoved() []string { + if x != nil { + return x.Removed + } + return nil +} + +type ChangedImageConfig_CmdDiff struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Added []string `protobuf:"bytes,1,rep,name=added,proto3" json:"added,omitempty"` + Removed []string `protobuf:"bytes,2,rep,name=removed,proto3" json:"removed,omitempty"` +} + +func (x *ChangedImageConfig_CmdDiff) Reset() { + *x = ChangedImageConfig_CmdDiff{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VulnerabilitiesDiff) String() string { +func (x *ChangedImageConfig_CmdDiff) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VulnerabilitiesDiff) ProtoMessage() {} +func (*ChangedImageConfig_CmdDiff) ProtoMessage() {} -func (x *VulnerabilitiesDiff) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[19] +func (x *ChangedImageConfig_CmdDiff) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1261,53 +1815,51 @@ func (x *VulnerabilitiesDiff) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VulnerabilitiesDiff.ProtoReflect.Descriptor instead. -func (*VulnerabilitiesDiff) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{19} +// Deprecated: Use ChangedImageConfig_CmdDiff.ProtoReflect.Descriptor instead. +func (*ChangedImageConfig_CmdDiff) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{15, 4} } -func (x *VulnerabilitiesDiff) GetAdded() []*VulnerabilityReference { +func (x *ChangedImageConfig_CmdDiff) GetAdded() []string { if x != nil { return x.Added } return nil } -func (x *VulnerabilitiesDiff) GetRemoved() []*VulnerabilityReference { +func (x *ChangedImageConfig_CmdDiff) GetRemoved() []string { if x != nil { return x.Removed } return nil } -// VulnerabilityReference is a reference to a vulnerability, containing minimal information to identify it. -type VulnerabilityReference struct { +type ChangedImageConfig_ChangedStopSignal struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Reference string `protobuf:"bytes,2,opt,name=reference,proto3" json:"reference,omitempty"` - Severity string `protobuf:"bytes,3,opt,name=severity,proto3" json:"severity,omitempty"` + Current string `protobuf:"bytes,1,opt,name=current,proto3" json:"current,omitempty"` + Previous string `protobuf:"bytes,2,opt,name=previous,proto3" json:"previous,omitempty"` } -func (x *VulnerabilityReference) Reset() { - *x = VulnerabilityReference{} +func (x *ChangedImageConfig_ChangedStopSignal) Reset() { + *x = ChangedImageConfig_ChangedStopSignal{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[20] + mi := &file_registry_platform_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VulnerabilityReference) String() string { +func (x *ChangedImageConfig_ChangedStopSignal) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VulnerabilityReference) ProtoMessage() {} +func (*ChangedImageConfig_ChangedStopSignal) ProtoMessage() {} -func (x *VulnerabilityReference) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[20] +func (x *ChangedImageConfig_ChangedStopSignal) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1318,61 +1870,89 @@ func (x *VulnerabilityReference) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VulnerabilityReference.ProtoReflect.Descriptor instead. -func (*VulnerabilityReference) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{20} +// Deprecated: Use ChangedImageConfig_ChangedStopSignal.ProtoReflect.Descriptor instead. +func (*ChangedImageConfig_ChangedStopSignal) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{15, 5} } -func (x *VulnerabilityReference) GetId() string { +func (x *ChangedImageConfig_ChangedStopSignal) GetCurrent() string { if x != nil { - return x.Id + return x.Current } return "" } -func (x *VulnerabilityReference) GetReference() string { +func (x *ChangedImageConfig_ChangedStopSignal) GetPrevious() string { if x != nil { - return x.Reference + return x.Previous } return "" } -func (x *VulnerabilityReference) GetSeverity() string { - if x != nil { - return x.Severity +type ChangedImageConfig_Volume struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ChangedImageConfig_Volume) Reset() { + *x = ChangedImageConfig_Volume{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -// DiffImageRequests are used to request a diff between two images. -type DiffImageRequest struct { +func (x *ChangedImageConfig_Volume) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangedImageConfig_Volume) ProtoMessage() {} + +func (x *ChangedImageConfig_Volume) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[30] + 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 ChangedImageConfig_Volume.ProtoReflect.Descriptor instead. +func (*ChangedImageConfig_Volume) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{15, 6} +} + +type ChangedImageConfig_VolumeDiff struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The UIDP of the image repo to diff against. - RepoId string `protobuf:"bytes,1,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"` - FromDigest string `protobuf:"bytes,2,opt,name=from_digest,json=fromDigest,proto3" json:"from_digest,omitempty"` - ToDigest string `protobuf:"bytes,3,opt,name=to_digest,json=toDigest,proto3" json:"to_digest,omitempty"` + Added map[string]*ChangedImageConfig_Volume `protobuf:"bytes,1,rep,name=added,proto3" json:"added,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Removed map[string]*ChangedImageConfig_Volume `protobuf:"bytes,2,rep,name=removed,proto3" json:"removed,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *DiffImageRequest) Reset() { - *x = DiffImageRequest{} +func (x *ChangedImageConfig_VolumeDiff) Reset() { + *x = ChangedImageConfig_VolumeDiff{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[21] + mi := &file_registry_platform_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DiffImageRequest) String() string { +func (x *ChangedImageConfig_VolumeDiff) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DiffImageRequest) ProtoMessage() {} +func (*ChangedImageConfig_VolumeDiff) ProtoMessage() {} -func (x *DiffImageRequest) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[21] +func (x *ChangedImageConfig_VolumeDiff) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1383,30 +1963,23 @@ func (x *DiffImageRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DiffImageRequest.ProtoReflect.Descriptor instead. -func (*DiffImageRequest) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{21} -} - -func (x *DiffImageRequest) GetRepoId() string { - if x != nil { - return x.RepoId - } - return "" +// Deprecated: Use ChangedImageConfig_VolumeDiff.ProtoReflect.Descriptor instead. +func (*ChangedImageConfig_VolumeDiff) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{15, 7} } -func (x *DiffImageRequest) GetFromDigest() string { +func (x *ChangedImageConfig_VolumeDiff) GetAdded() map[string]*ChangedImageConfig_Volume { if x != nil { - return x.FromDigest + return x.Added } - return "" + return nil } -func (x *DiffImageRequest) GetToDigest() string { +func (x *ChangedImageConfig_VolumeDiff) GetRemoved() map[string]*ChangedImageConfig_Volume { if x != nil { - return x.ToDigest + return x.Removed } - return "" + return nil } type PackagesDiff_ChangedPackageReference struct { @@ -1422,7 +1995,7 @@ type PackagesDiff_ChangedPackageReference struct { func (x *PackagesDiff_ChangedPackageReference) Reset() { *x = PackagesDiff_ChangedPackageReference{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[22] + mi := &file_registry_platform_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1435,7 +2008,7 @@ func (x *PackagesDiff_ChangedPackageReference) String() string { func (*PackagesDiff_ChangedPackageReference) ProtoMessage() {} func (x *PackagesDiff_ChangedPackageReference) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[22] + mi := &file_registry_platform_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1448,7 +2021,7 @@ func (x *PackagesDiff_ChangedPackageReference) ProtoReflect() protoreflect.Messa // Deprecated: Use PackagesDiff_ChangedPackageReference.ProtoReflect.Descriptor instead. func (*PackagesDiff_ChangedPackageReference) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{14, 0} + return file_registry_platform_proto_rawDescGZIP(), []int{16, 0} } func (x *PackagesDiff_ChangedPackageReference) GetName() string { @@ -1586,7 +2159,7 @@ var file_registry_platform_proto_rawDesc = []byte{ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0xef, 0x01, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0xb6, 0x02, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x69, 0x66, 0x66, 0x12, 0x46, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, @@ -1601,213 +2174,320 @@ var file_registry_platform_proto_rawDesc = []byte{ 0x12, 0x3d, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x44, 0x69, 0x66, 0x66, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, - 0xc2, 0x03, 0x0a, 0x0c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x44, 0x69, 0x66, 0x66, - 0x12, 0x44, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x50, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, - 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, + 0x69, 0x6c, 0x65, 0x73, 0x44, 0x69, 0x66, 0x66, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x52, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x5d, 0x0a, 0x0f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x12, 0x4a, 0x0a, 0x07, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0x84, 0x0c, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5e, 0x0a, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x11, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, - 0x12, 0x5c, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x42, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x52, 0x11, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x12, 0x61, + 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x44, 0x69, 0x66, 0x66, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x12, 0x4c, 0x0a, 0x04, 0x65, 0x6e, 0x76, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x45, 0x6e, 0x76, 0x44, 0x69, 0x66, 0x66, 0x52, 0x04, 0x65, 0x6e, 0x76, 0x73, 0x12, + 0x4c, 0x0a, 0x04, 0x63, 0x6d, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x43, 0x6d, 0x64, 0x44, 0x69, 0x66, 0x66, 0x52, 0x04, 0x63, 0x6d, 0x64, 0x73, 0x12, 0x70, 0x0a, + 0x11, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x11, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, + 0x55, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3b, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x66, 0x52, 0x07, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x1a, 0x49, 0x0a, 0x11, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x1a, 0x40, 0x0a, 0x0e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x66, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x1a, 0x39, 0x0a, 0x07, 0x45, 0x6e, 0x76, 0x44, + 0x69, 0x66, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x64, 0x1a, 0x39, 0x0a, 0x07, 0x43, 0x6d, 0x64, 0x44, 0x69, 0x66, 0x66, 0x12, 0x14, + 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x61, + 0x64, 0x64, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x1a, 0x49, + 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x1a, 0x08, 0x0a, 0x06, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x1a, 0xb6, 0x03, 0x0a, 0x0a, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x69, + 0x66, 0x66, 0x12, 0x5c, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x46, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x44, 0x69, 0x66, 0x66, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x1a, 0xc3, - 0x01, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, - 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, - 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x76, - 0x69, 0x6f, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x76, - 0x69, 0x6f, 0x75, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x09, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x44, 0x69, - 0x66, 0x66, 0x12, 0x41, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x66, 0x2e, 0x41, + 0x64, 0x64, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, + 0x12, 0x62, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x48, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, - 0x61, 0x64, 0x64, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x22, 0x23, 0x0a, 0x0d, - 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x4a, 0x0a, 0x10, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x5e, 0x0a, - 0x10, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb1, 0x01, - 0x0a, 0x13, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x4a, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, - 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x61, 0x64, 0x64, 0x65, - 0x64, 0x12, 0x4e, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x64, 0x22, 0x62, 0x0a, 0x16, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76, - 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76, - 0x65, 0x72, 0x69, 0x74, 0x79, 0x22, 0x71, 0x0a, 0x10, 0x44, 0x69, 0x66, 0x66, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x07, 0x72, 0x65, 0x70, - 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0x90, 0xaf, 0xa8, 0xd2, - 0x05, 0x01, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, - 0x6f, 0x6d, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x6f, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x6f, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x2a, 0x3f, 0x0a, 0x0b, 0x43, 0x61, 0x74, 0x61, - 0x6c, 0x6f, 0x67, 0x54, 0x69, 0x65, 0x72, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, - 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x52, 0x45, 0x45, 0x10, 0x01, 0x12, 0x0c, - 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, - 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, 0x10, 0x03, 0x32, 0xe2, 0x0e, 0x0a, 0x08, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0xe4, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, - 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x22, 0x80, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x29, 0x22, 0x21, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x8a, 0xaf, 0xa8, 0xd2, - 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xc3, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3f, 0x0a, 0x34, - 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xcc, 0x01, - 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x22, 0x2e, 0x63, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x66, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x64, 0x1a, 0x71, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x65, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x73, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc2, 0x03, 0x0a, + 0x0c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x44, 0x0a, + 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, - 0x52, 0x65, 0x70, 0x6f, 0x22, 0x76, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x1a, 0x1a, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, - 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, - 0x06, 0x12, 0x04, 0x0a, 0x02, 0xc4, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3f, 0x0a, 0x34, 0x64, - 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0x87, 0x01, 0x0a, - 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x28, 0x2e, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, + 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x61, 0x64, + 0x64, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x28, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, - 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, - 0x0a, 0x02, 0xc5, 0x0c, 0x10, 0x01, 0x12, 0xca, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, - 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 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, 0x73, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, - 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xc6, 0x0c, 0xc2, 0xf0, - 0x8e, 0xfc, 0x0b, 0x3f, 0x0a, 0x34, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, - 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x01, 0x12, 0xdb, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, + 0x74, 0x72, 0x79, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x5c, 0x0a, + 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, + 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x44, 0x69, 0x66, 0x66, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x1a, 0xc3, 0x01, 0x0a, 0x17, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x07, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, + 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x22, 0x95, 0x01, 0x0a, 0x09, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, + 0x41, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x46, 0x69, + 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x12, 0x45, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x22, 0x23, 0x0a, 0x0d, 0x46, 0x69, 0x6c, + 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4a, + 0x0a, 0x10, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x5e, 0x0a, 0x10, 0x50, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x13, 0x56, + 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x44, 0x69, + 0x66, 0x66, 0x12, 0x4a, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x2e, 0x54, 0x61, 0x67, 0x22, 0x7b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x1e, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, - 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x03, 0x74, 0x61, - 0x67, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcb, 0x0c, 0xc2, 0xf0, 0x8e, - 0xfc, 0x0b, 0x3e, 0x0a, 0x33, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x74, 0x61, 0x67, 0x2e, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x01, 0x12, 0xc7, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, - 0x21, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, - 0x61, 0x67, 0x1a, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, + 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x12, 0x4e, + 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, + 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x22, 0x62, + 0x0a, 0x16, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, + 0x74, 0x79, 0x22, 0x71, 0x0a, 0x10, 0x44, 0x69, 0x66, 0x66, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0x90, 0xaf, 0xa8, 0xd2, 0x05, 0x01, 0x52, + 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, + 0x6f, 0x6d, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x64, + 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x44, + 0x69, 0x67, 0x65, 0x73, 0x74, 0x2a, 0x3f, 0x0a, 0x0b, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, + 0x54, 0x69, 0x65, 0x72, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x52, 0x45, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, + 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, + 0x4d, 0x49, 0x55, 0x4d, 0x10, 0x03, 0x32, 0xe2, 0x0e, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x12, 0xe4, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x22, 0x80, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, + 0x22, 0x21, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x3d, + 0x2a, 0x2a, 0x7d, 0x3a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, + 0x04, 0x0a, 0x02, 0xc3, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3f, 0x0a, 0x34, 0x64, 0x65, 0x76, + 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x2e, 0x54, 0x61, 0x67, 0x22, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x1a, 0x19, 0x2f, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, - 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, - 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcc, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3e, 0x0a, 0x33, 0x64, - 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x2e, 0x74, 0x61, 0x67, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, - 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xc6, 0x01, 0x0a, 0x09, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, + 0x79, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, + 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xcc, 0x01, 0x0a, 0x0a, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x61, 0x67, 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, 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, - 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xce, 0x0c, - 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3e, 0x0a, 0x33, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x74, 0x61, 0x67, - 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, - 0x73, 0x12, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x2e, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x25, 0x2e, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, - 0x05, 0x08, 0x12, 0x06, 0x0a, 0x02, 0xcd, 0x0c, 0x10, 0x01, 0x12, 0xac, 0x01, 0x0a, 0x0e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2e, 0x2e, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x2c, 0x2e, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x3c, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, - 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x8a, 0xaf, 0xa8, - 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcd, 0x0c, 0x12, 0xa2, 0x01, 0x0a, 0x09, 0x44, 0x69, - 0x66, 0x66, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, + 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x22, 0x76, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x1a, 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, + 0x0a, 0x02, 0xc4, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3f, 0x0a, 0x34, 0x64, 0x65, 0x76, 0x2e, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, + 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x09, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x28, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x1a, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x14, 0x12, 0x12, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x02, 0xc5, + 0x0c, 0x10, 0x01, 0x12, 0xca, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 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, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, + 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xc6, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, + 0x3f, 0x0a, 0x34, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, + 0x12, 0xdb, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2e, + 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, + 0x67, 0x22, 0x7b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x1e, 0x2f, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x72, 0x65, + 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x03, 0x74, 0x61, 0x67, 0x8a, 0xaf, + 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcb, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3e, + 0x0a, 0x33, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x74, 0x61, 0x67, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xc7, + 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x21, 0x2e, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x1a, + 0x21, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, + 0x61, 0x67, 0x22, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x1a, 0x19, 0x2f, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x3a, 0x01, 0x2a, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, + 0x0a, 0x02, 0xcc, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3e, 0x0a, 0x33, 0x64, 0x65, 0x76, 0x2e, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x74, 0x61, 0x67, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, + 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xc6, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, + 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 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, 0x71, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, 0x2a, + 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xce, 0x0c, 0xc2, 0xf0, 0x8e, + 0xfc, 0x0b, 0x3e, 0x0a, 0x33, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, + 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x74, 0x61, 0x67, 0x2e, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x01, 0x12, 0x83, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x27, + 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, + 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x69, 0x66, 0x66, - 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, 0x65, - 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x66, 0x66, 0x8a, 0xaf, - 0xa8, 0xd2, 0x05, 0x0a, 0x12, 0x08, 0x0a, 0x06, 0xc5, 0x0c, 0x94, 0x05, 0x8a, 0x05, 0x42, 0x71, - 0x0a, 0x27, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, - 0x2e, 0x73, 0x64, 0x6b, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x64, - 0x65, 0x76, 0x2f, 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x27, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, + 0x06, 0x0a, 0x02, 0xcd, 0x0c, 0x10, 0x01, 0x12, 0xac, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x61, 0x67, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x2c, 0x2e, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, + 0x12, 0x28, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, + 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x3d, 0x2a, + 0x2a, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, + 0x12, 0x04, 0x0a, 0x02, 0xcd, 0x0c, 0x12, 0xa2, 0x01, 0x0a, 0x09, 0x44, 0x69, 0x66, 0x66, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, + 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, + 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x69, 0x66, 0x66, 0x22, 0x3c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x5f, + 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x66, 0x66, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, + 0x0a, 0x12, 0x08, 0x0a, 0x06, 0xc5, 0x0c, 0x94, 0x05, 0x8a, 0x05, 0x42, 0x71, 0x0a, 0x27, 0x64, + 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x73, 0x64, + 0x6b, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x64, 0x65, 0x76, 0x2f, + 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1823,7 +2503,7 @@ func file_registry_platform_proto_rawDescGZIP() []byte { } var file_registry_platform_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_registry_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_registry_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 35) var file_registry_platform_proto_goTypes = []interface{}{ (CatalogTier)(0), // 0: chainguard.platform.registry.CatalogTier (*Repo)(nil), // 1: chainguard.platform.registry.Repo @@ -1840,70 +2520,95 @@ var file_registry_platform_proto_goTypes = []interface{}{ (*TagHistoryList)(nil), // 12: chainguard.platform.registry.TagHistoryList (*TagHistory)(nil), // 13: chainguard.platform.registry.TagHistory (*ImageDiff)(nil), // 14: chainguard.platform.registry.ImageDiff - (*PackagesDiff)(nil), // 15: chainguard.platform.registry.PackagesDiff - (*FilesDiff)(nil), // 16: chainguard.platform.registry.FilesDiff - (*FileReference)(nil), // 17: chainguard.platform.registry.FileReference - (*VersionReference)(nil), // 18: chainguard.platform.registry.VersionReference - (*PackageReference)(nil), // 19: chainguard.platform.registry.PackageReference - (*VulnerabilitiesDiff)(nil), // 20: chainguard.platform.registry.VulnerabilitiesDiff - (*VulnerabilityReference)(nil), // 21: chainguard.platform.registry.VulnerabilityReference - (*DiffImageRequest)(nil), // 22: chainguard.platform.registry.DiffImageRequest - (*PackagesDiff_ChangedPackageReference)(nil), // 23: chainguard.platform.registry.PackagesDiff.ChangedPackageReference - (*v1.UIDPFilter)(nil), // 24: chainguard.platform.common.UIDPFilter - (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp - (*emptypb.Empty)(nil), // 26: google.protobuf.Empty + (*ImageConfigDiff)(nil), // 15: chainguard.platform.registry.ImageConfigDiff + (*ChangedImageConfig)(nil), // 16: chainguard.platform.registry.ChangedImageConfig + (*PackagesDiff)(nil), // 17: chainguard.platform.registry.PackagesDiff + (*FilesDiff)(nil), // 18: chainguard.platform.registry.FilesDiff + (*FileReference)(nil), // 19: chainguard.platform.registry.FileReference + (*VersionReference)(nil), // 20: chainguard.platform.registry.VersionReference + (*PackageReference)(nil), // 21: chainguard.platform.registry.PackageReference + (*VulnerabilitiesDiff)(nil), // 22: chainguard.platform.registry.VulnerabilitiesDiff + (*VulnerabilityReference)(nil), // 23: chainguard.platform.registry.VulnerabilityReference + (*DiffImageRequest)(nil), // 24: chainguard.platform.registry.DiffImageRequest + (*ChangedImageConfig_ChangedUser)(nil), // 25: chainguard.platform.registry.ChangedImageConfig.ChangedUser + (*ChangedImageConfig_ChangedWorkingDir)(nil), // 26: chainguard.platform.registry.ChangedImageConfig.ChangedWorkingDir + (*ChangedImageConfig_EntrypointDiff)(nil), // 27: chainguard.platform.registry.ChangedImageConfig.EntrypointDiff + (*ChangedImageConfig_EnvDiff)(nil), // 28: chainguard.platform.registry.ChangedImageConfig.EnvDiff + (*ChangedImageConfig_CmdDiff)(nil), // 29: chainguard.platform.registry.ChangedImageConfig.CmdDiff + (*ChangedImageConfig_ChangedStopSignal)(nil), // 30: chainguard.platform.registry.ChangedImageConfig.ChangedStopSignal + (*ChangedImageConfig_Volume)(nil), // 31: chainguard.platform.registry.ChangedImageConfig.Volume + (*ChangedImageConfig_VolumeDiff)(nil), // 32: chainguard.platform.registry.ChangedImageConfig.VolumeDiff + nil, // 33: chainguard.platform.registry.ChangedImageConfig.VolumeDiff.AddedEntry + nil, // 34: chainguard.platform.registry.ChangedImageConfig.VolumeDiff.RemovedEntry + (*PackagesDiff_ChangedPackageReference)(nil), // 35: chainguard.platform.registry.PackagesDiff.ChangedPackageReference + (*v1.UIDPFilter)(nil), // 36: chainguard.platform.common.UIDPFilter + (*timestamppb.Timestamp)(nil), // 37: google.protobuf.Timestamp + (*emptypb.Empty)(nil), // 38: google.protobuf.Empty } var file_registry_platform_proto_depIdxs = []int32{ 0, // 0: chainguard.platform.registry.Repo.catalog_tier:type_name -> chainguard.platform.registry.CatalogTier 1, // 1: chainguard.platform.registry.CreateRepoRequest.repo:type_name -> chainguard.platform.registry.Repo 1, // 2: chainguard.platform.registry.RepoList.items:type_name -> chainguard.platform.registry.Repo - 24, // 3: chainguard.platform.registry.RepoFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter + 36, // 3: chainguard.platform.registry.RepoFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter 8, // 4: chainguard.platform.registry.CreateTagRequest.tag:type_name -> chainguard.platform.registry.Tag - 25, // 5: chainguard.platform.registry.Tag.last_updated:type_name -> google.protobuf.Timestamp - 24, // 6: chainguard.platform.registry.TagFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter - 25, // 7: chainguard.platform.registry.TagFilter.updated_since:type_name -> google.protobuf.Timestamp + 37, // 5: chainguard.platform.registry.Tag.last_updated:type_name -> google.protobuf.Timestamp + 36, // 6: chainguard.platform.registry.TagFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter + 37, // 7: chainguard.platform.registry.TagFilter.updated_since:type_name -> google.protobuf.Timestamp 8, // 8: chainguard.platform.registry.TagList.items:type_name -> chainguard.platform.registry.Tag - 25, // 9: chainguard.platform.registry.TagHistoryFilter.start:type_name -> google.protobuf.Timestamp - 25, // 10: chainguard.platform.registry.TagHistoryFilter.end:type_name -> google.protobuf.Timestamp + 37, // 9: chainguard.platform.registry.TagHistoryFilter.start:type_name -> google.protobuf.Timestamp + 37, // 10: chainguard.platform.registry.TagHistoryFilter.end:type_name -> google.protobuf.Timestamp 13, // 11: chainguard.platform.registry.TagHistoryList.items:type_name -> chainguard.platform.registry.TagHistory - 25, // 12: chainguard.platform.registry.TagHistory.update_timestamp:type_name -> google.protobuf.Timestamp - 15, // 13: chainguard.platform.registry.ImageDiff.packages:type_name -> chainguard.platform.registry.PackagesDiff - 20, // 14: chainguard.platform.registry.ImageDiff.vulnerabilities:type_name -> chainguard.platform.registry.VulnerabilitiesDiff - 16, // 15: chainguard.platform.registry.ImageDiff.files:type_name -> chainguard.platform.registry.FilesDiff - 19, // 16: chainguard.platform.registry.PackagesDiff.added:type_name -> chainguard.platform.registry.PackageReference - 19, // 17: chainguard.platform.registry.PackagesDiff.removed:type_name -> chainguard.platform.registry.PackageReference - 23, // 18: chainguard.platform.registry.PackagesDiff.changed:type_name -> chainguard.platform.registry.PackagesDiff.ChangedPackageReference - 17, // 19: chainguard.platform.registry.FilesDiff.added:type_name -> chainguard.platform.registry.FileReference - 17, // 20: chainguard.platform.registry.FilesDiff.removed:type_name -> chainguard.platform.registry.FileReference - 21, // 21: chainguard.platform.registry.VulnerabilitiesDiff.added:type_name -> chainguard.platform.registry.VulnerabilityReference - 21, // 22: chainguard.platform.registry.VulnerabilitiesDiff.removed:type_name -> chainguard.platform.registry.VulnerabilityReference - 18, // 23: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.current:type_name -> chainguard.platform.registry.VersionReference - 18, // 24: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.previous:type_name -> chainguard.platform.registry.VersionReference - 2, // 25: chainguard.platform.registry.Registry.CreateRepo:input_type -> chainguard.platform.registry.CreateRepoRequest - 1, // 26: chainguard.platform.registry.Registry.UpdateRepo:input_type -> chainguard.platform.registry.Repo - 5, // 27: chainguard.platform.registry.Registry.ListRepos:input_type -> chainguard.platform.registry.RepoFilter - 3, // 28: chainguard.platform.registry.Registry.DeleteRepo:input_type -> chainguard.platform.registry.DeleteRepoRequest - 6, // 29: chainguard.platform.registry.Registry.CreateTag:input_type -> chainguard.platform.registry.CreateTagRequest - 8, // 30: chainguard.platform.registry.Registry.UpdateTag:input_type -> chainguard.platform.registry.Tag - 7, // 31: chainguard.platform.registry.Registry.DeleteTag:input_type -> chainguard.platform.registry.DeleteTagRequest - 9, // 32: chainguard.platform.registry.Registry.ListTags:input_type -> chainguard.platform.registry.TagFilter - 11, // 33: chainguard.platform.registry.Registry.ListTagHistory:input_type -> chainguard.platform.registry.TagHistoryFilter - 22, // 34: chainguard.platform.registry.Registry.DiffImage:input_type -> chainguard.platform.registry.DiffImageRequest - 1, // 35: chainguard.platform.registry.Registry.CreateRepo:output_type -> chainguard.platform.registry.Repo - 1, // 36: chainguard.platform.registry.Registry.UpdateRepo:output_type -> chainguard.platform.registry.Repo - 4, // 37: chainguard.platform.registry.Registry.ListRepos:output_type -> chainguard.platform.registry.RepoList - 26, // 38: chainguard.platform.registry.Registry.DeleteRepo:output_type -> google.protobuf.Empty - 8, // 39: chainguard.platform.registry.Registry.CreateTag:output_type -> chainguard.platform.registry.Tag - 8, // 40: chainguard.platform.registry.Registry.UpdateTag:output_type -> chainguard.platform.registry.Tag - 26, // 41: chainguard.platform.registry.Registry.DeleteTag:output_type -> google.protobuf.Empty - 10, // 42: chainguard.platform.registry.Registry.ListTags:output_type -> chainguard.platform.registry.TagList - 12, // 43: chainguard.platform.registry.Registry.ListTagHistory:output_type -> chainguard.platform.registry.TagHistoryList - 14, // 44: chainguard.platform.registry.Registry.DiffImage:output_type -> chainguard.platform.registry.ImageDiff - 35, // [35:45] is the sub-list for method output_type - 25, // [25:35] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 37, // 12: chainguard.platform.registry.TagHistory.update_timestamp:type_name -> google.protobuf.Timestamp + 17, // 13: chainguard.platform.registry.ImageDiff.packages:type_name -> chainguard.platform.registry.PackagesDiff + 22, // 14: chainguard.platform.registry.ImageDiff.vulnerabilities:type_name -> chainguard.platform.registry.VulnerabilitiesDiff + 18, // 15: chainguard.platform.registry.ImageDiff.files:type_name -> chainguard.platform.registry.FilesDiff + 15, // 16: chainguard.platform.registry.ImageDiff.config:type_name -> chainguard.platform.registry.ImageConfigDiff + 16, // 17: chainguard.platform.registry.ImageConfigDiff.changed:type_name -> chainguard.platform.registry.ChangedImageConfig + 25, // 18: chainguard.platform.registry.ChangedImageConfig.changedUser:type_name -> chainguard.platform.registry.ChangedImageConfig.ChangedUser + 26, // 19: chainguard.platform.registry.ChangedImageConfig.changedWorkingDir:type_name -> chainguard.platform.registry.ChangedImageConfig.ChangedWorkingDir + 27, // 20: chainguard.platform.registry.ChangedImageConfig.entrypoints:type_name -> chainguard.platform.registry.ChangedImageConfig.EntrypointDiff + 28, // 21: chainguard.platform.registry.ChangedImageConfig.envs:type_name -> chainguard.platform.registry.ChangedImageConfig.EnvDiff + 29, // 22: chainguard.platform.registry.ChangedImageConfig.cmds:type_name -> chainguard.platform.registry.ChangedImageConfig.CmdDiff + 30, // 23: chainguard.platform.registry.ChangedImageConfig.changedStopSignal:type_name -> chainguard.platform.registry.ChangedImageConfig.ChangedStopSignal + 32, // 24: chainguard.platform.registry.ChangedImageConfig.volumes:type_name -> chainguard.platform.registry.ChangedImageConfig.VolumeDiff + 21, // 25: chainguard.platform.registry.PackagesDiff.added:type_name -> chainguard.platform.registry.PackageReference + 21, // 26: chainguard.platform.registry.PackagesDiff.removed:type_name -> chainguard.platform.registry.PackageReference + 35, // 27: chainguard.platform.registry.PackagesDiff.changed:type_name -> chainguard.platform.registry.PackagesDiff.ChangedPackageReference + 19, // 28: chainguard.platform.registry.FilesDiff.added:type_name -> chainguard.platform.registry.FileReference + 19, // 29: chainguard.platform.registry.FilesDiff.removed:type_name -> chainguard.platform.registry.FileReference + 23, // 30: chainguard.platform.registry.VulnerabilitiesDiff.added:type_name -> chainguard.platform.registry.VulnerabilityReference + 23, // 31: chainguard.platform.registry.VulnerabilitiesDiff.removed:type_name -> chainguard.platform.registry.VulnerabilityReference + 33, // 32: chainguard.platform.registry.ChangedImageConfig.VolumeDiff.added:type_name -> chainguard.platform.registry.ChangedImageConfig.VolumeDiff.AddedEntry + 34, // 33: chainguard.platform.registry.ChangedImageConfig.VolumeDiff.removed:type_name -> chainguard.platform.registry.ChangedImageConfig.VolumeDiff.RemovedEntry + 31, // 34: chainguard.platform.registry.ChangedImageConfig.VolumeDiff.AddedEntry.value:type_name -> chainguard.platform.registry.ChangedImageConfig.Volume + 31, // 35: chainguard.platform.registry.ChangedImageConfig.VolumeDiff.RemovedEntry.value:type_name -> chainguard.platform.registry.ChangedImageConfig.Volume + 20, // 36: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.current:type_name -> chainguard.platform.registry.VersionReference + 20, // 37: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.previous:type_name -> chainguard.platform.registry.VersionReference + 2, // 38: chainguard.platform.registry.Registry.CreateRepo:input_type -> chainguard.platform.registry.CreateRepoRequest + 1, // 39: chainguard.platform.registry.Registry.UpdateRepo:input_type -> chainguard.platform.registry.Repo + 5, // 40: chainguard.platform.registry.Registry.ListRepos:input_type -> chainguard.platform.registry.RepoFilter + 3, // 41: chainguard.platform.registry.Registry.DeleteRepo:input_type -> chainguard.platform.registry.DeleteRepoRequest + 6, // 42: chainguard.platform.registry.Registry.CreateTag:input_type -> chainguard.platform.registry.CreateTagRequest + 8, // 43: chainguard.platform.registry.Registry.UpdateTag:input_type -> chainguard.platform.registry.Tag + 7, // 44: chainguard.platform.registry.Registry.DeleteTag:input_type -> chainguard.platform.registry.DeleteTagRequest + 9, // 45: chainguard.platform.registry.Registry.ListTags:input_type -> chainguard.platform.registry.TagFilter + 11, // 46: chainguard.platform.registry.Registry.ListTagHistory:input_type -> chainguard.platform.registry.TagHistoryFilter + 24, // 47: chainguard.platform.registry.Registry.DiffImage:input_type -> chainguard.platform.registry.DiffImageRequest + 1, // 48: chainguard.platform.registry.Registry.CreateRepo:output_type -> chainguard.platform.registry.Repo + 1, // 49: chainguard.platform.registry.Registry.UpdateRepo:output_type -> chainguard.platform.registry.Repo + 4, // 50: chainguard.platform.registry.Registry.ListRepos:output_type -> chainguard.platform.registry.RepoList + 38, // 51: chainguard.platform.registry.Registry.DeleteRepo:output_type -> google.protobuf.Empty + 8, // 52: chainguard.platform.registry.Registry.CreateTag:output_type -> chainguard.platform.registry.Tag + 8, // 53: chainguard.platform.registry.Registry.UpdateTag:output_type -> chainguard.platform.registry.Tag + 38, // 54: chainguard.platform.registry.Registry.DeleteTag:output_type -> google.protobuf.Empty + 10, // 55: chainguard.platform.registry.Registry.ListTags:output_type -> chainguard.platform.registry.TagList + 12, // 56: chainguard.platform.registry.Registry.ListTagHistory:output_type -> chainguard.platform.registry.TagHistoryList + 14, // 57: chainguard.platform.registry.Registry.DiffImage:output_type -> chainguard.platform.registry.ImageDiff + 48, // [48:58] is the sub-list for method output_type + 38, // [38:48] is the sub-list for method input_type + 38, // [38:38] is the sub-list for extension type_name + 38, // [38:38] is the sub-list for extension extendee + 0, // [0:38] is the sub-list for field type_name } func init() { file_registry_platform_proto_init() } @@ -2081,7 +2786,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PackagesDiff); i { + switch v := v.(*ImageConfigDiff); i { case 0: return &v.state case 1: @@ -2093,7 +2798,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FilesDiff); i { + switch v := v.(*ChangedImageConfig); i { case 0: return &v.state case 1: @@ -2105,7 +2810,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileReference); i { + switch v := v.(*PackagesDiff); i { case 0: return &v.state case 1: @@ -2117,7 +2822,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VersionReference); i { + switch v := v.(*FilesDiff); i { case 0: return &v.state case 1: @@ -2129,7 +2834,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PackageReference); i { + switch v := v.(*FileReference); i { case 0: return &v.state case 1: @@ -2141,7 +2846,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VulnerabilitiesDiff); i { + switch v := v.(*VersionReference); i { case 0: return &v.state case 1: @@ -2153,7 +2858,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VulnerabilityReference); i { + switch v := v.(*PackageReference); i { case 0: return &v.state case 1: @@ -2165,7 +2870,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiffImageRequest); i { + switch v := v.(*VulnerabilitiesDiff); i { case 0: return &v.state case 1: @@ -2177,6 +2882,126 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VulnerabilityReference); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiffImageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangedImageConfig_ChangedUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangedImageConfig_ChangedWorkingDir); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangedImageConfig_EntrypointDiff); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangedImageConfig_EnvDiff); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangedImageConfig_CmdDiff); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangedImageConfig_ChangedStopSignal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangedImageConfig_Volume); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangedImageConfig_VolumeDiff); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PackagesDiff_ChangedPackageReference); i { case 0: return &v.state @@ -2195,7 +3020,7 @@ func file_registry_platform_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_registry_platform_proto_rawDesc, NumEnums: 1, - NumMessages: 23, + NumMessages: 35, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/platform/registry/v1/registry.platform.proto b/proto/platform/registry/v1/registry.platform.proto index c90d5df..7310408 100644 --- a/proto/platform/registry/v1/registry.platform.proto +++ b/proto/platform/registry/v1/registry.platform.proto @@ -285,6 +285,60 @@ message ImageDiff { PackagesDiff packages = 1; VulnerabilitiesDiff vulnerabilities = 2; FilesDiff files = 3; + ImageConfigDiff config = 4; +} + +message ImageConfigDiff { + ChangedImageConfig changed = 1; +} + +message ChangedImageConfig { + message ChangedUser { + string current = 1; + string previous = 2; + } + ChangedUser changedUser = 1; + + message ChangedWorkingDir { + string current = 1; + string previous = 2; + } + + ChangedWorkingDir changedWorkingDir = 2; + + message EntrypointDiff { + repeated string added = 1; + repeated string removed = 2; + } + + EntrypointDiff entrypoints = 3; + + message EnvDiff { + repeated string added = 1; + repeated string removed = 2; + } + + EnvDiff envs = 4; + + message CmdDiff { + repeated string added = 1; + repeated string removed = 2; + } + + CmdDiff cmds = 5; + + message ChangedStopSignal { + string current = 1; + string previous = 2; + } + ChangedStopSignal changedStopSignal = 6; + + message Volume {} + message VolumeDiff { + map added = 1; + map removed = 2; + } + VolumeDiff volumes = 7; } message PackagesDiff {