From bc1dd718a3519471b796a02cb1462e18c5e21de4 Mon Sep 17 00:00:00 2001 From: Josh Dolitsky <393494+jdolitsky@users.noreply.github.com> Date: Fri, 30 Aug 2024 10:42:23 -0500 Subject: [PATCH] Export 7ae33c9668423979b8bc9b95ce1338cdff4853e7 Export: 7ae33c9668423979b8bc9b95ce1338cdff4853e7 --- proto/capabilities/capabilities.pb.go | 10 +- proto/capabilities/capabilities.proto | 4 +- proto/capabilities/roles.go | 2 + .../registry/v1/registry.platform.pb.go | 1529 ++++++++++------- .../registry/v1/registry.platform.pb.gw.go | 103 ++ .../registry/v1/registry.platform.proto | 45 + .../registry/v1/registry.platform_grpc.pb.go | 70 +- proto/platform/registry/v1/test/registry.go | 44 +- 8 files changed, 1162 insertions(+), 645 deletions(-) diff --git a/proto/capabilities/capabilities.pb.go b/proto/capabilities/capabilities.pb.go index dbe5d98..e0480fb 100644 --- a/proto/capabilities/capabilities.pb.go +++ b/proto/capabilities/capabilities.pb.go @@ -116,6 +116,7 @@ const ( Capability_CAP_APK_UPDATE Capability = 1651 Capability_CAP_APK_LIST Capability = 1652 Capability_CAP_APK_DELETE Capability = 1653 + Capability_CAP_VERSION_LIST Capability = 1654 // Deprecated: Marked as deprecated in capabilities.proto. Capability_CAP_SIGSTORE_CREATE Capability = 1701 // Deprecated: Marked as deprecated in capabilities.proto. @@ -209,6 +210,7 @@ var ( 1651: "CAP_APK_UPDATE", 1652: "CAP_APK_LIST", 1653: "CAP_APK_DELETE", + 1654: "CAP_VERSION_LIST", 1701: "CAP_SIGSTORE_CREATE", 1702: "CAP_SIGSTORE_UPDATE", 1703: "CAP_SIGSTORE_LIST", @@ -288,6 +290,7 @@ var ( "CAP_APK_UPDATE": 1651, "CAP_APK_LIST": 1652, "CAP_APK_DELETE": 1653, + "CAP_VERSION_LIST": 1654, "CAP_SIGSTORE_CREATE": 1701, "CAP_SIGSTORE_UPDATE": 1702, "CAP_SIGSTORE_LIST": 1703, @@ -365,7 +368,7 @@ var file_capabilities_proto_rawDesc = []byte{ 0x2e, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2a, - 0xb1, 0x23, 0x0a, 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x0b, + 0xe1, 0x23, 0x0a, 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x33, 0x0a, 0x15, 0x43, 0x41, 0x50, 0x5f, 0x49, 0x41, 0x4d, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x65, 0x1a, 0x18, 0xa8, 0xcb, 0x91, 0x4d, 0x01, 0x9a, 0xaf, 0xa8, @@ -626,7 +629,10 @@ var file_capabilities_proto_rawDesc = []byte{ 0x4b, 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x61, 0x70, 0x6b, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x43, 0x41, 0x50, 0x5f, 0x41, 0x50, 0x4b, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0xf5, 0x0c, 0x1a, 0x15, 0xa8, 0xcb, 0x91, 0x4d, 0x4c, 0x9a, 0xaf, 0xa8, 0xd2, 0x05, - 0x0a, 0x61, 0x70, 0x6b, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x13, 0x43, + 0x0a, 0x61, 0x70, 0x6b, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x43, + 0x41, 0x50, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, + 0xf6, 0x0c, 0x1a, 0x17, 0xa8, 0xcb, 0x91, 0x4d, 0x4d, 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x0c, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x13, 0x43, 0x41, 0x50, 0x5f, 0x53, 0x49, 0x47, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0xa5, 0x0d, 0x1a, 0x1c, 0xa8, 0xcb, 0x91, 0x4d, 0x2a, 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x0f, 0x73, 0x69, 0x67, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, diff --git a/proto/capabilities/capabilities.proto b/proto/capabilities/capabilities.proto index 4721d29..dbd11b3 100644 --- a/proto/capabilities/capabilities.proto +++ b/proto/capabilities/capabilities.proto @@ -123,6 +123,8 @@ enum Capability { CAP_APK_LIST = 1652 [(name) = "apk.list", (bit) = 75]; CAP_APK_DELETE = 1653 [(name) = "apk.delete", (bit) = 76]; + CAP_VERSION_LIST = 1654 [(name) = "version.list", (bit) = 77]; + // Sigstore-aas CAP_SIGSTORE_CREATE = 1701 [(name) = "sigstore.create", (bit) = 42, deprecated = true]; @@ -140,5 +142,5 @@ enum Capability { // capability? CAP_GULFSTREAM = 10000 [(name) = "gulfstream", (bit) = 47]; - // next bit: 77 + // next bit: 78 } diff --git a/proto/capabilities/roles.go b/proto/capabilities/roles.go index 7f682af..2aba266 100644 --- a/proto/capabilities/roles.go +++ b/proto/capabilities/roles.go @@ -26,6 +26,8 @@ var ( Capability_CAP_TENANT_RECORD_SIGNATURES_LIST, Capability_CAP_TENANT_SBOMS_LIST, Capability_CAP_TENANT_VULN_REPORTS_LIST, + + Capability_CAP_VERSION_LIST, }, // Viewers can also list repos and tags, and pull images. RegistryPullCaps...), APKPullCaps...)) diff --git a/proto/platform/registry/v1/registry.platform.pb.go b/proto/platform/registry/v1/registry.platform.pb.go index 775b0f7..4433732 100644 --- a/proto/platform/registry/v1/registry.platform.pb.go +++ b/proto/platform/registry/v1/registry.platform.pb.go @@ -1150,6 +1150,54 @@ func (x *SbomRequest) GetArch() string { return "" } +type PackageVersionMetadataRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the package. + Package string `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"` +} + +func (x *PackageVersionMetadataRequest) Reset() { + *x = PackageVersionMetadataRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PackageVersionMetadataRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PackageVersionMetadataRequest) ProtoMessage() {} + +func (x *PackageVersionMetadataRequest) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[16] + 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 PackageVersionMetadataRequest.ProtoReflect.Descriptor instead. +func (*PackageVersionMetadataRequest) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{16} +} + +func (x *PackageVersionMetadataRequest) GetPackage() string { + if x != nil { + return x.Package + } + return "" +} + type Archs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1162,7 +1210,7 @@ type Archs struct { func (x *Archs) Reset() { *x = Archs{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[16] + mi := &file_registry_platform_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1175,7 +1223,7 @@ func (x *Archs) String() string { func (*Archs) ProtoMessage() {} func (x *Archs) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[16] + mi := &file_registry_platform_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1188,7 +1236,7 @@ func (x *Archs) ProtoReflect() protoreflect.Message { // Deprecated: Use Archs.ProtoReflect.Descriptor instead. func (*Archs) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{16} + return file_registry_platform_proto_rawDescGZIP(), []int{17} } func (x *Archs) GetArchs() []string { @@ -1210,7 +1258,7 @@ type ArchFilter struct { func (x *ArchFilter) Reset() { *x = ArchFilter{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[17] + mi := &file_registry_platform_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1223,7 +1271,7 @@ func (x *ArchFilter) String() string { func (*ArchFilter) ProtoMessage() {} func (x *ArchFilter) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[17] + mi := &file_registry_platform_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1236,7 +1284,7 @@ func (x *ArchFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use ArchFilter.ProtoReflect.Descriptor instead. func (*ArchFilter) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{17} + return file_registry_platform_proto_rawDescGZIP(), []int{18} } func (x *ArchFilter) GetArch() string { @@ -1260,7 +1308,7 @@ type Size struct { func (x *Size) Reset() { *x = Size{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[18] + mi := &file_registry_platform_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1273,7 +1321,7 @@ func (x *Size) String() string { func (*Size) ProtoMessage() {} func (x *Size) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[18] + mi := &file_registry_platform_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1286,7 +1334,7 @@ func (x *Size) ProtoReflect() protoreflect.Message { // Deprecated: Use Size.ProtoReflect.Descriptor instead. func (*Size) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{18} + return file_registry_platform_proto_rawDescGZIP(), []int{19} } func (x *Size) GetSize() int64 { @@ -1330,7 +1378,7 @@ type ImageConfig struct { func (x *ImageConfig) Reset() { *x = ImageConfig{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[19] + mi := &file_registry_platform_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1343,7 +1391,7 @@ func (x *ImageConfig) String() string { func (*ImageConfig) ProtoMessage() {} func (x *ImageConfig) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[19] + mi := &file_registry_platform_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1356,7 +1404,7 @@ func (x *ImageConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ImageConfig.ProtoReflect.Descriptor instead. func (*ImageConfig) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{19} + return file_registry_platform_proto_rawDescGZIP(), []int{20} } func (x *ImageConfig) GetUser() string { @@ -1435,7 +1483,7 @@ type PackagesDiff struct { func (x *PackagesDiff) Reset() { *x = PackagesDiff{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[20] + mi := &file_registry_platform_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1448,7 +1496,7 @@ func (x *PackagesDiff) String() string { func (*PackagesDiff) ProtoMessage() {} func (x *PackagesDiff) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[20] + mi := &file_registry_platform_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1461,7 +1509,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{20} + return file_registry_platform_proto_rawDescGZIP(), []int{21} } func (x *PackagesDiff) GetAdded() []*PackageReference { @@ -1497,7 +1545,7 @@ type VersionReference struct { func (x *VersionReference) Reset() { *x = VersionReference{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[21] + mi := &file_registry_platform_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1510,7 +1558,7 @@ func (x *VersionReference) String() string { func (*VersionReference) ProtoMessage() {} func (x *VersionReference) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[21] + mi := &file_registry_platform_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1523,7 +1571,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{21} + return file_registry_platform_proto_rawDescGZIP(), []int{22} } func (x *VersionReference) GetVersion() string { @@ -1554,7 +1602,7 @@ type PackageReference struct { func (x *PackageReference) Reset() { *x = PackageReference{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[22] + mi := &file_registry_platform_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1567,7 +1615,7 @@ func (x *PackageReference) String() string { func (*PackageReference) ProtoMessage() {} func (x *PackageReference) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[22] + mi := &file_registry_platform_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1580,7 +1628,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{22} + return file_registry_platform_proto_rawDescGZIP(), []int{23} } func (x *PackageReference) GetName() string { @@ -1617,7 +1665,7 @@ type VulnerabilitiesDiff struct { func (x *VulnerabilitiesDiff) Reset() { *x = VulnerabilitiesDiff{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[23] + mi := &file_registry_platform_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1630,7 +1678,7 @@ func (x *VulnerabilitiesDiff) String() string { func (*VulnerabilitiesDiff) ProtoMessage() {} func (x *VulnerabilitiesDiff) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[23] + mi := &file_registry_platform_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1643,7 +1691,7 @@ func (x *VulnerabilitiesDiff) ProtoReflect() protoreflect.Message { // Deprecated: Use VulnerabilitiesDiff.ProtoReflect.Descriptor instead. func (*VulnerabilitiesDiff) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{23} + return file_registry_platform_proto_rawDescGZIP(), []int{24} } func (x *VulnerabilitiesDiff) GetAdded() []*VulnerabilityReference { @@ -1681,7 +1729,7 @@ type ScannerMetadata struct { func (x *ScannerMetadata) Reset() { *x = ScannerMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[24] + mi := &file_registry_platform_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1694,7 +1742,7 @@ func (x *ScannerMetadata) String() string { func (*ScannerMetadata) ProtoMessage() {} func (x *ScannerMetadata) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[24] + mi := &file_registry_platform_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1707,7 +1755,7 @@ func (x *ScannerMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use ScannerMetadata.ProtoReflect.Descriptor instead. func (*ScannerMetadata) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{24} + return file_registry_platform_proto_rawDescGZIP(), []int{25} } func (x *ScannerMetadata) GetDigest() string { @@ -1752,7 +1800,7 @@ type VulnerabilityReference struct { func (x *VulnerabilityReference) Reset() { *x = VulnerabilityReference{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[25] + mi := &file_registry_platform_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1765,7 +1813,7 @@ func (x *VulnerabilityReference) String() string { func (*VulnerabilityReference) ProtoMessage() {} func (x *VulnerabilityReference) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[25] + mi := &file_registry_platform_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1778,7 +1826,7 @@ func (x *VulnerabilityReference) ProtoReflect() protoreflect.Message { // Deprecated: Use VulnerabilityReference.ProtoReflect.Descriptor instead. func (*VulnerabilityReference) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{25} + return file_registry_platform_proto_rawDescGZIP(), []int{26} } func (x *VulnerabilityReference) GetId() string { @@ -1817,7 +1865,7 @@ type DiffImageRequest struct { func (x *DiffImageRequest) Reset() { *x = DiffImageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[26] + mi := &file_registry_platform_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1830,7 +1878,7 @@ func (x *DiffImageRequest) String() string { func (*DiffImageRequest) ProtoMessage() {} func (x *DiffImageRequest) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[26] + mi := &file_registry_platform_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1843,7 +1891,7 @@ func (x *DiffImageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DiffImageRequest.ProtoReflect.Descriptor instead. func (*DiffImageRequest) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{26} + return file_registry_platform_proto_rawDescGZIP(), []int{27} } func (x *DiffImageRequest) GetRepoId() string { @@ -1881,7 +1929,7 @@ type ArchRequest struct { func (x *ArchRequest) Reset() { *x = ArchRequest{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[27] + mi := &file_registry_platform_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1894,7 +1942,7 @@ func (x *ArchRequest) String() string { func (*ArchRequest) ProtoMessage() {} func (x *ArchRequest) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[27] + mi := &file_registry_platform_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1907,7 +1955,7 @@ func (x *ArchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ArchRequest.ProtoReflect.Descriptor instead. func (*ArchRequest) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{27} + return file_registry_platform_proto_rawDescGZIP(), []int{28} } func (x *ArchRequest) GetRepoId() string { @@ -1940,7 +1988,7 @@ type SizeRequest struct { func (x *SizeRequest) Reset() { *x = SizeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[28] + mi := &file_registry_platform_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1953,7 +2001,7 @@ func (x *SizeRequest) String() string { func (*SizeRequest) ProtoMessage() {} func (x *SizeRequest) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[28] + mi := &file_registry_platform_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1966,7 +2014,7 @@ func (x *SizeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SizeRequest.ProtoReflect.Descriptor instead. func (*SizeRequest) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{28} + return file_registry_platform_proto_rawDescGZIP(), []int{29} } func (x *SizeRequest) GetRepoId() string { @@ -2006,7 +2054,7 @@ type ImageConfigRequest struct { func (x *ImageConfigRequest) Reset() { *x = ImageConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[29] + mi := &file_registry_platform_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2019,7 +2067,7 @@ func (x *ImageConfigRequest) String() string { func (*ImageConfigRequest) ProtoMessage() {} func (x *ImageConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[29] + mi := &file_registry_platform_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2032,7 +2080,7 @@ func (x *ImageConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ImageConfigRequest.ProtoReflect.Descriptor instead. func (*ImageConfigRequest) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{29} + return file_registry_platform_proto_rawDescGZIP(), []int{30} } func (x *ImageConfigRequest) GetRepoId() string { @@ -2074,7 +2122,7 @@ type RawSbomRequest struct { func (x *RawSbomRequest) Reset() { *x = RawSbomRequest{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[30] + mi := &file_registry_platform_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2087,7 +2135,7 @@ func (x *RawSbomRequest) String() string { func (*RawSbomRequest) ProtoMessage() {} func (x *RawSbomRequest) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[30] + mi := &file_registry_platform_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2100,7 +2148,7 @@ func (x *RawSbomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RawSbomRequest.ProtoReflect.Descriptor instead. func (*RawSbomRequest) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{30} + return file_registry_platform_proto_rawDescGZIP(), []int{31} } func (x *RawSbomRequest) GetRepoId() string { @@ -2145,7 +2193,7 @@ type VulnReportRequest struct { func (x *VulnReportRequest) Reset() { *x = VulnReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[31] + mi := &file_registry_platform_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2158,7 +2206,7 @@ func (x *VulnReportRequest) String() string { func (*VulnReportRequest) ProtoMessage() {} func (x *VulnReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[31] + mi := &file_registry_platform_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2171,7 +2219,7 @@ func (x *VulnReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VulnReportRequest.ProtoReflect.Descriptor instead. func (*VulnReportRequest) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{31} + return file_registry_platform_proto_rawDescGZIP(), []int{32} } func (x *VulnReportRequest) GetRepoId() string { @@ -2202,7 +2250,7 @@ type ManifestMetadataIndexFilter struct { func (x *ManifestMetadataIndexFilter) Reset() { *x = ManifestMetadataIndexFilter{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[32] + mi := &file_registry_platform_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2215,7 +2263,7 @@ func (x *ManifestMetadataIndexFilter) String() string { func (*ManifestMetadataIndexFilter) ProtoMessage() {} func (x *ManifestMetadataIndexFilter) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[32] + mi := &file_registry_platform_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2228,7 +2276,7 @@ func (x *ManifestMetadataIndexFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use ManifestMetadataIndexFilter.ProtoReflect.Descriptor instead. func (*ManifestMetadataIndexFilter) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{32} + return file_registry_platform_proto_rawDescGZIP(), []int{33} } func (x *ManifestMetadataIndexFilter) GetDigest() string { @@ -2260,7 +2308,7 @@ type ManifestMetadataFilterEntry struct { func (x *ManifestMetadataFilterEntry) Reset() { *x = ManifestMetadataFilterEntry{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[33] + mi := &file_registry_platform_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2273,7 +2321,7 @@ func (x *ManifestMetadataFilterEntry) String() string { func (*ManifestMetadataFilterEntry) ProtoMessage() {} func (x *ManifestMetadataFilterEntry) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[33] + mi := &file_registry_platform_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2286,7 +2334,7 @@ func (x *ManifestMetadataFilterEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use ManifestMetadataFilterEntry.ProtoReflect.Descriptor instead. func (*ManifestMetadataFilterEntry) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{33} + return file_registry_platform_proto_rawDescGZIP(), []int{34} } func (m *ManifestMetadataFilterEntry) GetFilter() isManifestMetadataFilterEntry_Filter { @@ -2343,7 +2391,7 @@ type ManifestMetadataFilter struct { func (x *ManifestMetadataFilter) Reset() { *x = ManifestMetadataFilter{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[34] + mi := &file_registry_platform_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2356,7 +2404,7 @@ func (x *ManifestMetadataFilter) String() string { func (*ManifestMetadataFilter) ProtoMessage() {} func (x *ManifestMetadataFilter) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[34] + mi := &file_registry_platform_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2369,7 +2417,7 @@ func (x *ManifestMetadataFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use ManifestMetadataFilter.ProtoReflect.Descriptor instead. func (*ManifestMetadataFilter) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{34} + return file_registry_platform_proto_rawDescGZIP(), []int{35} } func (x *ManifestMetadataFilter) GetRepoId() string { @@ -2406,7 +2454,7 @@ type PkgMetadata struct { func (x *PkgMetadata) Reset() { *x = PkgMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[35] + mi := &file_registry_platform_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2419,7 +2467,7 @@ func (x *PkgMetadata) String() string { func (*PkgMetadata) ProtoMessage() {} func (x *PkgMetadata) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[35] + mi := &file_registry_platform_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2432,7 +2480,7 @@ func (x *PkgMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use PkgMetadata.ProtoReflect.Descriptor instead. func (*PkgMetadata) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{35} + return file_registry_platform_proto_rawDescGZIP(), []int{36} } func (x *PkgMetadata) GetPurl() string { @@ -2484,7 +2532,7 @@ type ManifestMetadata struct { func (x *ManifestMetadata) Reset() { *x = ManifestMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[36] + mi := &file_registry_platform_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2497,7 +2545,7 @@ func (x *ManifestMetadata) String() string { func (*ManifestMetadata) ProtoMessage() {} func (x *ManifestMetadata) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[36] + mi := &file_registry_platform_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2510,7 +2558,7 @@ func (x *ManifestMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use ManifestMetadata.ProtoReflect.Descriptor instead. func (*ManifestMetadata) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{36} + return file_registry_platform_proto_rawDescGZIP(), []int{37} } func (x *ManifestMetadata) GetDigest() string { @@ -2538,7 +2586,7 @@ type ManifestMetadataList struct { func (x *ManifestMetadataList) Reset() { *x = ManifestMetadataList{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[37] + mi := &file_registry_platform_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2551,7 +2599,7 @@ func (x *ManifestMetadataList) String() string { func (*ManifestMetadataList) ProtoMessage() {} func (x *ManifestMetadataList) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[37] + mi := &file_registry_platform_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2564,7 +2612,7 @@ func (x *ManifestMetadataList) ProtoReflect() protoreflect.Message { // Deprecated: Use ManifestMetadataList.ProtoReflect.Descriptor instead. func (*ManifestMetadataList) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{37} + return file_registry_platform_proto_rawDescGZIP(), []int{38} } func (x *ManifestMetadataList) GetItems() []*ManifestMetadata { @@ -2585,7 +2633,7 @@ type RawSbom struct { func (x *RawSbom) Reset() { *x = RawSbom{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[38] + mi := &file_registry_platform_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2598,7 +2646,7 @@ func (x *RawSbom) String() string { func (*RawSbom) ProtoMessage() {} func (x *RawSbom) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[38] + mi := &file_registry_platform_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2611,7 +2659,7 @@ func (x *RawSbom) ProtoReflect() protoreflect.Message { // Deprecated: Use RawSbom.ProtoReflect.Descriptor instead. func (*RawSbom) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{38} + return file_registry_platform_proto_rawDescGZIP(), []int{39} } func (x *RawSbom) GetRawSbom() string { @@ -2621,6 +2669,176 @@ func (x *RawSbom) GetRawSbom() string { return "" } +// This type mimics the "status" section from the original +// YAML files located at https://github.com/chainguard-dev/package-version-metadata +type PackageVersionMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // list of versions which are now eol + EolVersions []*PackageVersion `protobuf:"bytes,1,rep,name=eolVersions,proto3" json:"eolVersions,omitempty"` + // the last time this data was updated + LastUpdatedTimestamp string `protobuf:"bytes,2,opt,name=lastUpdatedTimestamp,proto3" json:"lastUpdatedTimestamp,omitempty"` + // the latest version of the software + LatestVersion string `protobuf:"bytes,3,opt,name=latestVersion,proto3" json:"latestVersion,omitempty"` + // list of versions which are active + Versions []*PackageVersion `protobuf:"bytes,4,rep,name=versions,proto3" json:"versions,omitempty"` +} + +func (x *PackageVersionMetadata) Reset() { + *x = PackageVersionMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PackageVersionMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PackageVersionMetadata) ProtoMessage() {} + +func (x *PackageVersionMetadata) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[40] + 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 PackageVersionMetadata.ProtoReflect.Descriptor instead. +func (*PackageVersionMetadata) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{40} +} + +func (x *PackageVersionMetadata) GetEolVersions() []*PackageVersion { + if x != nil { + return x.EolVersions + } + return nil +} + +func (x *PackageVersionMetadata) GetLastUpdatedTimestamp() string { + if x != nil { + return x.LastUpdatedTimestamp + } + return "" +} + +func (x *PackageVersionMetadata) GetLatestVersion() string { + if x != nil { + return x.LatestVersion + } + return "" +} + +func (x *PackageVersionMetadata) GetVersions() []*PackageVersion { + if x != nil { + return x.Versions + } + return nil +} + +type PackageVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // the date when this version goes eol + EolDate string `protobuf:"bytes,1,opt,name=eolDate,proto3" json:"eolDate,omitempty"` + // whether or not the package exists in an apk repo + Exists bool `protobuf:"varint,2,opt,name=exists,proto3" json:"exists,omitempty"` + // whether or not a FIPS-enabled version of the package exists in an apk repo + Fips bool `protobuf:"varint,3,opt,name=fips,proto3" json:"fips,omitempty"` + // may be set to a date or true if the software is marked as lts + Lts string `protobuf:"bytes,4,opt,name=lts,proto3" json:"lts,omitempty"` + // the date this version was release + ReleaseDate string `protobuf:"bytes,5,opt,name=releaseDate,proto3" json:"releaseDate,omitempty"` + // the version stream identifier + Version string `protobuf:"bytes,6,opt,name=version,proto3" json:"version,omitempty"` +} + +func (x *PackageVersion) Reset() { + *x = PackageVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PackageVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PackageVersion) ProtoMessage() {} + +func (x *PackageVersion) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[41] + 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 PackageVersion.ProtoReflect.Descriptor instead. +func (*PackageVersion) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{41} +} + +func (x *PackageVersion) GetEolDate() string { + if x != nil { + return x.EolDate + } + return "" +} + +func (x *PackageVersion) GetExists() bool { + if x != nil { + return x.Exists + } + return false +} + +func (x *PackageVersion) GetFips() bool { + if x != nil { + return x.Fips + } + return false +} + +func (x *PackageVersion) GetLts() string { + if x != nil { + return x.Lts + } + return "" +} + +func (x *PackageVersion) GetReleaseDate() string { + if x != nil { + return x.ReleaseDate + } + return "" +} + +func (x *PackageVersion) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + // ExposedPorts a set of ports to expose from a container running this image. type ImageConfig_ExposedPort struct { state protoimpl.MessageState @@ -2631,7 +2849,7 @@ type ImageConfig_ExposedPort struct { func (x *ImageConfig_ExposedPort) Reset() { *x = ImageConfig_ExposedPort{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[39] + mi := &file_registry_platform_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2644,7 +2862,7 @@ func (x *ImageConfig_ExposedPort) String() string { func (*ImageConfig_ExposedPort) ProtoMessage() {} func (x *ImageConfig_ExposedPort) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[39] + mi := &file_registry_platform_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2657,7 +2875,7 @@ func (x *ImageConfig_ExposedPort) ProtoReflect() protoreflect.Message { // Deprecated: Use ImageConfig_ExposedPort.ProtoReflect.Descriptor instead. func (*ImageConfig_ExposedPort) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{19, 0} + return file_registry_platform_proto_rawDescGZIP(), []int{20, 0} } type ImageConfig_Volume struct { @@ -2669,7 +2887,7 @@ type ImageConfig_Volume struct { func (x *ImageConfig_Volume) Reset() { *x = ImageConfig_Volume{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[41] + mi := &file_registry_platform_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2682,7 +2900,7 @@ func (x *ImageConfig_Volume) String() string { func (*ImageConfig_Volume) ProtoMessage() {} func (x *ImageConfig_Volume) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[41] + mi := &file_registry_platform_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2695,7 +2913,7 @@ func (x *ImageConfig_Volume) ProtoReflect() protoreflect.Message { // Deprecated: Use ImageConfig_Volume.ProtoReflect.Descriptor instead. func (*ImageConfig_Volume) Descriptor() ([]byte, []int) { - return file_registry_platform_proto_rawDescGZIP(), []int{19, 2} + return file_registry_platform_proto_rawDescGZIP(), []int{20, 2} } type PackagesDiff_ChangedPackageReference struct { @@ -2711,7 +2929,7 @@ type PackagesDiff_ChangedPackageReference struct { func (x *PackagesDiff_ChangedPackageReference) Reset() { *x = PackagesDiff_ChangedPackageReference{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[44] + mi := &file_registry_platform_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2724,7 +2942,7 @@ func (x *PackagesDiff_ChangedPackageReference) String() string { func (*PackagesDiff_ChangedPackageReference) ProtoMessage() {} func (x *PackagesDiff_ChangedPackageReference) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[44] + mi := &file_registry_platform_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2737,7 +2955,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{20, 0} + return file_registry_platform_proto_rawDescGZIP(), []int{21, 0} } func (x *PackagesDiff_ChangedPackageReference) GetName() string { @@ -2919,434 +3137,478 @@ var file_registry_platform_proto_rawDesc = []byte{ 0x28, 0x09, 0x42, 0x06, 0x90, 0xaf, 0xa8, 0xd2, 0x05, 0x01, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, - 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, 0x1d, - 0x0a, 0x05, 0x41, 0x72, 0x63, 0x68, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x72, 0x63, 0x68, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x61, 0x72, 0x63, 0x68, 0x73, 0x22, 0x20, 0x0a, - 0x0a, 0x41, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x61, - 0x72, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, - 0x2e, 0x0a, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, - 0x72, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, - 0xe4, 0x05, 0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x73, 0x65, 0x72, 0x12, 0x60, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 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, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x50, 0x6f, 0x72, - 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, - 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x12, 0x50, 0x0a, 0x07, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 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, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, - 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x12, 0x4d, 0x0a, 0x06, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, 0x39, + 0x0a, 0x1d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x1d, 0x0a, 0x05, 0x41, 0x72, 0x63, + 0x68, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x72, 0x63, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x05, 0x61, 0x72, 0x63, 0x68, 0x73, 0x22, 0x20, 0x0a, 0x0a, 0x41, 0x72, 0x63, 0x68, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, 0x2e, 0x0a, 0x04, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, 0xe4, 0x05, 0x0a, 0x0b, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x60, + 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 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, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x65, + 0x6e, 0x76, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x03, 0x63, 0x6d, 0x64, 0x12, 0x50, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 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, + 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, + 0x67, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, + 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x12, 0x4d, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 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, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x6f, + 0x70, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x1a, 0x0d, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x6f, 0x73, + 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x1a, 0x76, 0x0a, 0x11, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x65, + 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4b, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 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, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x1a, 0x0d, 0x0a, 0x0b, - 0x45, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x1a, 0x76, 0x0a, 0x11, 0x45, - 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x4b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x08, + 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 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, 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, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x70, - 0x6f, 0x73, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x08, 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x1a, 0x6c, 0x0a, - 0x0c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 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, 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, 0x39, 0x0a, 0x0b, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 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, 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, + 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, 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, 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 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, 0xfc, 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, + 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, 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, 0x12, 0x49, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 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, 0x53, 0x63, 0x61, - 0x6e, 0x6e, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x93, 0x02, 0x0a, 0x0f, 0x53, 0x63, 0x61, 0x6e, 0x6e, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, - 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, - 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x07, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, - 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, - 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x07, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, - 0x72, 0x12, 0x62, 0x0a, 0x20, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x5f, 0x64, 0x62, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x1c, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x62, 0x4c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x1f, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x62, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, - 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x62, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 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, 0x22, 0x46, 0x0a, 0x0b, 0x41, 0x72, 0x63, 0x68, 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, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0x5a, 0x0a, 0x0b, 0x53, - 0x69, 0x7a, 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, 0x16, 0x0a, 0x06, 0x64, - 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, 0x61, 0x0a, 0x12, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, + 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, 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, 0xfc, 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, 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 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, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x93, 0x02, 0x0a, 0x0f, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, + 0x07, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x61, 0x6e, + 0x6e, 0x65, 0x72, 0x52, 0x07, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x20, + 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x62, + 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x1c, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x44, 0x62, 0x4c, 0x61, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x45, 0x0a, 0x1f, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x5f, 0x64, 0x62, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x76, 0x75, 0x6c, 0x6e, 0x65, + 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 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, 0x22, 0x46, + 0x0a, 0x0b, 0x41, 0x72, 0x63, 0x68, 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, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, 0x7b, 0x0a, 0x0e, 0x52, 0x61, - 0x77, 0x53, 0x62, 0x6f, 0x6d, 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, 0x16, 0x0a, - 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, - 0x69, 0x67, 0x65, 0x73, 0x74, 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, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, 0x4c, 0x0a, 0x11, 0x56, 0x75, 0x6c, 0x6e, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 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, 0x16, 0x0a, - 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, - 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x1b, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x61, 0x72, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, - 0x22, 0xac, 0x01, 0x0a, 0x1b, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0x5a, 0x0a, 0x0b, 0x53, 0x69, 0x7a, 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, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, + 0x63, 0x68, 0x22, 0x61, 0x0a, 0x12, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 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, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, + 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, 0x7b, 0x0a, 0x0e, 0x52, 0x61, 0x77, 0x53, 0x62, 0x6f, 0x6d, + 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, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, + 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, 0x12, 0x12, + 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, + 0x63, 0x68, 0x22, 0x4c, 0x0a, 0x11, 0x56, 0x75, 0x6c, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 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, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x22, 0x49, 0x0a, 0x1b, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, 0xac, 0x01, 0x0a, 0x1b, + 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0c, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x12, 0x5e, 0x0a, 0x0c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 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, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x42, 0x08, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x8a, 0x01, 0x0a, 0x16, 0x4d, + 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x4f, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 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, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x23, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x44, - 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x5e, 0x0a, 0x0c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 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, 0x4d, 0x61, 0x6e, 0x69, 0x66, - 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, - 0x8a, 0x01, 0x0a, 0x16, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x4f, 0x0a, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 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, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, - 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xd8, 0x01, 0x0a, - 0x0b, 0x50, 0x6b, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x75, 0x72, 0x6c, - 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x75, 0x72, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x50, 0x75, 0x72, - 0x6c, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6f, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x07, 0x65, 0x6f, 0x6c, 0x44, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0f, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, - 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x22, 0x78, 0x0a, 0x10, 0x4d, 0x61, 0x6e, 0x69, 0x66, - 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x64, - 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, - 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0c, 0x70, 0x6b, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 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, 0x6b, 0x67, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x6b, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x5c, 0x0a, 0x14, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 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, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, - 0x23, 0x0a, 0x07, 0x52, 0x61, 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x61, - 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x77, - 0x53, 0x62, 0x6f, 0x6d, 0x2a, 0x78, 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, 0x0c, 0x0a, 0x04, 0x46, 0x52, 0x45, 0x45, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, - 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x02, 0x1a, 0x02, 0x08, 0x01, - 0x12, 0x0f, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, 0x10, 0x03, 0x1a, 0x02, 0x08, - 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x41, 0x53, 0x45, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, - 0x46, 0x49, 0x50, 0x53, 0x10, 0x06, 0x12, 0x06, 0x0a, 0x02, 0x41, 0x49, 0x10, 0x07, 0x32, 0xca, - 0x17, 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, + 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xd8, 0x01, 0x0a, 0x0b, 0x50, 0x6b, 0x67, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x75, 0x72, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x75, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x50, 0x75, 0x72, 0x6c, 0x12, 0x35, 0x0a, 0x08, + 0x65, 0x6f, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6f, 0x6c, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, + 0x73, 0x65, 0x22, 0x78, 0x0a, 0x10, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x4c, + 0x0a, 0x0c, 0x70, 0x6b, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 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, 0x6b, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x0b, 0x70, 0x6b, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5c, 0x0a, 0x14, + 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 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, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x23, 0x0a, 0x07, 0x52, 0x61, + 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x53, 0x62, 0x6f, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x22, + 0x8c, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x0b, 0x65, 0x6f, + 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 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, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, + 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x6c, 0x61, + 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x24, + 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa4, + 0x01, 0x0a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6f, 0x6c, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x65, 0x6f, 0x6c, 0x44, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x04, 0x66, 0x69, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, 0x78, 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, 0x0c, 0x0a, 0x04, 0x46, 0x52, 0x45, 0x45, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, + 0x10, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x02, 0x1a, 0x02, 0x08, + 0x01, 0x12, 0x0f, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, 0x10, 0x03, 0x1a, 0x02, + 0x08, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x41, 0x53, 0x45, 0x10, 0x05, 0x12, 0x08, 0x0a, + 0x04, 0x46, 0x49, 0x50, 0x53, 0x10, 0x06, 0x12, 0x06, 0x0a, 0x02, 0x41, 0x49, 0x10, 0x07, 0x32, + 0x95, 0x19, 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, 0x52, 0x65, 0x70, 0x6f, 0x22, - 0x80, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x04, 0x72, 0x65, 0x70, 0x6f, 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, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xc3, 0x0c, 0xc2, 0xf0, 0x8e, + 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, 0x3a, 0x04, 0x72, 0x65, 0x70, 0x6f, 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, 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, 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, 0x3a, 0x01, 0x2a, 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, 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, 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, + 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, 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, 0x52, 0x65, 0x70, 0x6f, 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, + 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, 0x3a, 0x03, 0x74, 0x61, 0x67, 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, 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, 0x52, 0x65, 0x70, 0x6f, 0x22, 0x76, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1f, 0x3a, 0x01, 0x2a, 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, - 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, + 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, 0x3a, 0x01, 0x2a, 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, 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, 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, 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, + 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, - 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, + 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, + 0xa8, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x53, 0x62, 0x6f, 0x6d, 0x12, 0x29, 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, 0x53, 0x62, 0x6f, 0x6d, 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, 0x3a, 0x03, 0x74, 0x61, 0x67, 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, 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, 0x3a, 0x01, 0x2a, 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, - 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, 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, 0xa8, - 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x53, 0x62, 0x6f, 0x6d, 0x12, 0x29, 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, 0x53, 0x62, 0x6f, 0x6d, 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, 0x74, 0x65, 0x6e, 0x61, - 0x6e, 0x74, 0x2e, 0x53, 0x62, 0x6f, 0x6d, 0x32, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, - 0x12, 0x37, 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, 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, - 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x73, 0x62, 0x6f, 0x6d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x0a, 0x12, - 0x08, 0x0a, 0x06, 0xc5, 0x0c, 0x8a, 0x05, 0xcf, 0x0c, 0x12, 0xc3, 0x01, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 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, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, - 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, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x40, 0x12, 0x3e, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, + 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x62, 0x6f, 0x6d, 0x32, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x39, 0x12, 0x37, 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, 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, - 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, 0xc5, 0x0c, 0xcf, 0x0c, 0x12, - 0xb2, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x72, 0x63, 0x68, 0x73, 0x12, 0x29, 0x2e, 0x63, + 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x73, 0x62, 0x6f, 0x6d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x0a, + 0x12, 0x08, 0x0a, 0x06, 0xc5, 0x0c, 0x8a, 0x05, 0xcf, 0x0c, 0x12, 0xc3, 0x01, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 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, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 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, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x40, 0x12, 0x3e, 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, 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x67, + 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, 0xc5, 0x0c, 0xcf, 0x0c, + 0x12, 0xb2, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x72, 0x63, 0x68, 0x73, 0x12, 0x29, 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, 0x41, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 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, 0x41, 0x72, 0x63, 0x68, 0x73, 0x22, 0x56, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x12, 0x40, 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, 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x7b, + 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, + 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, + 0x04, 0xc5, 0x0c, 0xcf, 0x0c, 0x12, 0xa7, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x29, 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, 0x53, 0x69, 0x7a, 0x65, 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, 0x41, 0x72, 0x63, 0x68, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 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, 0x41, 0x72, 0x63, 0x68, 0x73, 0x22, 0x56, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x42, 0x12, 0x40, 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, 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x64, - 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, - 0xc5, 0x0c, 0xcf, 0x0c, 0x12, 0xa7, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x29, 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, - 0x53, 0x69, 0x7a, 0x65, 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, 0x53, 0x69, 0x7a, 0x65, 0x22, - 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x69, 0x7a, 0x65, + 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 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, 0x67, 0x65, 0x73, 0x74, + 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x73, 0x69, 0x7a, + 0x65, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, 0xc5, 0x0c, 0xcf, 0x0c, 0x12, + 0xb2, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x12, 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, 0x52, 0x61, + 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x52, 0x61, 0x77, 0x53, + 0x62, 0x6f, 0x6d, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 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, 0x67, + 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x72, + 0x61, 0x77, 0x73, 0x62, 0x6f, 0x6d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, + 0xc5, 0x0c, 0x8a, 0x05, 0x12, 0xbd, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x75, 0x6c, 0x6e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 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, 0x56, 0x75, 0x6c, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, + 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x74, 0x65, + 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, + 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 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, 0x67, 0x65, 0x73, 0x74, 0x73, - 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x73, 0x69, 0x7a, 0x65, - 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, 0xc5, 0x0c, 0xcf, 0x0c, 0x12, 0xb2, - 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x12, 0x2c, 0x2e, + 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x76, 0x75, 0x6c, 0x6e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, + 0xc5, 0x0c, 0x94, 0x05, 0x12, 0xc5, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 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, 0x52, 0x61, 0x77, - 0x53, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x52, 0x61, 0x77, 0x53, 0x62, - 0x6f, 0x6d, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 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, 0x67, 0x65, - 0x73, 0x74, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x72, 0x61, - 0x77, 0x73, 0x62, 0x6f, 0x6d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, 0xc5, - 0x0c, 0x8a, 0x05, 0x12, 0xbd, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x75, 0x6c, 0x6e, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 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, 0x56, 0x75, 0x6c, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x74, 0x65, 0x6e, - 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x53, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 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, 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, - 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x76, 0x75, 0x6c, 0x6e, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, 0xc5, - 0x0c, 0x94, 0x05, 0x12, 0xc5, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x6e, 0x69, - 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 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, 0x4d, 0x61, 0x6e, 0x69, - 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x1a, 0x32, 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, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, - 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, - 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x6d, 0x65, 0x74, 0x64, 0x61, 0x74, 0x61, 0x8a, - 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcf, 0x0c, 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, + 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x61, 0x6e, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x1a, 0x32, 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, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, + 0x2f, 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, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x6d, 0x65, 0x74, 0x64, 0x61, 0x74, 0x61, + 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcf, 0x0c, 0x12, 0xc8, 0x01, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 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, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x38, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, + 0x06, 0x0a, 0x02, 0xf6, 0x0c, 0x10, 0x01, 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 ( @@ -3362,7 +3624,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, 45) +var file_registry_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 48) var file_registry_platform_proto_goTypes = []any{ (CatalogTier)(0), // 0: chainguard.platform.registry.CatalogTier (*Repo)(nil), // 1: chainguard.platform.registry.Repo @@ -3381,118 +3643,125 @@ var file_registry_platform_proto_goTypes = []any{ (*TagHistory)(nil), // 14: chainguard.platform.registry.TagHistory (*DiffImageResponse)(nil), // 15: chainguard.platform.registry.DiffImageResponse (*SbomRequest)(nil), // 16: chainguard.platform.registry.SbomRequest - (*Archs)(nil), // 17: chainguard.platform.registry.Archs - (*ArchFilter)(nil), // 18: chainguard.platform.registry.ArchFilter - (*Size)(nil), // 19: chainguard.platform.registry.Size - (*ImageConfig)(nil), // 20: chainguard.platform.registry.ImageConfig - (*PackagesDiff)(nil), // 21: chainguard.platform.registry.PackagesDiff - (*VersionReference)(nil), // 22: chainguard.platform.registry.VersionReference - (*PackageReference)(nil), // 23: chainguard.platform.registry.PackageReference - (*VulnerabilitiesDiff)(nil), // 24: chainguard.platform.registry.VulnerabilitiesDiff - (*ScannerMetadata)(nil), // 25: chainguard.platform.registry.ScannerMetadata - (*VulnerabilityReference)(nil), // 26: chainguard.platform.registry.VulnerabilityReference - (*DiffImageRequest)(nil), // 27: chainguard.platform.registry.DiffImageRequest - (*ArchRequest)(nil), // 28: chainguard.platform.registry.ArchRequest - (*SizeRequest)(nil), // 29: chainguard.platform.registry.SizeRequest - (*ImageConfigRequest)(nil), // 30: chainguard.platform.registry.ImageConfigRequest - (*RawSbomRequest)(nil), // 31: chainguard.platform.registry.RawSbomRequest - (*VulnReportRequest)(nil), // 32: chainguard.platform.registry.VulnReportRequest - (*ManifestMetadataIndexFilter)(nil), // 33: chainguard.platform.registry.ManifestMetadataIndexFilter - (*ManifestMetadataFilterEntry)(nil), // 34: chainguard.platform.registry.ManifestMetadataFilterEntry - (*ManifestMetadataFilter)(nil), // 35: chainguard.platform.registry.ManifestMetadataFilter - (*PkgMetadata)(nil), // 36: chainguard.platform.registry.PkgMetadata - (*ManifestMetadata)(nil), // 37: chainguard.platform.registry.ManifestMetadata - (*ManifestMetadataList)(nil), // 38: chainguard.platform.registry.ManifestMetadataList - (*RawSbom)(nil), // 39: chainguard.platform.registry.RawSbom - (*ImageConfig_ExposedPort)(nil), // 40: chainguard.platform.registry.ImageConfig.ExposedPort - nil, // 41: chainguard.platform.registry.ImageConfig.ExposedPortsEntry - (*ImageConfig_Volume)(nil), // 42: chainguard.platform.registry.ImageConfig.Volume - nil, // 43: chainguard.platform.registry.ImageConfig.VolumesEntry - nil, // 44: chainguard.platform.registry.ImageConfig.LabelsEntry - (*PackagesDiff_ChangedPackageReference)(nil), // 45: chainguard.platform.registry.PackagesDiff.ChangedPackageReference - (*timestamppb.Timestamp)(nil), // 46: google.protobuf.Timestamp - (*v1.UIDPFilter)(nil), // 47: chainguard.platform.common.UIDPFilter - (*v11.Scanner)(nil), // 48: chainguard.platform.tenant.Scanner - (*emptypb.Empty)(nil), // 49: google.protobuf.Empty - (*v11.Sbom2)(nil), // 50: chainguard.platform.tenant.Sbom2 - (*v11.VulnReport)(nil), // 51: chainguard.platform.tenant.VulnReport + (*PackageVersionMetadataRequest)(nil), // 17: chainguard.platform.registry.PackageVersionMetadataRequest + (*Archs)(nil), // 18: chainguard.platform.registry.Archs + (*ArchFilter)(nil), // 19: chainguard.platform.registry.ArchFilter + (*Size)(nil), // 20: chainguard.platform.registry.Size + (*ImageConfig)(nil), // 21: chainguard.platform.registry.ImageConfig + (*PackagesDiff)(nil), // 22: chainguard.platform.registry.PackagesDiff + (*VersionReference)(nil), // 23: chainguard.platform.registry.VersionReference + (*PackageReference)(nil), // 24: chainguard.platform.registry.PackageReference + (*VulnerabilitiesDiff)(nil), // 25: chainguard.platform.registry.VulnerabilitiesDiff + (*ScannerMetadata)(nil), // 26: chainguard.platform.registry.ScannerMetadata + (*VulnerabilityReference)(nil), // 27: chainguard.platform.registry.VulnerabilityReference + (*DiffImageRequest)(nil), // 28: chainguard.platform.registry.DiffImageRequest + (*ArchRequest)(nil), // 29: chainguard.platform.registry.ArchRequest + (*SizeRequest)(nil), // 30: chainguard.platform.registry.SizeRequest + (*ImageConfigRequest)(nil), // 31: chainguard.platform.registry.ImageConfigRequest + (*RawSbomRequest)(nil), // 32: chainguard.platform.registry.RawSbomRequest + (*VulnReportRequest)(nil), // 33: chainguard.platform.registry.VulnReportRequest + (*ManifestMetadataIndexFilter)(nil), // 34: chainguard.platform.registry.ManifestMetadataIndexFilter + (*ManifestMetadataFilterEntry)(nil), // 35: chainguard.platform.registry.ManifestMetadataFilterEntry + (*ManifestMetadataFilter)(nil), // 36: chainguard.platform.registry.ManifestMetadataFilter + (*PkgMetadata)(nil), // 37: chainguard.platform.registry.PkgMetadata + (*ManifestMetadata)(nil), // 38: chainguard.platform.registry.ManifestMetadata + (*ManifestMetadataList)(nil), // 39: chainguard.platform.registry.ManifestMetadataList + (*RawSbom)(nil), // 40: chainguard.platform.registry.RawSbom + (*PackageVersionMetadata)(nil), // 41: chainguard.platform.registry.PackageVersionMetadata + (*PackageVersion)(nil), // 42: chainguard.platform.registry.PackageVersion + (*ImageConfig_ExposedPort)(nil), // 43: chainguard.platform.registry.ImageConfig.ExposedPort + nil, // 44: chainguard.platform.registry.ImageConfig.ExposedPortsEntry + (*ImageConfig_Volume)(nil), // 45: chainguard.platform.registry.ImageConfig.Volume + nil, // 46: chainguard.platform.registry.ImageConfig.VolumesEntry + nil, // 47: chainguard.platform.registry.ImageConfig.LabelsEntry + (*PackagesDiff_ChangedPackageReference)(nil), // 48: chainguard.platform.registry.PackagesDiff.ChangedPackageReference + (*timestamppb.Timestamp)(nil), // 49: google.protobuf.Timestamp + (*v1.UIDPFilter)(nil), // 50: chainguard.platform.common.UIDPFilter + (*v11.Scanner)(nil), // 51: chainguard.platform.tenant.Scanner + (*emptypb.Empty)(nil), // 52: google.protobuf.Empty + (*v11.Sbom2)(nil), // 53: chainguard.platform.tenant.Sbom2 + (*v11.VulnReport)(nil), // 54: chainguard.platform.tenant.VulnReport } var file_registry_platform_proto_depIdxs = []int32{ 0, // 0: chainguard.platform.registry.Repo.catalog_tier:type_name -> chainguard.platform.registry.CatalogTier 2, // 1: chainguard.platform.registry.Repo.sync_config:type_name -> chainguard.platform.registry.SyncConfig - 46, // 2: chainguard.platform.registry.SyncConfig.expiration:type_name -> google.protobuf.Timestamp + 49, // 2: chainguard.platform.registry.SyncConfig.expiration:type_name -> google.protobuf.Timestamp 1, // 3: chainguard.platform.registry.CreateRepoRequest.repo:type_name -> chainguard.platform.registry.Repo 1, // 4: chainguard.platform.registry.RepoList.items:type_name -> chainguard.platform.registry.Repo - 47, // 5: chainguard.platform.registry.RepoFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter + 50, // 5: chainguard.platform.registry.RepoFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter 9, // 6: chainguard.platform.registry.CreateTagRequest.tag:type_name -> chainguard.platform.registry.Tag - 46, // 7: chainguard.platform.registry.Tag.last_updated:type_name -> google.protobuf.Timestamp - 47, // 8: chainguard.platform.registry.TagFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter - 46, // 9: chainguard.platform.registry.TagFilter.updated_since:type_name -> google.protobuf.Timestamp + 49, // 7: chainguard.platform.registry.Tag.last_updated:type_name -> google.protobuf.Timestamp + 50, // 8: chainguard.platform.registry.TagFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter + 49, // 9: chainguard.platform.registry.TagFilter.updated_since:type_name -> google.protobuf.Timestamp 9, // 10: chainguard.platform.registry.TagList.items:type_name -> chainguard.platform.registry.Tag - 46, // 11: chainguard.platform.registry.TagHistoryFilter.start:type_name -> google.protobuf.Timestamp - 46, // 12: chainguard.platform.registry.TagHistoryFilter.end:type_name -> google.protobuf.Timestamp + 49, // 11: chainguard.platform.registry.TagHistoryFilter.start:type_name -> google.protobuf.Timestamp + 49, // 12: chainguard.platform.registry.TagHistoryFilter.end:type_name -> google.protobuf.Timestamp 14, // 13: chainguard.platform.registry.TagHistoryList.items:type_name -> chainguard.platform.registry.TagHistory - 46, // 14: chainguard.platform.registry.TagHistory.update_timestamp:type_name -> google.protobuf.Timestamp - 21, // 15: chainguard.platform.registry.DiffImageResponse.packages:type_name -> chainguard.platform.registry.PackagesDiff - 24, // 16: chainguard.platform.registry.DiffImageResponse.vulnerabilities:type_name -> chainguard.platform.registry.VulnerabilitiesDiff - 41, // 17: chainguard.platform.registry.ImageConfig.exposed_ports:type_name -> chainguard.platform.registry.ImageConfig.ExposedPortsEntry - 43, // 18: chainguard.platform.registry.ImageConfig.volumes:type_name -> chainguard.platform.registry.ImageConfig.VolumesEntry - 44, // 19: chainguard.platform.registry.ImageConfig.labels:type_name -> chainguard.platform.registry.ImageConfig.LabelsEntry - 23, // 20: chainguard.platform.registry.PackagesDiff.added:type_name -> chainguard.platform.registry.PackageReference - 23, // 21: chainguard.platform.registry.PackagesDiff.removed:type_name -> chainguard.platform.registry.PackageReference - 45, // 22: chainguard.platform.registry.PackagesDiff.changed:type_name -> chainguard.platform.registry.PackagesDiff.ChangedPackageReference - 26, // 23: chainguard.platform.registry.VulnerabilitiesDiff.added:type_name -> chainguard.platform.registry.VulnerabilityReference - 26, // 24: chainguard.platform.registry.VulnerabilitiesDiff.removed:type_name -> chainguard.platform.registry.VulnerabilityReference - 25, // 25: chainguard.platform.registry.VulnerabilitiesDiff.metadata:type_name -> chainguard.platform.registry.ScannerMetadata - 48, // 26: chainguard.platform.registry.ScannerMetadata.scanner:type_name -> chainguard.platform.tenant.Scanner - 46, // 27: chainguard.platform.registry.ScannerMetadata.vulnerability_db_last_build_time:type_name -> google.protobuf.Timestamp - 33, // 28: chainguard.platform.registry.ManifestMetadataFilterEntry.index_filter:type_name -> chainguard.platform.registry.ManifestMetadataIndexFilter - 34, // 29: chainguard.platform.registry.ManifestMetadataFilter.items:type_name -> chainguard.platform.registry.ManifestMetadataFilterEntry - 46, // 30: chainguard.platform.registry.PkgMetadata.eol_date:type_name -> google.protobuf.Timestamp - 46, // 31: chainguard.platform.registry.PkgMetadata.build_timestamp:type_name -> google.protobuf.Timestamp - 36, // 32: chainguard.platform.registry.ManifestMetadata.pkg_metadata:type_name -> chainguard.platform.registry.PkgMetadata - 37, // 33: chainguard.platform.registry.ManifestMetadataList.items:type_name -> chainguard.platform.registry.ManifestMetadata - 40, // 34: chainguard.platform.registry.ImageConfig.ExposedPortsEntry.value:type_name -> chainguard.platform.registry.ImageConfig.ExposedPort - 42, // 35: chainguard.platform.registry.ImageConfig.VolumesEntry.value:type_name -> chainguard.platform.registry.ImageConfig.Volume - 22, // 36: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.current:type_name -> chainguard.platform.registry.VersionReference - 22, // 37: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.previous:type_name -> chainguard.platform.registry.VersionReference - 3, // 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 - 6, // 40: chainguard.platform.registry.Registry.ListRepos:input_type -> chainguard.platform.registry.RepoFilter - 4, // 41: chainguard.platform.registry.Registry.DeleteRepo:input_type -> chainguard.platform.registry.DeleteRepoRequest - 7, // 42: chainguard.platform.registry.Registry.CreateTag:input_type -> chainguard.platform.registry.CreateTagRequest - 9, // 43: chainguard.platform.registry.Registry.UpdateTag:input_type -> chainguard.platform.registry.Tag - 8, // 44: chainguard.platform.registry.Registry.DeleteTag:input_type -> chainguard.platform.registry.DeleteTagRequest - 10, // 45: chainguard.platform.registry.Registry.ListTags:input_type -> chainguard.platform.registry.TagFilter - 12, // 46: chainguard.platform.registry.Registry.ListTagHistory:input_type -> chainguard.platform.registry.TagHistoryFilter - 16, // 47: chainguard.platform.registry.Registry.GetSbom:input_type -> chainguard.platform.registry.SbomRequest - 30, // 48: chainguard.platform.registry.Registry.GetImageConfig:input_type -> chainguard.platform.registry.ImageConfigRequest - 28, // 49: chainguard.platform.registry.Registry.GetArchs:input_type -> chainguard.platform.registry.ArchRequest - 29, // 50: chainguard.platform.registry.Registry.GetSize:input_type -> chainguard.platform.registry.SizeRequest - 31, // 51: chainguard.platform.registry.Registry.GetRawSbom:input_type -> chainguard.platform.registry.RawSbomRequest - 32, // 52: chainguard.platform.registry.Registry.GetVulnReport:input_type -> chainguard.platform.registry.VulnReportRequest - 35, // 53: chainguard.platform.registry.Registry.ListManifestMetadata:input_type -> chainguard.platform.registry.ManifestMetadataFilter - 1, // 54: chainguard.platform.registry.Registry.CreateRepo:output_type -> chainguard.platform.registry.Repo - 1, // 55: chainguard.platform.registry.Registry.UpdateRepo:output_type -> chainguard.platform.registry.Repo - 5, // 56: chainguard.platform.registry.Registry.ListRepos:output_type -> chainguard.platform.registry.RepoList - 49, // 57: chainguard.platform.registry.Registry.DeleteRepo:output_type -> google.protobuf.Empty - 9, // 58: chainguard.platform.registry.Registry.CreateTag:output_type -> chainguard.platform.registry.Tag - 9, // 59: chainguard.platform.registry.Registry.UpdateTag:output_type -> chainguard.platform.registry.Tag - 49, // 60: chainguard.platform.registry.Registry.DeleteTag:output_type -> google.protobuf.Empty - 11, // 61: chainguard.platform.registry.Registry.ListTags:output_type -> chainguard.platform.registry.TagList - 13, // 62: chainguard.platform.registry.Registry.ListTagHistory:output_type -> chainguard.platform.registry.TagHistoryList - 50, // 63: chainguard.platform.registry.Registry.GetSbom:output_type -> chainguard.platform.tenant.Sbom2 - 20, // 64: chainguard.platform.registry.Registry.GetImageConfig:output_type -> chainguard.platform.registry.ImageConfig - 17, // 65: chainguard.platform.registry.Registry.GetArchs:output_type -> chainguard.platform.registry.Archs - 19, // 66: chainguard.platform.registry.Registry.GetSize:output_type -> chainguard.platform.registry.Size - 39, // 67: chainguard.platform.registry.Registry.GetRawSbom:output_type -> chainguard.platform.registry.RawSbom - 51, // 68: chainguard.platform.registry.Registry.GetVulnReport:output_type -> chainguard.platform.tenant.VulnReport - 38, // 69: chainguard.platform.registry.Registry.ListManifestMetadata:output_type -> chainguard.platform.registry.ManifestMetadataList - 54, // [54:70] is the sub-list for method output_type - 38, // [38:54] 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 + 49, // 14: chainguard.platform.registry.TagHistory.update_timestamp:type_name -> google.protobuf.Timestamp + 22, // 15: chainguard.platform.registry.DiffImageResponse.packages:type_name -> chainguard.platform.registry.PackagesDiff + 25, // 16: chainguard.platform.registry.DiffImageResponse.vulnerabilities:type_name -> chainguard.platform.registry.VulnerabilitiesDiff + 44, // 17: chainguard.platform.registry.ImageConfig.exposed_ports:type_name -> chainguard.platform.registry.ImageConfig.ExposedPortsEntry + 46, // 18: chainguard.platform.registry.ImageConfig.volumes:type_name -> chainguard.platform.registry.ImageConfig.VolumesEntry + 47, // 19: chainguard.platform.registry.ImageConfig.labels:type_name -> chainguard.platform.registry.ImageConfig.LabelsEntry + 24, // 20: chainguard.platform.registry.PackagesDiff.added:type_name -> chainguard.platform.registry.PackageReference + 24, // 21: chainguard.platform.registry.PackagesDiff.removed:type_name -> chainguard.platform.registry.PackageReference + 48, // 22: chainguard.platform.registry.PackagesDiff.changed:type_name -> chainguard.platform.registry.PackagesDiff.ChangedPackageReference + 27, // 23: chainguard.platform.registry.VulnerabilitiesDiff.added:type_name -> chainguard.platform.registry.VulnerabilityReference + 27, // 24: chainguard.platform.registry.VulnerabilitiesDiff.removed:type_name -> chainguard.platform.registry.VulnerabilityReference + 26, // 25: chainguard.platform.registry.VulnerabilitiesDiff.metadata:type_name -> chainguard.platform.registry.ScannerMetadata + 51, // 26: chainguard.platform.registry.ScannerMetadata.scanner:type_name -> chainguard.platform.tenant.Scanner + 49, // 27: chainguard.platform.registry.ScannerMetadata.vulnerability_db_last_build_time:type_name -> google.protobuf.Timestamp + 34, // 28: chainguard.platform.registry.ManifestMetadataFilterEntry.index_filter:type_name -> chainguard.platform.registry.ManifestMetadataIndexFilter + 35, // 29: chainguard.platform.registry.ManifestMetadataFilter.items:type_name -> chainguard.platform.registry.ManifestMetadataFilterEntry + 49, // 30: chainguard.platform.registry.PkgMetadata.eol_date:type_name -> google.protobuf.Timestamp + 49, // 31: chainguard.platform.registry.PkgMetadata.build_timestamp:type_name -> google.protobuf.Timestamp + 37, // 32: chainguard.platform.registry.ManifestMetadata.pkg_metadata:type_name -> chainguard.platform.registry.PkgMetadata + 38, // 33: chainguard.platform.registry.ManifestMetadataList.items:type_name -> chainguard.platform.registry.ManifestMetadata + 42, // 34: chainguard.platform.registry.PackageVersionMetadata.eolVersions:type_name -> chainguard.platform.registry.PackageVersion + 42, // 35: chainguard.platform.registry.PackageVersionMetadata.versions:type_name -> chainguard.platform.registry.PackageVersion + 43, // 36: chainguard.platform.registry.ImageConfig.ExposedPortsEntry.value:type_name -> chainguard.platform.registry.ImageConfig.ExposedPort + 45, // 37: chainguard.platform.registry.ImageConfig.VolumesEntry.value:type_name -> chainguard.platform.registry.ImageConfig.Volume + 23, // 38: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.current:type_name -> chainguard.platform.registry.VersionReference + 23, // 39: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.previous:type_name -> chainguard.platform.registry.VersionReference + 3, // 40: chainguard.platform.registry.Registry.CreateRepo:input_type -> chainguard.platform.registry.CreateRepoRequest + 1, // 41: chainguard.platform.registry.Registry.UpdateRepo:input_type -> chainguard.platform.registry.Repo + 6, // 42: chainguard.platform.registry.Registry.ListRepos:input_type -> chainguard.platform.registry.RepoFilter + 4, // 43: chainguard.platform.registry.Registry.DeleteRepo:input_type -> chainguard.platform.registry.DeleteRepoRequest + 7, // 44: chainguard.platform.registry.Registry.CreateTag:input_type -> chainguard.platform.registry.CreateTagRequest + 9, // 45: chainguard.platform.registry.Registry.UpdateTag:input_type -> chainguard.platform.registry.Tag + 8, // 46: chainguard.platform.registry.Registry.DeleteTag:input_type -> chainguard.platform.registry.DeleteTagRequest + 10, // 47: chainguard.platform.registry.Registry.ListTags:input_type -> chainguard.platform.registry.TagFilter + 12, // 48: chainguard.platform.registry.Registry.ListTagHistory:input_type -> chainguard.platform.registry.TagHistoryFilter + 16, // 49: chainguard.platform.registry.Registry.GetSbom:input_type -> chainguard.platform.registry.SbomRequest + 31, // 50: chainguard.platform.registry.Registry.GetImageConfig:input_type -> chainguard.platform.registry.ImageConfigRequest + 29, // 51: chainguard.platform.registry.Registry.GetArchs:input_type -> chainguard.platform.registry.ArchRequest + 30, // 52: chainguard.platform.registry.Registry.GetSize:input_type -> chainguard.platform.registry.SizeRequest + 32, // 53: chainguard.platform.registry.Registry.GetRawSbom:input_type -> chainguard.platform.registry.RawSbomRequest + 33, // 54: chainguard.platform.registry.Registry.GetVulnReport:input_type -> chainguard.platform.registry.VulnReportRequest + 36, // 55: chainguard.platform.registry.Registry.ListManifestMetadata:input_type -> chainguard.platform.registry.ManifestMetadataFilter + 17, // 56: chainguard.platform.registry.Registry.GetPackageVersionMetadata:input_type -> chainguard.platform.registry.PackageVersionMetadataRequest + 1, // 57: chainguard.platform.registry.Registry.CreateRepo:output_type -> chainguard.platform.registry.Repo + 1, // 58: chainguard.platform.registry.Registry.UpdateRepo:output_type -> chainguard.platform.registry.Repo + 5, // 59: chainguard.platform.registry.Registry.ListRepos:output_type -> chainguard.platform.registry.RepoList + 52, // 60: chainguard.platform.registry.Registry.DeleteRepo:output_type -> google.protobuf.Empty + 9, // 61: chainguard.platform.registry.Registry.CreateTag:output_type -> chainguard.platform.registry.Tag + 9, // 62: chainguard.platform.registry.Registry.UpdateTag:output_type -> chainguard.platform.registry.Tag + 52, // 63: chainguard.platform.registry.Registry.DeleteTag:output_type -> google.protobuf.Empty + 11, // 64: chainguard.platform.registry.Registry.ListTags:output_type -> chainguard.platform.registry.TagList + 13, // 65: chainguard.platform.registry.Registry.ListTagHistory:output_type -> chainguard.platform.registry.TagHistoryList + 53, // 66: chainguard.platform.registry.Registry.GetSbom:output_type -> chainguard.platform.tenant.Sbom2 + 21, // 67: chainguard.platform.registry.Registry.GetImageConfig:output_type -> chainguard.platform.registry.ImageConfig + 18, // 68: chainguard.platform.registry.Registry.GetArchs:output_type -> chainguard.platform.registry.Archs + 20, // 69: chainguard.platform.registry.Registry.GetSize:output_type -> chainguard.platform.registry.Size + 40, // 70: chainguard.platform.registry.Registry.GetRawSbom:output_type -> chainguard.platform.registry.RawSbom + 54, // 71: chainguard.platform.registry.Registry.GetVulnReport:output_type -> chainguard.platform.tenant.VulnReport + 39, // 72: chainguard.platform.registry.Registry.ListManifestMetadata:output_type -> chainguard.platform.registry.ManifestMetadataList + 41, // 73: chainguard.platform.registry.Registry.GetPackageVersionMetadata:output_type -> chainguard.platform.registry.PackageVersionMetadata + 57, // [57:74] is the sub-list for method output_type + 40, // [40:57] is the sub-list for method input_type + 40, // [40:40] is the sub-list for extension type_name + 40, // [40:40] is the sub-list for extension extendee + 0, // [0:40] is the sub-list for field type_name } func init() { file_registry_platform_proto_init() } @@ -3694,7 +3963,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*Archs); i { + switch v := v.(*PackageVersionMetadataRequest); i { case 0: return &v.state case 1: @@ -3706,7 +3975,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*ArchFilter); i { + switch v := v.(*Archs); i { case 0: return &v.state case 1: @@ -3718,7 +3987,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*Size); i { + switch v := v.(*ArchFilter); i { case 0: return &v.state case 1: @@ -3730,7 +3999,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*ImageConfig); i { + switch v := v.(*Size); i { case 0: return &v.state case 1: @@ -3742,7 +4011,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*PackagesDiff); i { + switch v := v.(*ImageConfig); i { case 0: return &v.state case 1: @@ -3754,7 +4023,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*VersionReference); i { + switch v := v.(*PackagesDiff); i { case 0: return &v.state case 1: @@ -3766,7 +4035,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*PackageReference); i { + switch v := v.(*VersionReference); i { case 0: return &v.state case 1: @@ -3778,7 +4047,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*VulnerabilitiesDiff); i { + switch v := v.(*PackageReference); i { case 0: return &v.state case 1: @@ -3790,7 +4059,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*ScannerMetadata); i { + switch v := v.(*VulnerabilitiesDiff); i { case 0: return &v.state case 1: @@ -3802,7 +4071,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*VulnerabilityReference); i { + switch v := v.(*ScannerMetadata); i { case 0: return &v.state case 1: @@ -3814,7 +4083,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*DiffImageRequest); i { + switch v := v.(*VulnerabilityReference); i { case 0: return &v.state case 1: @@ -3826,7 +4095,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*ArchRequest); i { + switch v := v.(*DiffImageRequest); i { case 0: return &v.state case 1: @@ -3838,7 +4107,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*SizeRequest); i { + switch v := v.(*ArchRequest); i { case 0: return &v.state case 1: @@ -3850,7 +4119,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*ImageConfigRequest); i { + switch v := v.(*SizeRequest); i { case 0: return &v.state case 1: @@ -3862,7 +4131,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*RawSbomRequest); i { + switch v := v.(*ImageConfigRequest); i { case 0: return &v.state case 1: @@ -3874,7 +4143,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*VulnReportRequest); i { + switch v := v.(*RawSbomRequest); i { case 0: return &v.state case 1: @@ -3886,7 +4155,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*ManifestMetadataIndexFilter); i { + switch v := v.(*VulnReportRequest); i { case 0: return &v.state case 1: @@ -3898,7 +4167,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*ManifestMetadataFilterEntry); i { + switch v := v.(*ManifestMetadataIndexFilter); i { case 0: return &v.state case 1: @@ -3910,7 +4179,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*ManifestMetadataFilter); i { + switch v := v.(*ManifestMetadataFilterEntry); i { case 0: return &v.state case 1: @@ -3922,7 +4191,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*PkgMetadata); i { + switch v := v.(*ManifestMetadataFilter); i { case 0: return &v.state case 1: @@ -3934,7 +4203,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*ManifestMetadata); i { + switch v := v.(*PkgMetadata); i { case 0: return &v.state case 1: @@ -3946,7 +4215,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*ManifestMetadataList); i { + switch v := v.(*ManifestMetadata); i { case 0: return &v.state case 1: @@ -3958,7 +4227,7 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[38].Exporter = func(v any, i int) any { - switch v := v.(*RawSbom); i { + switch v := v.(*ManifestMetadataList); i { case 0: return &v.state case 1: @@ -3970,7 +4239,19 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[39].Exporter = func(v any, i int) any { - switch v := v.(*ImageConfig_ExposedPort); i { + switch v := v.(*RawSbom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[40].Exporter = func(v any, i int) any { + switch v := v.(*PackageVersionMetadata); i { case 0: return &v.state case 1: @@ -3982,7 +4263,19 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[41].Exporter = func(v any, i int) any { - switch v := v.(*ImageConfig_Volume); i { + switch v := v.(*PackageVersion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[42].Exporter = func(v any, i int) any { + switch v := v.(*ImageConfig_ExposedPort); i { case 0: return &v.state case 1: @@ -3994,6 +4287,18 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[44].Exporter = func(v any, i int) any { + switch v := v.(*ImageConfig_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[47].Exporter = func(v any, i int) any { switch v := v.(*PackagesDiff_ChangedPackageReference); i { case 0: return &v.state @@ -4006,7 +4311,7 @@ func file_registry_platform_proto_init() { } } } - file_registry_platform_proto_msgTypes[33].OneofWrappers = []any{ + file_registry_platform_proto_msgTypes[34].OneofWrappers = []any{ (*ManifestMetadataFilterEntry_ImageDigest)(nil), (*ManifestMetadataFilterEntry_IndexFilter)(nil), } @@ -4016,7 +4321,7 @@ func file_registry_platform_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_registry_platform_proto_rawDesc, NumEnums: 1, - NumMessages: 45, + NumMessages: 48, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/platform/registry/v1/registry.platform.pb.gw.go b/proto/platform/registry/v1/registry.platform.pb.gw.go index bb1159e..4013596 100644 --- a/proto/platform/registry/v1/registry.platform.pb.gw.go +++ b/proto/platform/registry/v1/registry.platform.pb.gw.go @@ -1086,6 +1086,58 @@ func local_request_Registry_ListManifestMetadata_0(ctx context.Context, marshale } +func request_Registry_GetPackageVersionMetadata_0(ctx context.Context, marshaler runtime.Marshaler, client RegistryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PackageVersionMetadataRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["package"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "package") + } + + protoReq.Package, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "package", err) + } + + msg, err := client.GetPackageVersionMetadata(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Registry_GetPackageVersionMetadata_0(ctx context.Context, marshaler runtime.Marshaler, server RegistryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PackageVersionMetadataRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["package"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "package") + } + + protoReq.Package, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "package", err) + } + + msg, err := server.GetPackageVersionMetadata(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterRegistryHandlerServer registers the http handlers for service Registry to "mux". // UnaryRPC :call RegistryServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -1493,6 +1545,31 @@ func RegisterRegistryHandlerServer(ctx context.Context, mux *runtime.ServeMux, s }) + mux.Handle("GET", pattern_Registry_GetPackageVersionMetadata_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/chainguard.platform.registry.Registry/GetPackageVersionMetadata", runtime.WithHTTPPathPattern("/registry/v1/versions/{package=**}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Registry_GetPackageVersionMetadata_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_Registry_GetPackageVersionMetadata_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1886,6 +1963,28 @@ func RegisterRegistryHandlerClient(ctx context.Context, mux *runtime.ServeMux, c }) + mux.Handle("GET", pattern_Registry_GetPackageVersionMetadata_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/chainguard.platform.registry.Registry/GetPackageVersionMetadata", runtime.WithHTTPPathPattern("/registry/v1/versions/{package=**}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Registry_GetPackageVersionMetadata_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_Registry_GetPackageVersionMetadata_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1921,6 +2020,8 @@ var ( pattern_Registry_GetVulnReport_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 3, 0, 4, 1, 5, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6}, []string{"registry", "v1", "repos", "repo_id", "digests", "digest", "vulnreport"}, "")) pattern_Registry_ListManifestMetadata_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 3, 0, 4, 1, 5, 3, 2, 4}, []string{"registry", "v1", "repos", "repo_id", "manifestmetdata"}, "")) + + pattern_Registry_GetPackageVersionMetadata_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 3, 0, 4, 1, 5, 3}, []string{"registry", "v1", "versions", "package"}, "")) ) var ( @@ -1955,4 +2056,6 @@ var ( forward_Registry_GetVulnReport_0 = runtime.ForwardResponseMessage forward_Registry_ListManifestMetadata_0 = runtime.ForwardResponseMessage + + forward_Registry_GetPackageVersionMetadata_0 = runtime.ForwardResponseMessage ) diff --git a/proto/platform/registry/v1/registry.platform.proto b/proto/platform/registry/v1/registry.platform.proto index 86e6e7c..de19a3a 100644 --- a/proto/platform/registry/v1/registry.platform.proto +++ b/proto/platform/registry/v1/registry.platform.proto @@ -228,6 +228,18 @@ service Registry { } }; }; + + rpc GetPackageVersionMetadata(PackageVersionMetadataRequest) returns (PackageVersionMetadata) { + option (google.api.http) = { + get: "/registry/v1/versions/{package=**}" + }; + option (chainguard.annotations.iam) = { + enabled: { + capabilities: [CAP_VERSION_LIST] + unscoped: true + } + }; + } } message Repo { @@ -417,6 +429,11 @@ message SbomRequest { string arch = 3; } +message PackageVersionMetadataRequest { + // The name of the package. + string package = 1; +} + message Archs { // Architectures belonging to the requested digest's manifests. repeated string archs = 1; @@ -617,3 +634,31 @@ message ManifestMetadataList { message RawSbom { string rawSbom = 1; } + +// This type mimics the "status" section from the original +// YAML files located at https://github.com/chainguard-dev/package-version-metadata +message PackageVersionMetadata { + // list of versions which are now eol + repeated PackageVersion eolVersions = 1; + // the last time this data was updated + string lastUpdatedTimestamp = 2; + // the latest version of the software + string latestVersion = 3; + // list of versions which are active + repeated PackageVersion versions = 4; +} + +message PackageVersion { + // the date when this version goes eol + string eolDate = 1; + // whether or not the package exists in an apk repo + bool exists = 2; + // whether or not a FIPS-enabled version of the package exists in an apk repo + bool fips = 3; + // may be set to a date or true if the software is marked as lts + string lts = 4; + // the date this version was release + string releaseDate = 5; + // the version stream identifier + string version = 6; +} diff --git a/proto/platform/registry/v1/registry.platform_grpc.pb.go b/proto/platform/registry/v1/registry.platform_grpc.pb.go index 4231f83..1a99801 100644 --- a/proto/platform/registry/v1/registry.platform_grpc.pb.go +++ b/proto/platform/registry/v1/registry.platform_grpc.pb.go @@ -21,22 +21,23 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - Registry_CreateRepo_FullMethodName = "/chainguard.platform.registry.Registry/CreateRepo" - Registry_UpdateRepo_FullMethodName = "/chainguard.platform.registry.Registry/UpdateRepo" - Registry_ListRepos_FullMethodName = "/chainguard.platform.registry.Registry/ListRepos" - Registry_DeleteRepo_FullMethodName = "/chainguard.platform.registry.Registry/DeleteRepo" - Registry_CreateTag_FullMethodName = "/chainguard.platform.registry.Registry/CreateTag" - Registry_UpdateTag_FullMethodName = "/chainguard.platform.registry.Registry/UpdateTag" - Registry_DeleteTag_FullMethodName = "/chainguard.platform.registry.Registry/DeleteTag" - Registry_ListTags_FullMethodName = "/chainguard.platform.registry.Registry/ListTags" - Registry_ListTagHistory_FullMethodName = "/chainguard.platform.registry.Registry/ListTagHistory" - Registry_GetSbom_FullMethodName = "/chainguard.platform.registry.Registry/GetSbom" - Registry_GetImageConfig_FullMethodName = "/chainguard.platform.registry.Registry/GetImageConfig" - Registry_GetArchs_FullMethodName = "/chainguard.platform.registry.Registry/GetArchs" - Registry_GetSize_FullMethodName = "/chainguard.platform.registry.Registry/GetSize" - Registry_GetRawSbom_FullMethodName = "/chainguard.platform.registry.Registry/GetRawSbom" - Registry_GetVulnReport_FullMethodName = "/chainguard.platform.registry.Registry/GetVulnReport" - Registry_ListManifestMetadata_FullMethodName = "/chainguard.platform.registry.Registry/ListManifestMetadata" + Registry_CreateRepo_FullMethodName = "/chainguard.platform.registry.Registry/CreateRepo" + Registry_UpdateRepo_FullMethodName = "/chainguard.platform.registry.Registry/UpdateRepo" + Registry_ListRepos_FullMethodName = "/chainguard.platform.registry.Registry/ListRepos" + Registry_DeleteRepo_FullMethodName = "/chainguard.platform.registry.Registry/DeleteRepo" + Registry_CreateTag_FullMethodName = "/chainguard.platform.registry.Registry/CreateTag" + Registry_UpdateTag_FullMethodName = "/chainguard.platform.registry.Registry/UpdateTag" + Registry_DeleteTag_FullMethodName = "/chainguard.platform.registry.Registry/DeleteTag" + Registry_ListTags_FullMethodName = "/chainguard.platform.registry.Registry/ListTags" + Registry_ListTagHistory_FullMethodName = "/chainguard.platform.registry.Registry/ListTagHistory" + Registry_GetSbom_FullMethodName = "/chainguard.platform.registry.Registry/GetSbom" + Registry_GetImageConfig_FullMethodName = "/chainguard.platform.registry.Registry/GetImageConfig" + Registry_GetArchs_FullMethodName = "/chainguard.platform.registry.Registry/GetArchs" + Registry_GetSize_FullMethodName = "/chainguard.platform.registry.Registry/GetSize" + Registry_GetRawSbom_FullMethodName = "/chainguard.platform.registry.Registry/GetRawSbom" + Registry_GetVulnReport_FullMethodName = "/chainguard.platform.registry.Registry/GetVulnReport" + Registry_ListManifestMetadata_FullMethodName = "/chainguard.platform.registry.Registry/ListManifestMetadata" + Registry_GetPackageVersionMetadata_FullMethodName = "/chainguard.platform.registry.Registry/GetPackageVersionMetadata" ) // RegistryClient is the client API for Registry service. @@ -59,6 +60,7 @@ type RegistryClient interface { GetRawSbom(ctx context.Context, in *RawSbomRequest, opts ...grpc.CallOption) (*RawSbom, error) GetVulnReport(ctx context.Context, in *VulnReportRequest, opts ...grpc.CallOption) (*v1.VulnReport, error) ListManifestMetadata(ctx context.Context, in *ManifestMetadataFilter, opts ...grpc.CallOption) (*ManifestMetadataList, error) + GetPackageVersionMetadata(ctx context.Context, in *PackageVersionMetadataRequest, opts ...grpc.CallOption) (*PackageVersionMetadata, error) } type registryClient struct { @@ -229,6 +231,16 @@ func (c *registryClient) ListManifestMetadata(ctx context.Context, in *ManifestM return out, nil } +func (c *registryClient) GetPackageVersionMetadata(ctx context.Context, in *PackageVersionMetadataRequest, opts ...grpc.CallOption) (*PackageVersionMetadata, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(PackageVersionMetadata) + err := c.cc.Invoke(ctx, Registry_GetPackageVersionMetadata_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // RegistryServer is the server API for Registry service. // All implementations must embed UnimplementedRegistryServer // for forward compatibility. @@ -249,6 +261,7 @@ type RegistryServer interface { GetRawSbom(context.Context, *RawSbomRequest) (*RawSbom, error) GetVulnReport(context.Context, *VulnReportRequest) (*v1.VulnReport, error) ListManifestMetadata(context.Context, *ManifestMetadataFilter) (*ManifestMetadataList, error) + GetPackageVersionMetadata(context.Context, *PackageVersionMetadataRequest) (*PackageVersionMetadata, error) mustEmbedUnimplementedRegistryServer() } @@ -307,6 +320,9 @@ func (UnimplementedRegistryServer) GetVulnReport(context.Context, *VulnReportReq func (UnimplementedRegistryServer) ListManifestMetadata(context.Context, *ManifestMetadataFilter) (*ManifestMetadataList, error) { return nil, status.Errorf(codes.Unimplemented, "method ListManifestMetadata not implemented") } +func (UnimplementedRegistryServer) GetPackageVersionMetadata(context.Context, *PackageVersionMetadataRequest) (*PackageVersionMetadata, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPackageVersionMetadata not implemented") +} func (UnimplementedRegistryServer) mustEmbedUnimplementedRegistryServer() {} func (UnimplementedRegistryServer) testEmbeddedByValue() {} @@ -616,6 +632,24 @@ func _Registry_ListManifestMetadata_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _Registry_GetPackageVersionMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PackageVersionMetadataRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).GetPackageVersionMetadata(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Registry_GetPackageVersionMetadata_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).GetPackageVersionMetadata(ctx, req.(*PackageVersionMetadataRequest)) + } + return interceptor(ctx, in, info, handler) +} + // Registry_ServiceDesc is the grpc.ServiceDesc for Registry service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -687,6 +721,10 @@ var Registry_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListManifestMetadata", Handler: _Registry_ListManifestMetadata_Handler, }, + { + MethodName: "GetPackageVersionMetadata", + Handler: _Registry_GetPackageVersionMetadata_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "registry.platform.proto", diff --git a/proto/platform/registry/v1/test/registry.go b/proto/platform/registry/v1/test/registry.go index 45dd38c..6c836bf 100644 --- a/proto/platform/registry/v1/test/registry.go +++ b/proto/platform/registry/v1/test/registry.go @@ -38,20 +38,21 @@ var _ registry.RegistryClient = (*MockRegistryClient)(nil) type MockRegistryClient struct { registry.RegistryClient - OnCreateRepos []ReposOnCreate - OnDeleteRepos []ReposOnDelete - OnListRepos []ReposOnList - OnCreateTags []TagsOnCreate - OnDeleteTags []TagsOnDelete - OnUpdateTag []TagOnUpdate - OnListTags []TagsOnList - OnUpdateRepo []RepoOnUpdate - OnListTagHistory []TagHistoryOnList - OnGetImageConfig []ImageConfigOnGet - OnGetSbom []SbomOnGet - OnGetVulnReport []VulnReportOnGet - OnListManifestMetadata []ManifestMetadataOnList - OnGetRawSbom []RawSbomOnGet + OnCreateRepos []ReposOnCreate + OnDeleteRepos []ReposOnDelete + OnListRepos []ReposOnList + OnCreateTags []TagsOnCreate + OnDeleteTags []TagsOnDelete + OnUpdateTag []TagOnUpdate + OnListTags []TagsOnList + OnUpdateRepo []RepoOnUpdate + OnListTagHistory []TagHistoryOnList + OnGetImageConfig []ImageConfigOnGet + OnGetSbom []SbomOnGet + OnGetVulnReport []VulnReportOnGet + OnListManifestMetadata []ManifestMetadataOnList + OnGetRawSbom []RawSbomOnGet + OnGetPackageVersionMetadata []PackageVersionMetadataOnGet } type ReposOnCreate struct { @@ -136,6 +137,12 @@ type RawSbomOnGet struct { Error error } +type PackageVersionMetadataOnGet struct { + Given *registry.PackageVersionMetadataRequest + Get *registry.PackageVersionMetadata + Error error +} + func (m MockRegistryClient) CreateRepo(_ context.Context, given *registry.CreateRepoRequest, _ ...grpc.CallOption) (*registry.Repo, error) { for _, o := range m.OnCreateRepos { if cmp.Equal(o.Given, given, protocmp.Transform()) { @@ -261,3 +268,12 @@ func (m MockRegistryClient) GetRawSbom(_ context.Context, given *registry.RawSbo } return nil, fmt.Errorf("mock not found for %v", given) } + +func (m MockRegistryClient) GetPackageVersionMetadata(_ context.Context, given *registry.PackageVersionMetadataRequest, _ ...grpc.CallOption) (*registry.PackageVersionMetadata, error) { //nolint: revive + for _, o := range m.OnGetPackageVersionMetadata { + if cmp.Equal(o.Given, given, protocmp.Transform()) { + return o.Get, o.Error + } + } + return nil, fmt.Errorf("mock not found for %v", given) +}