diff --git a/proto/platform/advisory/v1/advisory.platform.pb.go b/proto/platform/advisory/v1/advisory.platform.pb.go index 846a8f68..bbf57c45 100644 --- a/proto/platform/advisory/v1/advisory.platform.pb.go +++ b/proto/platform/advisory/v1/advisory.platform.pb.go @@ -23,6 +23,146 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type Reference_Type int32 + +const ( + // The "unset" value. + Reference_UNSPECIFIED Reference_Type = 0 + // Published security advisory for the vulnerability. + Reference_ADVISORY Reference_Type = 1 + // Article or blog post describing the vulnerability. + Reference_ARTICLE Reference_Type = 2 + // Scanner or tool that allows detection in prod environments. + Reference_DETECTION Reference_Type = 3 + // Social media discussion about vuln. + Reference_DISCUSSION Reference_Type = 4 + // Report on vuln. + Reference_REPORT Reference_Type = 5 + // Source code browser link to fix. + Reference_FIX Reference_Type = 6 + // Source code browser link to introduction of vuln. + Reference_INTRODUCED Reference_Type = 7 + // Home web page for package. + Reference_PACKAGE Reference_Type = 8 + // Demonstration of validity of vuln claim. + Reference_EVIDENCE Reference_Type = 9 + // Web page of unspecified kind. + Reference_WEB Reference_Type = 10 +) + +// Enum value maps for Reference_Type. +var ( + Reference_Type_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "ADVISORY", + 2: "ARTICLE", + 3: "DETECTION", + 4: "DISCUSSION", + 5: "REPORT", + 6: "FIX", + 7: "INTRODUCED", + 8: "PACKAGE", + 9: "EVIDENCE", + 10: "WEB", + } + Reference_Type_value = map[string]int32{ + "UNSPECIFIED": 0, + "ADVISORY": 1, + "ARTICLE": 2, + "DETECTION": 3, + "DISCUSSION": 4, + "REPORT": 5, + "FIX": 6, + "INTRODUCED": 7, + "PACKAGE": 8, + "EVIDENCE": 9, + "WEB": 10, + } +) + +func (x Reference_Type) Enum() *Reference_Type { + p := new(Reference_Type) + *p = x + return p +} + +func (x Reference_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Reference_Type) Descriptor() protoreflect.EnumDescriptor { + return file_advisory_platform_proto_enumTypes[0].Descriptor() +} + +func (Reference_Type) Type() protoreflect.EnumType { + return &file_advisory_platform_proto_enumTypes[0] +} + +func (x Reference_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Reference_Type.Descriptor instead. +func (Reference_Type) EnumDescriptor() ([]byte, []int) { + return file_advisory_platform_proto_rawDescGZIP(), []int{1, 0} +} + +type Severity_Type int32 + +const ( + // The "unset" value. + Severity_UNSPECIFIED Severity_Type = 0 + // CVSS v2 + Severity_CVSS_V2 Severity_Type = 1 + // CVSS >= 3.0 and < 4.0 + Severity_CVSS_V3 Severity_Type = 2 + // CVSS >= 4.0 and < 5.0 + Severity_CVSS_V4 Severity_Type = 3 +) + +// Enum value maps for Severity_Type. +var ( + Severity_Type_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "CVSS_V2", + 2: "CVSS_V3", + 3: "CVSS_V4", + } + Severity_Type_value = map[string]int32{ + "UNSPECIFIED": 0, + "CVSS_V2": 1, + "CVSS_V3": 2, + "CVSS_V4": 3, + } +) + +func (x Severity_Type) Enum() *Severity_Type { + p := new(Severity_Type) + *p = x + return p +} + +func (x Severity_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Severity_Type) Descriptor() protoreflect.EnumDescriptor { + return file_advisory_platform_proto_enumTypes[1].Descriptor() +} + +func (Severity_Type) Type() protoreflect.EnumType { + return &file_advisory_platform_proto_enumTypes[1] +} + +func (x Severity_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Severity_Type.Descriptor instead. +func (Severity_Type) EnumDescriptor() ([]byte, []int) { + return file_advisory_platform_proto_rawDescGZIP(), []int{2, 0} +} + type FalsePositiveDetermination_Type int32 const ( @@ -79,11 +219,11 @@ func (x FalsePositiveDetermination_Type) String() string { } func (FalsePositiveDetermination_Type) Descriptor() protoreflect.EnumDescriptor { - return file_advisory_platform_proto_enumTypes[0].Descriptor() + return file_advisory_platform_proto_enumTypes[2].Descriptor() } func (FalsePositiveDetermination_Type) Type() protoreflect.EnumType { - return &file_advisory_platform_proto_enumTypes[0] + return &file_advisory_platform_proto_enumTypes[2] } func (x FalsePositiveDetermination_Type) Number() protoreflect.EnumNumber { @@ -180,8 +320,8 @@ type Reference struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Type Reference_Type `protobuf:"varint,1,opt,name=type,proto3,enum=chainguard.platform.advisory.Reference_Type" json:"type,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` } func (x *Reference) Reset() { @@ -216,11 +356,11 @@ func (*Reference) Descriptor() ([]byte, []int) { return file_advisory_platform_proto_rawDescGZIP(), []int{1} } -func (x *Reference) GetType() string { +func (x *Reference) GetType() Reference_Type { if x != nil { return x.Type } - return "" + return Reference_UNSPECIFIED } func (x *Reference) GetUrl() string { @@ -236,7 +376,7 @@ type Severity struct { unknownFields protoimpl.UnknownFields // CVSS version standard. - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Type Severity_Type `protobuf:"varint,1,opt,name=type,proto3,enum=chainguard.platform.advisory.Severity_Type" json:"type,omitempty"` // Vector string representing CVSS score based on type. Score string `protobuf:"bytes,2,opt,name=score,proto3" json:"score,omitempty"` } @@ -273,11 +413,11 @@ func (*Severity) Descriptor() ([]byte, []int) { return file_advisory_platform_proto_rawDescGZIP(), []int{2} } -func (x *Severity) GetType() string { +func (x *Severity) GetType() Severity_Type { if x != nil { return x.Type } - return "" + return Severity_UNSPECIFIED } func (x *Severity) GetScore() string { @@ -1253,187 +1393,207 @@ var file_advisory_platform_proto_rawDesc = []byte{ 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, - 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x22, 0x31, 0x0a, 0x09, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x34, 0x0a, 0x08, - 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x22, 0x71, 0x0a, 0x08, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3b, - 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 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, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x65, 0x73, 0x22, 0x62, 0x0a, 0x08, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, + 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x22, 0xfc, 0x01, 0x0a, 0x09, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, - 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x61, - 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0xeb, 0x05, 0x0a, 0x05, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x01, 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, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x79, 0x0a, - 0x1b, 0x74, 0x72, 0x75, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, - 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, - 0x79, 0x2e, 0x54, 0x72, 0x75, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x19, 0x74, - 0x72, 0x75, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7c, 0x0a, 0x1c, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, - 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x46, 0x61, - 0x6c, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1a, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, - 0x0c, 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, 0x61, 0x64, 0x76, 0x69, - 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, - 0x78, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, - 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x14, - 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x70, 0x6c, 0x61, - 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0e, 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, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x12, - 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, - 0x65, 0x64, 0x12, 0x55, 0x0a, 0x0f, 0x66, 0x69, 0x78, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x70, 0x6c, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x78, 0x4e, 0x6f, - 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x69, 0x78, 0x4e, - 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x14, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x66, 0x69, - 0x78, 0x18, 0x10, 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, 0x61, 0x64, - 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x78, 0x48, 0x00, 0x52, 0x12, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x78, 0x42, - 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2f, 0x0a, 0x19, 0x54, 0x72, 0x75, 0x65, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x8b, 0x04, 0x0a, 0x1a, 0x46, 0x61, 0x6c, - 0x73, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, + 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x9a, 0x01, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x44, 0x56, 0x49, 0x53, 0x4f, 0x52, + 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x52, 0x54, 0x49, 0x43, 0x4c, 0x45, 0x10, 0x02, + 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, + 0x0e, 0x0a, 0x0a, 0x44, 0x49, 0x53, 0x43, 0x55, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, + 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x46, + 0x49, 0x58, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4e, 0x54, 0x52, 0x4f, 0x44, 0x55, 0x43, + 0x45, 0x44, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x10, + 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x09, 0x12, + 0x07, 0x0a, 0x03, 0x57, 0x45, 0x42, 0x10, 0x0a, 0x22, 0xa1, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x76, + 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, + 0x72, 0x79, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3e, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x56, 0x53, 0x53, 0x5f, 0x56, 0x32, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x56, 0x53, 0x53, 0x5f, 0x56, 0x33, 0x10, 0x02, 0x12, + 0x0b, 0x0a, 0x07, 0x43, 0x56, 0x53, 0x53, 0x5f, 0x56, 0x34, 0x10, 0x03, 0x22, 0x71, 0x0a, 0x08, + 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 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, 0x61, + 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x22, + 0x62, 0x0a, 0x08, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x61, + 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x41, + 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, + 0x69, 0x65, 0x73, 0x22, 0xeb, 0x05, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 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, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x79, 0x0a, 0x1b, 0x74, 0x72, 0x75, 0x65, 0x5f, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x75, 0x65, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x19, 0x74, 0x72, 0x75, 0x65, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x7c, 0x0a, 0x1c, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, + 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1a, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x0c, 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, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x12, 0x47, 0x0a, + 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, + 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x14, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0e, + 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, 0x61, 0x64, 0x76, 0x69, 0x73, + 0x6f, 0x72, 0x79, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x50, + 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x12, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x55, 0x0a, 0x0f, + 0x66, 0x69, 0x78, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, - 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x85, - 0x03, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x50, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x34, 0x0a, 0x30, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x55, - 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x43, 0x4f, - 0x52, 0x44, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x45, 0x53, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x46, 0x50, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x55, - 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x49, 0x53, 0x4d, - 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x2d, 0x0a, 0x29, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, - 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x34, 0x0a, 0x30, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x45, 0x44, 0x5f, 0x49, - 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x32, 0x0a, 0x2e, 0x46, + 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x46, 0x69, 0x78, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, + 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x69, 0x78, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x14, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x75, + 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x66, 0x69, 0x78, 0x18, 0x10, 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, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, + 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x46, 0x69, 0x78, 0x48, 0x00, 0x52, 0x12, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x2f, 0x0a, 0x19, 0x54, 0x72, 0x75, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, + 0x74, 0x65, 0x22, 0x8b, 0x04, 0x0a, 0x1a, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x51, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x3d, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x46, + 0x61, 0x6c, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x85, 0x03, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x34, 0x0a, 0x30, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, - 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, - 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x54, 0x48, 0x10, 0x05, 0x12, - 0x3e, 0x0a, 0x3a, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x55, 0x4c, 0x4e, - 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x4e, - 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, - 0x5f, 0x42, 0x59, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x53, 0x41, 0x52, 0x59, 0x10, 0x06, 0x12, - 0x25, 0x0a, 0x21, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x4c, 0x49, - 0x4e, 0x45, 0x5f, 0x4d, 0x49, 0x54, 0x49, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x45, - 0x58, 0x49, 0x53, 0x54, 0x10, 0x07, 0x22, 0x2c, 0x0a, 0x05, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, - 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x02, 0x0a, 0x09, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x06, 0x6e, 0x76, 0x64, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, - 0x79, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x56, 0x44, 0x41, 0x50, 0x49, 0x48, - 0x00, 0x52, 0x06, 0x6e, 0x76, 0x64, 0x61, 0x70, 0x69, 0x12, 0x55, 0x0a, 0x06, 0x6d, 0x61, 0x6e, - 0x75, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, - 0x1a, 0x55, 0x0a, 0x13, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x4e, 0x56, 0x44, 0x41, 0x50, 0x49, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x70, 0x65, 0x5f, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, - 0x70, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, - 0x65, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x70, 0x65, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x42, 0x06, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x28, 0x0a, 0x12, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, - 0x22, 0x23, 0x0a, 0x0d, 0x46, 0x69, 0x78, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x28, 0x0a, 0x12, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x41, 0x4e, 0x41, + 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10, + 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, + 0x12, 0x2d, 0x0a, 0x29, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x55, 0x4c, + 0x4e, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x56, 0x45, 0x52, + 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, + 0x34, 0x0a, 0x30, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x55, 0x4c, 0x4e, + 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, + 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, + 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x32, 0x0a, 0x2e, 0x46, 0x50, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x54, 0x48, 0x10, 0x05, 0x12, 0x3e, 0x0a, 0x3a, 0x46, 0x50, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, + 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x5f, 0x41, 0x44, + 0x56, 0x45, 0x52, 0x53, 0x41, 0x52, 0x59, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x46, 0x50, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x4d, 0x49, 0x54, + 0x49, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x07, + 0x22, 0x2c, 0x0a, 0x05, 0x46, 0x69, 0x78, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaf, + 0x02, 0x0a, 0x09, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x06, + 0x6e, 0x76, 0x64, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x44, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x4e, 0x56, 0x44, 0x41, 0x50, 0x49, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x76, 0x64, + 0x61, 0x70, 0x69, 0x12, 0x55, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, + 0x72, 0x79, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, + 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x1a, 0x55, 0x0a, 0x13, 0x44, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x56, 0x44, 0x41, 0x50, + 0x49, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x70, 0x65, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x70, 0x65, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x65, 0x5f, 0x66, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x70, 0x65, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x1a, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x28, 0x0a, 0x12, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x50, + 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x23, 0x0a, 0x0d, 0x46, 0x69, + 0x78, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, - 0x34, 0x0a, 0x0e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x76, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x04, 0x63, 0x76, 0x65, 0x73, 0x22, 0x4c, 0x0a, 0x0c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, - 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, - 0x6f, 0x72, 0x79, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x22, 0x2d, 0x0a, 0x1b, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x22, 0x66, 0x0a, 0x19, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x49, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, + 0x28, 0x0a, 0x12, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x46, 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x34, 0x0a, 0x0e, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x76, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x63, 0x76, 0x65, 0x73, 0x22, + 0x4c, 0x0a, 0x0c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x3c, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x75, - 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x32, 0xdf, 0x02, 0x0a, 0x10, 0x53, - 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x12, - 0x91, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, - 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, - 0x2a, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x44, - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x26, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2f, 0x76, - 0x31, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, - 0x02, 0x0a, 0x00, 0x12, 0xb6, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x75, 0x6c, 0x6e, - 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x39, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, - 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x37, 0x2e, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x75, 0x6c, 0x6e, - 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, - 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x02, 0x0a, 0x00, 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, 0x61, 0x64, 0x76, 0x69, - 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 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, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x44, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x2d, 0x0a, + 0x1b, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x66, 0x0a, 0x19, + 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, + 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x32, 0xdf, 0x02, 0x0a, 0x10, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x12, 0x91, 0x01, 0x0a, 0x0d, 0x4c, 0x69, + 0x73, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x2a, 0x2e, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, + 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x02, 0x0a, 0x00, 0x12, 0xb6, 0x01, + 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x2e, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, + 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x37, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, + 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x64, 0x76, + 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, + 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x8a, 0xaf, + 0xa8, 0xd2, 0x05, 0x02, 0x0a, 0x00, 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, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x42, 0x15, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x41, 0x64, 0x76, 0x69, 0x73, + 0x6f, 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, 0x61, 0x64, + 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1448,58 +1608,62 @@ func file_advisory_platform_proto_rawDescGZIP() []byte { return file_advisory_platform_proto_rawDescData } -var file_advisory_platform_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_advisory_platform_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_advisory_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_advisory_platform_proto_goTypes = []interface{}{ - (FalsePositiveDetermination_Type)(0), // 0: chainguard.platform.advisory.FalsePositiveDetermination.Type - (*VulnerabilityMetadata)(nil), // 1: chainguard.platform.advisory.VulnerabilityMetadata - (*Reference)(nil), // 2: chainguard.platform.advisory.Reference - (*Severity)(nil), // 3: chainguard.platform.advisory.Severity - (*Advisory)(nil), // 4: chainguard.platform.advisory.Advisory - (*Document)(nil), // 5: chainguard.platform.advisory.Document - (*Event)(nil), // 6: chainguard.platform.advisory.Event - (*TruePositiveDetermination)(nil), // 7: chainguard.platform.advisory.TruePositiveDetermination - (*FalsePositiveDetermination)(nil), // 8: chainguard.platform.advisory.FalsePositiveDetermination - (*Fixed)(nil), // 9: chainguard.platform.advisory.Fixed - (*Detection)(nil), // 10: chainguard.platform.advisory.Detection - (*AnalysisNotPlanned)(nil), // 11: chainguard.platform.advisory.AnalysisNotPlanned - (*FixNotPlanned)(nil), // 12: chainguard.platform.advisory.FixNotPlanned - (*PendingUpstreamFix)(nil), // 13: chainguard.platform.advisory.PendingUpstreamFix - (*DocumentFilter)(nil), // 14: chainguard.platform.advisory.DocumentFilter - (*DocumentList)(nil), // 15: chainguard.platform.advisory.DocumentList - (*VulnerabilityMetadataFilter)(nil), // 16: chainguard.platform.advisory.VulnerabilityMetadataFilter - (*VulnerabilityMetadataList)(nil), // 17: chainguard.platform.advisory.VulnerabilityMetadataList - (*Detection_DetectionTypeNVDAPI)(nil), // 18: chainguard.platform.advisory.Detection.DetectionTypeNVDAPI - (*Detection_DetectionTypeManual)(nil), // 19: chainguard.platform.advisory.Detection.DetectionTypeManual - (*timestamppb.Timestamp)(nil), // 20: google.protobuf.Timestamp + (Reference_Type)(0), // 0: chainguard.platform.advisory.Reference.Type + (Severity_Type)(0), // 1: chainguard.platform.advisory.Severity.Type + (FalsePositiveDetermination_Type)(0), // 2: chainguard.platform.advisory.FalsePositiveDetermination.Type + (*VulnerabilityMetadata)(nil), // 3: chainguard.platform.advisory.VulnerabilityMetadata + (*Reference)(nil), // 4: chainguard.platform.advisory.Reference + (*Severity)(nil), // 5: chainguard.platform.advisory.Severity + (*Advisory)(nil), // 6: chainguard.platform.advisory.Advisory + (*Document)(nil), // 7: chainguard.platform.advisory.Document + (*Event)(nil), // 8: chainguard.platform.advisory.Event + (*TruePositiveDetermination)(nil), // 9: chainguard.platform.advisory.TruePositiveDetermination + (*FalsePositiveDetermination)(nil), // 10: chainguard.platform.advisory.FalsePositiveDetermination + (*Fixed)(nil), // 11: chainguard.platform.advisory.Fixed + (*Detection)(nil), // 12: chainguard.platform.advisory.Detection + (*AnalysisNotPlanned)(nil), // 13: chainguard.platform.advisory.AnalysisNotPlanned + (*FixNotPlanned)(nil), // 14: chainguard.platform.advisory.FixNotPlanned + (*PendingUpstreamFix)(nil), // 15: chainguard.platform.advisory.PendingUpstreamFix + (*DocumentFilter)(nil), // 16: chainguard.platform.advisory.DocumentFilter + (*DocumentList)(nil), // 17: chainguard.platform.advisory.DocumentList + (*VulnerabilityMetadataFilter)(nil), // 18: chainguard.platform.advisory.VulnerabilityMetadataFilter + (*VulnerabilityMetadataList)(nil), // 19: chainguard.platform.advisory.VulnerabilityMetadataList + (*Detection_DetectionTypeNVDAPI)(nil), // 20: chainguard.platform.advisory.Detection.DetectionTypeNVDAPI + (*Detection_DetectionTypeManual)(nil), // 21: chainguard.platform.advisory.Detection.DetectionTypeManual + (*timestamppb.Timestamp)(nil), // 22: google.protobuf.Timestamp } var file_advisory_platform_proto_depIdxs = []int32{ - 2, // 0: chainguard.platform.advisory.VulnerabilityMetadata.references:type_name -> chainguard.platform.advisory.Reference - 3, // 1: chainguard.platform.advisory.VulnerabilityMetadata.severity:type_name -> chainguard.platform.advisory.Severity - 6, // 2: chainguard.platform.advisory.Advisory.events:type_name -> chainguard.platform.advisory.Event - 4, // 3: chainguard.platform.advisory.Document.advisories:type_name -> chainguard.platform.advisory.Advisory - 20, // 4: chainguard.platform.advisory.Event.timestamp:type_name -> google.protobuf.Timestamp - 7, // 5: chainguard.platform.advisory.Event.true_positive_determination:type_name -> chainguard.platform.advisory.TruePositiveDetermination - 8, // 6: chainguard.platform.advisory.Event.false_positive_determination:type_name -> chainguard.platform.advisory.FalsePositiveDetermination - 9, // 7: chainguard.platform.advisory.Event.fixed:type_name -> chainguard.platform.advisory.Fixed - 10, // 8: chainguard.platform.advisory.Event.detection:type_name -> chainguard.platform.advisory.Detection - 11, // 9: chainguard.platform.advisory.Event.analysis_not_planned:type_name -> chainguard.platform.advisory.AnalysisNotPlanned - 12, // 10: chainguard.platform.advisory.Event.fix_not_planned:type_name -> chainguard.platform.advisory.FixNotPlanned - 13, // 11: chainguard.platform.advisory.Event.pending_upstream_fix:type_name -> chainguard.platform.advisory.PendingUpstreamFix - 0, // 12: chainguard.platform.advisory.FalsePositiveDetermination.type:type_name -> chainguard.platform.advisory.FalsePositiveDetermination.Type - 18, // 13: chainguard.platform.advisory.Detection.nvdapi:type_name -> chainguard.platform.advisory.Detection.DetectionTypeNVDAPI - 19, // 14: chainguard.platform.advisory.Detection.manual:type_name -> chainguard.platform.advisory.Detection.DetectionTypeManual - 5, // 15: chainguard.platform.advisory.DocumentList.items:type_name -> chainguard.platform.advisory.Document - 1, // 16: chainguard.platform.advisory.VulnerabilityMetadataList.items:type_name -> chainguard.platform.advisory.VulnerabilityMetadata - 14, // 17: chainguard.platform.advisory.SecurityAdvisory.ListDocuments:input_type -> chainguard.platform.advisory.DocumentFilter - 16, // 18: chainguard.platform.advisory.SecurityAdvisory.ListVulnerabilityMetadata:input_type -> chainguard.platform.advisory.VulnerabilityMetadataFilter - 15, // 19: chainguard.platform.advisory.SecurityAdvisory.ListDocuments:output_type -> chainguard.platform.advisory.DocumentList - 17, // 20: chainguard.platform.advisory.SecurityAdvisory.ListVulnerabilityMetadata:output_type -> chainguard.platform.advisory.VulnerabilityMetadataList - 19, // [19:21] is the sub-list for method output_type - 17, // [17:19] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 4, // 0: chainguard.platform.advisory.VulnerabilityMetadata.references:type_name -> chainguard.platform.advisory.Reference + 5, // 1: chainguard.platform.advisory.VulnerabilityMetadata.severity:type_name -> chainguard.platform.advisory.Severity + 0, // 2: chainguard.platform.advisory.Reference.type:type_name -> chainguard.platform.advisory.Reference.Type + 1, // 3: chainguard.platform.advisory.Severity.type:type_name -> chainguard.platform.advisory.Severity.Type + 8, // 4: chainguard.platform.advisory.Advisory.events:type_name -> chainguard.platform.advisory.Event + 6, // 5: chainguard.platform.advisory.Document.advisories:type_name -> chainguard.platform.advisory.Advisory + 22, // 6: chainguard.platform.advisory.Event.timestamp:type_name -> google.protobuf.Timestamp + 9, // 7: chainguard.platform.advisory.Event.true_positive_determination:type_name -> chainguard.platform.advisory.TruePositiveDetermination + 10, // 8: chainguard.platform.advisory.Event.false_positive_determination:type_name -> chainguard.platform.advisory.FalsePositiveDetermination + 11, // 9: chainguard.platform.advisory.Event.fixed:type_name -> chainguard.platform.advisory.Fixed + 12, // 10: chainguard.platform.advisory.Event.detection:type_name -> chainguard.platform.advisory.Detection + 13, // 11: chainguard.platform.advisory.Event.analysis_not_planned:type_name -> chainguard.platform.advisory.AnalysisNotPlanned + 14, // 12: chainguard.platform.advisory.Event.fix_not_planned:type_name -> chainguard.platform.advisory.FixNotPlanned + 15, // 13: chainguard.platform.advisory.Event.pending_upstream_fix:type_name -> chainguard.platform.advisory.PendingUpstreamFix + 2, // 14: chainguard.platform.advisory.FalsePositiveDetermination.type:type_name -> chainguard.platform.advisory.FalsePositiveDetermination.Type + 20, // 15: chainguard.platform.advisory.Detection.nvdapi:type_name -> chainguard.platform.advisory.Detection.DetectionTypeNVDAPI + 21, // 16: chainguard.platform.advisory.Detection.manual:type_name -> chainguard.platform.advisory.Detection.DetectionTypeManual + 7, // 17: chainguard.platform.advisory.DocumentList.items:type_name -> chainguard.platform.advisory.Document + 3, // 18: chainguard.platform.advisory.VulnerabilityMetadataList.items:type_name -> chainguard.platform.advisory.VulnerabilityMetadata + 16, // 19: chainguard.platform.advisory.SecurityAdvisory.ListDocuments:input_type -> chainguard.platform.advisory.DocumentFilter + 18, // 20: chainguard.platform.advisory.SecurityAdvisory.ListVulnerabilityMetadata:input_type -> chainguard.platform.advisory.VulnerabilityMetadataFilter + 17, // 21: chainguard.platform.advisory.SecurityAdvisory.ListDocuments:output_type -> chainguard.platform.advisory.DocumentList + 19, // 22: chainguard.platform.advisory.SecurityAdvisory.ListVulnerabilityMetadata:output_type -> chainguard.platform.advisory.VulnerabilityMetadataList + 21, // [21:23] is the sub-list for method output_type + 19, // [19:21] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_advisory_platform_proto_init() } @@ -1755,7 +1919,7 @@ func file_advisory_platform_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_advisory_platform_proto_rawDesc, - NumEnums: 1, + NumEnums: 3, NumMessages: 19, NumExtensions: 0, NumServices: 1, diff --git a/proto/platform/advisory/v1/advisory.platform.proto b/proto/platform/advisory/v1/advisory.platform.proto index 68d2b3d0..9c79b371 100644 --- a/proto/platform/advisory/v1/advisory.platform.proto +++ b/proto/platform/advisory/v1/advisory.platform.proto @@ -47,17 +47,66 @@ message VulnerabilityMetadata { } message Reference { - string type = 1; + Type type = 1; string url = 2; + + enum Type { + // The "unset" value. + UNSPECIFIED = 0; + + // Published security advisory for the vulnerability. + ADVISORY = 1; + + // Article or blog post describing the vulnerability. + ARTICLE = 2; + + // Scanner or tool that allows detection in prod environments. + DETECTION = 3; + + // Social media discussion about vuln. + DISCUSSION = 4; + + // Report on vuln. + REPORT = 5; + + // Source code browser link to fix. + FIX = 6; + + // Source code browser link to introduction of vuln. + INTRODUCED = 7; + + // Home web page for package. + PACKAGE = 8; + + // Demonstration of validity of vuln claim. + EVIDENCE = 9; + + // Web page of unspecified kind. + WEB = 10; + } } message Severity { // CVSS version standard. - string type = 1; + Type type = 1; // Vector string representing CVSS score based on type. string score = 2; + + enum Type { + // The "unset" value. + UNSPECIFIED = 0; + + // CVSS v2 + CVSS_V2 = 1; + + // CVSS >= 3.0 and < 4.0 + CVSS_V3 = 2; + + // CVSS >= 4.0 and < 5.0 + CVSS_V4 = 3; + } } message Advisory {