From 29031a5e9366c87e750f1ec4894c76dceb324ee9 Mon Sep 17 00:00:00 2001 From: Chris Monson Date: Fri, 2 Apr 2021 14:09:23 -0600 Subject: [PATCH 1/4] Simplify reflection for Resources, disallow cycles with ptr checks. --- pkg/analytic/analytic.go | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/pkg/analytic/analytic.go b/pkg/analytic/analytic.go index 53eb6e1..8ffbcb5 100644 --- a/pkg/analytic/analytic.go +++ b/pkg/analytic/analytic.go @@ -9,9 +9,10 @@ import ( "sort" "github.com/golang/protobuf/jsonpb" - "github.com/pkg/errors" + "github.com/golang/protobuf/proto" "github.com/mediaforensics/medifor/pkg/medifor" pb "github.com/mediaforensics/medifor/pkg/mediforproto" + "github.com/pkg/errors" ) // AnalyticInboxes returns a slice of inbox queue names for the given formats and analytic ID. @@ -37,7 +38,7 @@ type ResourceHandler func(r *pb.Resource) // reflectResources recursively descends into the given proto, looking for // Resource types, calling a given function when it finds one. -func reflectResources(v reflect.Value, handler ResourceHandler) error { +func reflectResources(v reflect.Value, handler ResourceHandler, seenPtrs map[uintptr]bool) error { resourceType := reflect.TypeOf(pb.Resource{}) switch v.Kind() { @@ -45,21 +46,18 @@ func reflectResources(v reflect.Value, handler ResourceHandler) error { if v.IsNil() { return nil } - return errors.Wrap(reflectResources(v.Elem(), handler), "reflect pointer") + if seenPtrs[v.Pointer()] { + return nil + } + seenPtrs[v.Pointer()] = true + return errors.Wrap(reflectResources(v.Elem(), handler, seenPtrs), "reflect pointer") case reflect.Array, reflect.Slice: for i := 0; i < v.Len(); i++ { - if err := reflectResources(v.Index(i), handler); err != nil { + if err := reflectResources(v.Index(i), handler, seenPtrs); err != nil { return errors.Wrap(err, "reflect array/slice") } } return nil - case reflect.Map: - for _, k := range v.MapKeys() { - if err := reflectResources(v.MapIndex(k), handler); err != nil { - return errors.Wrap(err, "reflect map") - } - } - return nil case reflect.Struct: if v.Type() == resourceType { res := v.Interface().(pb.Resource) @@ -67,7 +65,7 @@ func reflectResources(v reflect.Value, handler ResourceHandler) error { return nil } for i := 0; i < v.NumField(); i++ { - if err := reflectResources(v.Field(i), handler); err != nil { + if err := reflectResources(v.Field(i), handler, seenPtrs); err != nil { return errors.Wrap(err, "reflect struct") } } @@ -78,12 +76,13 @@ func reflectResources(v reflect.Value, handler ResourceHandler) error { } // FindResources finds all Resource types in a proto and calls the given handler for each. -func FindResources(val interface{}) ([]*pb.Resource, error) { +func FindResources(val proto.Message) ([]*pb.Resource, error) { var resources []*pb.Resource handler := func(r *pb.Resource) { resources = append(resources, r) } - if err := reflectResources(reflect.ValueOf(val), handler); err != nil { + seen := make(map[uintptr]bool) + if err := reflectResources(reflect.ValueOf(val), handler, seen); err != nil { return nil, errors.Wrap(err, "search for Resource elements in proto") } return resources, nil From 68f7881dccbd4206282c92197b9b3bd2d88d1880 Mon Sep 17 00:00:00 2001 From: Nick Burnett Date: Fri, 2 Apr 2021 16:09:40 -0400 Subject: [PATCH 2/4] Updated protos --- pkg/mediforproto/analytic.pb.go | 287 +++++++++++++------------- pkg/mediforproto/fusion.pb.go | 111 +++++----- pkg/mediforproto/kill.pb.go | 10 +- pkg/mediforproto/pipeline.pb.go | 254 ++++++++++++----------- pkg/mediforproto/provenance.pb.go | 78 +++---- pkg/mediforproto/streamingproxy.pb.go | 40 ++-- pkg/mediforproto/task.pb.go | 59 +++--- proto/medifor/v1/analytic.proto | 4 +- proto/medifor/v1/fusion.proto | 2 + proto/medifor/v1/kill.proto | 2 + proto/medifor/v1/pipeline.proto | 12 +- proto/medifor/v1/provenance.proto | 1 + proto/medifor/v1/streamingproxy.proto | 1 + proto/medifor/v1/task.proto | 1 + 14 files changed, 445 insertions(+), 417 deletions(-) diff --git a/pkg/mediforproto/analytic.pb.go b/pkg/mediforproto/analytic.pb.go index 6debab3..c06a97a 100644 --- a/pkg/mediforproto/analytic.pb.go +++ b/pkg/mediforproto/analytic.pb.go @@ -126,21 +126,21 @@ type SpecificityType int32 const ( SpecificityType_SPEC_GLOBAL SpecificityType = 0 - SpecificityType_SPEC_FRAME SpecificityType = 1 + SpecificityType_SPEC_FRAM SpecificityType = 1 SpecificityType_SPEC_PIXEL SpecificityType = 2 SpecificityType_SPEC_METADATA SpecificityType = 3 ) var SpecificityType_name = map[int32]string{ 0: "SPEC_GLOBAL", - 1: "SPEC_FRAME", + 1: "SPEC_FRAM", 2: "SPEC_PIXEL", 3: "SPEC_METADATA", } var SpecificityType_value = map[string]int32{ "SPEC_GLOBAL": 0, - "SPEC_FRAME": 1, + "SPEC_FRAM": 1, "SPEC_PIXEL": 2, "SPEC_METADATA": 3, } @@ -2244,147 +2244,150 @@ func init() { func init() { proto.RegisterFile("medifor/v1/analytic.proto", fileDescriptor_c1a55dc3b08de1d4) } var fileDescriptor_c1a55dc3b08de1d4 = []byte{ - // 2239 bytes of a gzipped FileDescriptorProto + // 2275 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x72, 0xdb, 0xc8, - 0x11, 0x36, 0x48, 0x8a, 0x3f, 0x4d, 0x8a, 0x84, 0xc6, 0x96, 0x04, 0xd1, 0xfb, 0xa3, 0xb0, 0x6a, - 0x1d, 0x47, 0x49, 0xc9, 0x6b, 0x27, 0x59, 0xaf, 0x37, 0xa9, 0xa4, 0x20, 0x0a, 0x92, 0xb0, 0x26, - 0x09, 0xd6, 0x10, 0xb2, 0xb7, 0xf6, 0x82, 0xc0, 0xc4, 0x48, 0x44, 0x89, 0x24, 0x60, 0x00, 0x54, + 0x11, 0x36, 0x48, 0x8a, 0x3f, 0x4d, 0x8a, 0x84, 0xc6, 0x96, 0x44, 0xd1, 0xfb, 0xa3, 0xb0, 0x6a, + 0x1d, 0x47, 0x49, 0x49, 0x6b, 0x65, 0xb3, 0x5e, 0x6f, 0x52, 0x49, 0x41, 0x14, 0x24, 0x61, 0x4d, + 0x11, 0xac, 0x21, 0x64, 0x6f, 0xf9, 0x82, 0x40, 0xc4, 0x88, 0x44, 0x89, 0x24, 0x60, 0x00, 0x54, 0xa2, 0xe4, 0x21, 0x72, 0xcb, 0x29, 0x55, 0x5b, 0x95, 0x07, 0xc9, 0x0b, 0xe4, 0xb2, 0x97, 0x3c, - 0x46, 0xee, 0x39, 0xe4, 0x90, 0x9a, 0x06, 0x40, 0x80, 0x7f, 0x26, 0xcb, 0xa9, 0xdd, 0xe4, 0x90, - 0x13, 0x39, 0x3d, 0xdd, 0xdf, 0xf4, 0x4c, 0x4f, 0x7f, 0xd3, 0x98, 0x81, 0x83, 0x11, 0xb3, 0xec, - 0x2b, 0xc7, 0x7b, 0x72, 0xfb, 0xf4, 0x89, 0x39, 0x36, 0x87, 0x77, 0x81, 0xdd, 0x3f, 0x76, 0x3d, - 0x27, 0x70, 0x48, 0x25, 0xea, 0xc2, 0x56, 0x7d, 0xff, 0xda, 0x71, 0xae, 0x87, 0xec, 0x89, 0xe7, - 0xf6, 0x9f, 0xf8, 0x81, 0x19, 0x4c, 0xfc, 0x50, 0xad, 0xf1, 0xcf, 0x02, 0x94, 0x4e, 0x59, 0xc0, - 0xfa, 0x81, 0xed, 0x8c, 0xc9, 0x11, 0xe4, 0xc3, 0x5e, 0x49, 0x38, 0x14, 0x1e, 0x97, 0x9f, 0x91, - 0xe3, 0xd0, 0xee, 0xd8, 0x73, 0xfb, 0xc7, 0x3d, 0xec, 0xa1, 0x91, 0x06, 0x39, 0x82, 0x1d, 0x3f, - 0x30, 0xbd, 0xc0, 0x08, 0xec, 0x11, 0x33, 0x46, 0xf6, 0x70, 0x68, 0xfb, 0x52, 0xe6, 0x50, 0x78, - 0x9c, 0xa5, 0x35, 0xec, 0xd0, 0xed, 0x11, 0x6b, 0xa3, 0x98, 0x3c, 0x82, 0x1a, 0x1b, 0x5b, 0x33, - 0x9a, 0x59, 0xd4, 0xdc, 0x66, 0x63, 0x2b, 0xa5, 0xd7, 0x82, 0x6d, 0x7b, 0x74, 0x6d, 0x8c, 0xcc, - 0xb1, 0xed, 0x1a, 0x1e, 0x7b, 0x2b, 0x95, 0xd1, 0x8d, 0x47, 0xc7, 0xe9, 0xc9, 0x1c, 0xab, 0x23, - 0xf3, 0x9a, 0xb5, 0xb9, 0xce, 0x64, 0x68, 0x72, 0xbf, 0x29, 0x7b, 0x3b, 0x61, 0x7e, 0x70, 0x71, - 0x8f, 0x96, 0xed, 0xd1, 0x35, 0xf6, 0x50, 0xf6, 0x96, 0xa3, 0xdd, 0xda, 0x56, 0x0a, 0xad, 0xb2, - 0x0c, 0xed, 0x95, 0x6d, 0x31, 0x67, 0x05, 0xda, 0xad, 0x6d, 0x4d, 0xd1, 0x2e, 0xa0, 0xca, 0x7d, - 0xf3, 0xdd, 0xa1, 0xdd, 0x67, 0x08, 0xb7, 0x8d, 0x70, 0x87, 0x4b, 0x9c, 0xeb, 0xa1, 0x52, 0x02, - 0x54, 0xb1, 0x47, 0xd7, 0x53, 0x19, 0xa1, 0xb0, 0xc3, 0x91, 0xfa, 0xe6, 0xc8, 0x18, 0x99, 0x41, - 0x7f, 0x80, 0x60, 0x55, 0x04, 0xfb, 0x64, 0x09, 0x58, 0xd3, 0x1c, 0x31, 0xcf, 0x6c, 0x73, 0xcd, - 0x04, 0x91, 0xfb, 0xd2, 0x34, 0x47, 0xb1, 0x94, 0x28, 0x50, 0x89, 0x30, 0x7d, 0x84, 0xab, 0x21, - 0xdc, 0x0f, 0x56, 0xc2, 0xf9, 0x09, 0x14, 0x84, 0x50, 0x7e, 0xe4, 0x1a, 0x5f, 0xb2, 0x59, 0xd7, - 0xc4, 0x65, 0xae, 0xe1, 0xb2, 0x2d, 0x77, 0xed, 0xd6, 0xb6, 0xd2, 0xae, 0xfd, 0x0a, 0x4a, 0xd3, - 0xa0, 0x4a, 0xbb, 0x88, 0xf5, 0xf1, 0x9a, 0x80, 0x5e, 0x08, 0xb4, 0x18, 0x47, 0x92, 0xdb, 0x4f, - 0xc3, 0x28, 0xed, 0x2d, 0xb3, 0x5f, 0x08, 0x21, 0xb7, 0x8f, 0x63, 0x47, 0xbe, 0x00, 0x48, 0x02, - 0x27, 0xed, 0x23, 0xc0, 0xc1, 0xca, 0xa0, 0x5d, 0x08, 0xb4, 0x34, 0x8d, 0x16, 0x39, 0x0d, 0x37, - 0xe4, 0x74, 0x3d, 0x24, 0x09, 0xcd, 0x3f, 0x7a, 0x77, 0x98, 0x2e, 0x04, 0xdc, 0x88, 0xf1, 0x22, - 0x90, 0xe7, 0x50, 0x8c, 0x83, 0x23, 0x1d, 0x20, 0x40, 0x7d, 0x75, 0x60, 0x2e, 0x04, 0x5a, 0x88, - 0x22, 0xc2, 0x87, 0x9f, 0x09, 0x87, 0x54, 0x5f, 0x36, 0xfc, 0x7c, 0x28, 0xf8, 0xf0, 0xa9, 0x18, - 0x9c, 0x94, 0xa0, 0xe0, 0x85, 0xd1, 0x39, 0x01, 0x28, 0x7a, 0xcc, 0x77, 0x9d, 0xb1, 0xcf, 0x1a, - 0x7f, 0x12, 0x80, 0xc8, 0xe3, 0xb1, 0x13, 0x98, 0x01, 0xb3, 0x12, 0x0e, 0xa8, 0x42, 0xc6, 0xb6, - 0x30, 0xff, 0x4b, 0x34, 0x63, 0x5b, 0x44, 0x82, 0xc2, 0x2d, 0xf3, 0x7c, 0xdb, 0x19, 0x63, 0x76, - 0x97, 0x68, 0xdc, 0x24, 0x3f, 0x87, 0x92, 0x15, 0x9b, 0x61, 0x3e, 0x97, 0x9f, 0xed, 0xcf, 0x7a, - 0x36, 0x45, 0xa5, 0x89, 0x26, 0xf9, 0x18, 0xca, 0x31, 0x57, 0x19, 0xb6, 0x25, 0xe5, 0x10, 0x14, - 0x62, 0x91, 0x6a, 0x35, 0xce, 0xa0, 0x48, 0x99, 0xef, 0x4c, 0xbc, 0x3e, 0x23, 0x22, 0x64, 0x27, - 0x9e, 0x1d, 0xb9, 0xc3, 0xff, 0x12, 0x02, 0xb9, 0xe0, 0xce, 0x65, 0x91, 0x33, 0xf8, 0x9f, 0x3c, - 0x80, 0xad, 0xb1, 0x13, 0xb0, 0x90, 0x55, 0x4a, 0x34, 0x6c, 0x34, 0x9e, 0x41, 0x51, 0x1d, 0x07, - 0xd4, 0x1c, 0x5f, 0xa3, 0x06, 0x92, 0x12, 0x22, 0x6d, 0xd1, 0xb0, 0xc1, 0xd1, 0xd9, 0xd8, 0x42, - 0xa8, 0x2d, 0xca, 0xff, 0x36, 0x74, 0xa8, 0xf6, 0xfa, 0x8e, 0xc7, 0xac, 0xa9, 0xe5, 0x4f, 0x60, - 0xcb, 0xe3, 0x7f, 0x22, 0x4a, 0xdc, 0x9b, 0x8b, 0x5c, 0xa4, 0x46, 0x43, 0x25, 0x1c, 0x87, 0xdb, - 0x23, 0xa6, 0x40, 0xc3, 0x46, 0x63, 0x00, 0x95, 0xb6, 0xe9, 0xdf, 0xbc, 0x27, 0xe6, 0x11, 0xe4, - 0x46, 0xa6, 0x7f, 0x83, 0x90, 0x0b, 0xca, 0xf1, 0x4a, 0x51, 0xd4, 0x69, 0xfc, 0x0c, 0xe0, 0x6c, - 0xe8, 0x98, 0xcb, 0x66, 0x2d, 0x2c, 0x99, 0xb5, 0x10, 0xce, 0xfa, 0x2b, 0x10, 0xc3, 0x59, 0xa7, - 0x6c, 0x8f, 0x67, 0x7d, 0x94, 0x66, 0x87, 0x4d, 0x14, 0xdf, 0x3d, 0xf3, 0x6f, 0x04, 0xd8, 0xc1, - 0xdd, 0xdd, 0x72, 0xfa, 0xe6, 0xd0, 0xfe, 0xbd, 0x19, 0x9d, 0x33, 0xe1, 0x8c, 0x84, 0xf5, 0x33, - 0x22, 0xcf, 0xa1, 0xcc, 0x7f, 0x0d, 0xc7, 0x0d, 0x9c, 0x49, 0xb0, 0x66, 0x11, 0x80, 0xab, 0x6a, - 0xa8, 0x49, 0x3e, 0x81, 0x2a, 0x1a, 0x06, 0x03, 0x8f, 0xf9, 0x03, 0x67, 0x68, 0xe1, 0xee, 0x10, - 0xe8, 0x36, 0x97, 0xea, 0xb1, 0xb0, 0xf1, 0x6d, 0x2e, 0xf2, 0x30, 0x4d, 0x20, 0xc9, 0x6c, 0x84, - 0xd4, 0x6c, 0x48, 0x13, 0xf2, 0x57, 0x66, 0x9f, 0x05, 0xbe, 0x04, 0x87, 0xd9, 0xc7, 0xe5, 0x67, - 0x3f, 0x5e, 0xc3, 0x63, 0xc7, 0x67, 0xa8, 0xad, 0x8c, 0x03, 0xef, 0x8e, 0x46, 0xa6, 0xe4, 0x23, - 0x80, 0xbe, 0x33, 0xbe, 0xb2, 0x2d, 0x36, 0xee, 0xc7, 0xab, 0x95, 0x92, 0x70, 0xbf, 0x07, 0xa6, - 0x6f, 0xa4, 0x74, 0x4a, 0x87, 0xc2, 0xe3, 0x22, 0xdd, 0x1e, 0x98, 0x7e, 0x33, 0x51, 0x7b, 0x0a, - 0x05, 0xc7, 0x0d, 0x0c, 0xbe, 0x26, 0x7c, 0x5e, 0xd5, 0xf9, 0x08, 0x69, 0x6e, 0xa0, 0x4d, 0x02, - 0xfd, 0xce, 0x65, 0x34, 0xef, 0xe0, 0x7f, 0x72, 0x08, 0x65, 0xf6, 0x3b, 0x77, 0x68, 0x8e, 0xd1, - 0xb9, 0x28, 0xf3, 0xd2, 0x22, 0xd2, 0x84, 0xca, 0x30, 0x15, 0x28, 0x69, 0x6b, 0x25, 0x5d, 0xa7, - 0xe3, 0x49, 0x67, 0x8c, 0xc8, 0xaf, 0xa1, 0xec, 0xbb, 0xac, 0x6f, 0x5f, 0xd9, 0x7d, 0x3b, 0xb8, - 0x93, 0xf2, 0xe8, 0xdd, 0x87, 0xb3, 0x18, 0xbd, 0x44, 0x01, 0x5d, 0x4c, 0x5b, 0x90, 0x97, 0xb0, - 0x33, 0x4a, 0xad, 0xa2, 0x81, 0xf9, 0x5e, 0x38, 0xcc, 0x3e, 0xae, 0xce, 0x53, 0x5f, 0x7a, 0xb1, - 0x11, 0x47, 0x1c, 0xcd, 0x49, 0xc8, 0x67, 0x00, 0xfe, 0xc4, 0x75, 0x87, 0x6c, 0xc4, 0xc6, 0x81, - 0x54, 0xc4, 0xb8, 0xad, 0xdc, 0x3e, 0x89, 0x66, 0xfd, 0x05, 0x94, 0x53, 0xd1, 0xe3, 0x49, 0x73, - 0xc3, 0xee, 0x62, 0x22, 0xba, 0x61, 0x77, 0x7c, 0x8b, 0xdc, 0x9a, 0xc3, 0xc9, 0x74, 0xc3, 0x63, - 0xe3, 0x8b, 0xcc, 0xe7, 0x42, 0xe3, 0x2f, 0x02, 0x48, 0xab, 0x8a, 0x14, 0xf2, 0x21, 0x40, 0xc4, - 0xc6, 0xc6, 0x94, 0x67, 0x4b, 0x91, 0x44, 0xb5, 0x38, 0x35, 0xd8, 0xdc, 0x74, 0xcd, 0x46, 0x0f, - 0x95, 0xc8, 0x3e, 0x14, 0x9c, 0x49, 0x60, 0x58, 0xb6, 0x17, 0x51, 0x5f, 0xde, 0x99, 0x04, 0xa7, - 0xb6, 0x47, 0x0e, 0xa1, 0x32, 0x70, 0x0d, 0x8b, 0xdd, 0xf2, 0x62, 0x25, 0x61, 0xd9, 0x81, 0x7b, - 0x8a, 0x22, 0xd5, 0x6a, 0x7c, 0x9b, 0x85, 0x1d, 0x3c, 0x39, 0x66, 0x32, 0x53, 0x81, 0xda, 0x95, - 0x67, 0x8e, 0x98, 0x91, 0x30, 0xbb, 0x80, 0x4b, 0xf6, 0xc1, 0x5c, 0xfc, 0x66, 0x48, 0x92, 0x56, - 0xd1, 0x28, 0x39, 0x44, 0x5e, 0x40, 0x25, 0x84, 0x99, 0x66, 0x6d, 0xf6, 0x1d, 0x3c, 0x57, 0x46, - 0xdd, 0x28, 0x6d, 0xcf, 0xa1, 0x66, 0x4e, 0x2c, 0xdb, 0x31, 0xd2, 0x67, 0x4b, 0x76, 0xf1, 0xd4, - 0x9b, 0x27, 0x2c, 0x5a, 0x45, 0xb3, 0xc4, 0x87, 0x5f, 0x40, 0x25, 0x04, 0x8a, 0x7c, 0xc8, 0x21, - 0xca, 0x6a, 0x1e, 0x2b, 0xa3, 0x76, 0xe4, 0xc5, 0x0b, 0x80, 0x5b, 0xbe, 0x38, 0x06, 0xf2, 0xd4, - 0x16, 0x9a, 0xd6, 0xe7, 0xf7, 0x5e, 0xc2, 0xe8, 0xb4, 0x74, 0x1b, 0xd6, 0x20, 0xfe, 0x0d, 0x39, - 0xc3, 0x1a, 0x2a, 0x32, 0x8d, 0x07, 0xcf, 0xaf, 0x45, 0xa8, 0x4d, 0x11, 0x22, 0x17, 0x3e, 0x85, - 0x07, 0x29, 0x9c, 0x84, 0xc5, 0x0a, 0xb8, 0xdd, 0xc8, 0x54, 0x3d, 0xa1, 0xb2, 0xbf, 0xe7, 0xa2, - 0x90, 0xfe, 0xe7, 0x54, 0xb6, 0x00, 0xf3, 0x5d, 0x52, 0xd9, 0x67, 0x69, 0x2a, 0xcb, 0x2e, 0x92, - 0x05, 0x3a, 0xf3, 0xdd, 0xf1, 0xd9, 0x42, 0x16, 0xfc, 0x9f, 0xcf, 0x66, 0xf9, 0xec, 0x6f, 0x19, - 0x90, 0x56, 0x7d, 0x26, 0x6d, 0xc0, 0x67, 0xb8, 0x53, 0xd7, 0xf1, 0x19, 0x2a, 0x6d, 0xce, 0x67, - 0xa5, 0x79, 0x3e, 0xe3, 0x7b, 0xed, 0x86, 0x31, 0xd7, 0xf8, 0xad, 0xe3, 0xdd, 0xf8, 0xae, 0xd9, - 0x67, 0xb8, 0x1f, 0x8a, 0x74, 0x9b, 0x4b, 0x5f, 0xc7, 0x42, 0xee, 0xae, 0x7f, 0x63, 0xbb, 0x06, - 0x26, 0x3b, 0xee, 0x87, 0x22, 0x2d, 0x71, 0x89, 0xcc, 0x05, 0xbc, 0x38, 0xc5, 0xee, 0x5b, 0xdb, - 0x9f, 0x98, 0x43, 0x8c, 0x75, 0x91, 0xa2, 0xc5, 0x2b, 0x94, 0x90, 0x1f, 0x42, 0xcd, 0x62, 0x6f, - 0x26, 0xd7, 0x86, 0x17, 0xb9, 0xee, 0x63, 0x42, 0x16, 0x69, 0x15, 0xc5, 0xf1, 0x84, 0x7c, 0x3e, - 0x95, 0x6b, 0x77, 0x62, 0x38, 0x9e, 0x25, 0x15, 0xb1, 0xbe, 0xcc, 0x5f, 0xbb, 0x13, 0xcd, 0xb3, - 0x1a, 0xff, 0xca, 0x40, 0xae, 0x65, 0x8f, 0x6f, 0xc8, 0x01, 0x14, 0xaf, 0x3c, 0x67, 0x64, 0x24, - 0x05, 0x6e, 0x81, 0xb7, 0x2f, 0x3d, 0x9b, 0xec, 0x42, 0x3e, 0x70, 0xb0, 0x23, 0x2c, 0x73, 0xb7, - 0x02, 0x87, 0x8b, 0xa7, 0xa9, 0x9c, 0x4d, 0xa7, 0xf2, 0x6c, 0x16, 0xe6, 0xde, 0x37, 0x0b, 0x7f, - 0x09, 0x25, 0x74, 0x27, 0x62, 0xbc, 0x8d, 0x0e, 0x7e, 0x9c, 0x00, 0xb2, 0xde, 0xe7, 0x50, 0x08, - 0x22, 0xb6, 0xcc, 0x6f, 0x66, 0x9b, 0x0f, 0x42, 0xbe, 0x9c, 0xcb, 0xe2, 0xc2, 0x62, 0x16, 0x2f, - 0xcd, 0x9f, 0xe2, 0xfb, 0xe5, 0x4f, 0x63, 0x00, 0xe5, 0xd4, 0xe7, 0x5e, 0xba, 0x8c, 0x12, 0x36, - 0x2c, 0xa3, 0x1e, 0x41, 0x6e, 0x68, 0x8f, 0xe3, 0x7a, 0x9c, 0xcc, 0xea, 0xf3, 0xc8, 0x52, 0xec, - 0x6f, 0xfc, 0x55, 0x00, 0xb2, 0x78, 0x1d, 0xb0, 0x2e, 0x61, 0x9e, 0x43, 0xd9, 0xf5, 0x9c, 0x37, - 0xcc, 0xd8, 0xa4, 0x0c, 0x00, 0x54, 0xc5, 0x41, 0xb8, 0xa1, 0xe5, 0x8c, 0x1d, 0x2f, 0x32, 0xcc, - 0xbe, 0xdb, 0x10, 0x55, 0xd5, 0xf9, 0x22, 0x22, 0x97, 0x4e, 0xba, 0xc6, 0x1f, 0x33, 0x20, 0xce, - 0x7f, 0xdb, 0xae, 0x38, 0x4e, 0x1e, 0x42, 0x89, 0xef, 0xb1, 0xe4, 0x0b, 0xa0, 0x48, 0x8b, 0x03, - 0xd3, 0xc7, 0x43, 0x7a, 0x3e, 0xc2, 0xd9, 0xf5, 0x3c, 0x9d, 0x7b, 0x9f, 0xba, 0xf3, 0x47, 0x20, - 0x72, 0x1f, 0x16, 0x08, 0xbf, 0x48, 0x6b, 0x03, 0xd3, 0x9f, 0x29, 0x73, 0x66, 0x49, 0x34, 0xbf, - 0x29, 0x89, 0x36, 0xfe, 0x2c, 0xc0, 0xfe, 0x8a, 0x4b, 0x99, 0x75, 0x71, 0x4d, 0xad, 0x72, 0x66, - 0x86, 0xda, 0xa6, 0x15, 0x5f, 0x76, 0x93, 0x8a, 0xef, 0x21, 0x94, 0xfa, 0x38, 0x76, 0x52, 0xd5, - 0x15, 0x43, 0x81, 0x6a, 0x61, 0xc0, 0xe6, 0x6f, 0x03, 0xfe, 0x8b, 0x01, 0x5b, 0x77, 0xb0, 0x7e, - 0x4f, 0x01, 0x5b, 0x71, 0x55, 0xf5, 0xbf, 0x10, 0xb0, 0x37, 0x50, 0x0e, 0x1d, 0xeb, 0xc5, 0x41, - 0x49, 0x74, 0x85, 0x59, 0xdd, 0xe5, 0x1f, 0xd8, 0xeb, 0x43, 0xd5, 0xe8, 0x43, 0x25, 0x7d, 0xbf, - 0x44, 0x9e, 0x42, 0x1e, 0x4d, 0xfd, 0xa8, 0xb2, 0x9f, 0xbb, 0x0b, 0x4b, 0xf9, 0x43, 0x23, 0xc5, - 0xf9, 0x41, 0x32, 0x8b, 0x83, 0xfc, 0x01, 0xee, 0x2f, 0xb9, 0x5d, 0xfc, 0x7e, 0x96, 0xb8, 0x51, - 0x80, 0x2d, 0x65, 0xe4, 0x06, 0x77, 0x47, 0xdf, 0xe4, 0x40, 0x9c, 0x3f, 0x02, 0xc8, 0x0e, 0x6c, - 0xb7, 0xe5, 0x8e, 0xda, 0x35, 0x2e, 0x3b, 0x2f, 0x3b, 0xda, 0xeb, 0x8e, 0x78, 0x8f, 0x88, 0x50, - 0x09, 0x45, 0x67, 0x6a, 0x4b, 0x57, 0xa8, 0x28, 0x90, 0x3d, 0x20, 0xa1, 0x44, 0x3e, 0xfd, 0xf2, - 0xb2, 0xa7, 0x1b, 0x4d, 0xad, 0xa5, 0x51, 0x31, 0x93, 0x68, 0x52, 0xa5, 0xad, 0xbd, 0x52, 0xc4, - 0x2c, 0xf9, 0x00, 0xa4, 0x50, 0xd2, 0xd4, 0x3a, 0xba, 0xd2, 0xd1, 0x0d, 0xf9, 0xb5, 0x4c, 0x15, - 0x8e, 0xd4, 0x12, 0x73, 0xe4, 0x00, 0x76, 0xc3, 0xde, 0xae, 0xac, 0x76, 0xf4, 0x13, 0x7a, 0xd9, - 0xbb, 0x30, 0x74, 0x4d, 0x6b, 0x89, 0x5b, 0xe4, 0x01, 0x88, 0x71, 0x97, 0xde, 0x8c, 0xa4, 0x79, - 0x52, 0x05, 0x08, 0xa5, 0x27, 0xad, 0x4b, 0x2a, 0x16, 0x92, 0x01, 0x7b, 0xdd, 0x96, 0xda, 0x54, - 0xc4, 0x22, 0xa9, 0x41, 0x39, 0x1a, 0xb0, 0xa5, 0x75, 0x14, 0xb1, 0x94, 0x98, 0x34, 0xa9, 0xd6, - 0x15, 0x21, 0x69, 0x9f, 0xb5, 0xd4, 0xae, 0x58, 0x4e, 0xfb, 0xdc, 0x53, 0xbf, 0x56, 0xc4, 0x4a, - 0x32, 0xbb, 0x9e, 0x22, 0xb7, 0x8d, 0xa6, 0x4c, 0x5f, 0xa9, 0x9d, 0x73, 0x71, 0x3b, 0xa5, 0xa9, - 0xe9, 0xb2, 0xae, 0x88, 0xd5, 0x04, 0xab, 0xf7, 0x52, 0x79, 0x2d, 0xd6, 0x92, 0xf6, 0x6b, 0x99, - 0x76, 0x45, 0x91, 0x10, 0xa8, 0x86, 0xed, 0xb6, 0xa2, 0xcb, 0xa7, 0xb2, 0x2e, 0x8b, 0x3b, 0x64, - 0x1f, 0xee, 0x47, 0x6b, 0xd7, 0xd1, 0xd5, 0x33, 0x8d, 0x2a, 0x9d, 0x9e, 0xda, 0xec, 0x89, 0x24, - 0x59, 0x0c, 0xb5, 0x2d, 0x9f, 0x2b, 0x06, 0x55, 0x9a, 0x72, 0x57, 0xbf, 0xa4, 0x8a, 0x78, 0x9f, - 0x6c, 0x43, 0x29, 0x9a, 0xc3, 0xb9, 0x2a, 0x3e, 0x48, 0x34, 0xcf, 0xa8, 0xdc, 0x56, 0x0c, 0xb5, - 0xd3, 0x53, 0xa8, 0xae, 0x6a, 0x1d, 0x71, 0x37, 0x59, 0xb6, 0xb0, 0xeb, 0x94, 0xcf, 0x79, 0x2f, - 0x59, 0x14, 0xf9, 0xf2, 0x54, 0xd5, 0xc4, 0xfd, 0x44, 0xed, 0x54, 0xbb, 0x3c, 0x69, 0x29, 0xc6, - 0x97, 0xdd, 0x73, 0x51, 0x4a, 0xd4, 0x34, 0xfd, 0x42, 0xa1, 0xe2, 0xc1, 0xd1, 0x25, 0xd4, 0xe6, - 0x4a, 0x75, 0xae, 0xd3, 0xeb, 0x2a, 0x4d, 0xe3, 0xbc, 0xa5, 0x9d, 0xc8, 0x2d, 0xf1, 0x1e, 0x9f, - 0x33, 0x0a, 0x70, 0x40, 0x51, 0x98, 0xb6, 0xbb, 0xea, 0x57, 0x4a, 0x4b, 0xcc, 0xf0, 0x0d, 0x85, - 0xed, 0xe9, 0x12, 0x64, 0x8f, 0x7e, 0x03, 0x90, 0x14, 0x0a, 0x7c, 0x59, 0xb5, 0xae, 0x6e, 0x68, - 0x97, 0xba, 0xd1, 0xe1, 0x21, 0xbb, 0xc7, 0xc7, 0x88, 0x25, 0x72, 0xab, 0x25, 0x0a, 0x64, 0x17, - 0x76, 0x62, 0xc1, 0xa9, 0xa2, 0x2b, 0x4d, 0x9c, 0x6c, 0x86, 0x48, 0xf0, 0x20, 0x16, 0xb7, 0xb4, - 0xa6, 0xdc, 0x52, 0xbf, 0x96, 0xb1, 0x27, 0x7b, 0xc4, 0xa0, 0x36, 0xf7, 0x19, 0x44, 0x1e, 0xc2, - 0xfe, 0x2b, 0xf5, 0x54, 0xd1, 0x8c, 0x45, 0xa4, 0x7b, 0xa4, 0x0e, 0x7b, 0xb3, 0x9d, 0xba, 0xd2, - 0xee, 0x6a, 0x54, 0xe6, 0x83, 0x1f, 0xc0, 0xee, 0x6c, 0x5f, 0xaf, 0x2b, 0xeb, 0xaa, 0xdc, 0x12, - 0x33, 0xcf, 0xfe, 0x91, 0x83, 0xa2, 0x1c, 0x5d, 0xc5, 0x92, 0x37, 0xb0, 0x1f, 0x7e, 0x4e, 0x2f, - 0xde, 0x8f, 0x6d, 0xf8, 0x24, 0x53, 0x5f, 0x77, 0xd3, 0x4f, 0xba, 0xb0, 0x93, 0x1a, 0x23, 0x2a, - 0xca, 0xd6, 0xbe, 0xa9, 0xd4, 0x57, 0x5f, 0xe0, 0x27, 0x5e, 0x2f, 0x7e, 0x0a, 0x6f, 0xf8, 0xf4, - 0x53, 0x5f, 0xf7, 0xbe, 0x40, 0x0c, 0xd8, 0x4b, 0x79, 0x9d, 0x3e, 0x6d, 0x37, 0x7b, 0xc1, 0xa9, - 0xaf, 0x79, 0x41, 0x20, 0x3d, 0x20, 0x0b, 0x03, 0xf8, 0x64, 0xfd, 0x7b, 0x4e, 0xfd, 0x1d, 0x2f, - 0x0b, 0x89, 0xd7, 0x0b, 0x35, 0xc2, 0x66, 0x8f, 0x3b, 0xf5, 0x35, 0x0f, 0x0f, 0xe4, 0x53, 0xc8, - 0xbd, 0xb4, 0x87, 0x43, 0x72, 0x7f, 0x56, 0x0f, 0xc9, 0xb9, 0xbe, 0x4c, 0xf8, 0x26, 0x8f, 0x8d, - 0x9f, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x4c, 0xa8, 0x21, 0x1d, 0xca, 0x1c, 0x00, 0x00, + 0x46, 0xee, 0x39, 0xe4, 0x90, 0x9a, 0x06, 0x40, 0x80, 0x7f, 0x26, 0xcb, 0xa9, 0xdd, 0xe4, 0xb0, + 0x27, 0x72, 0x7a, 0xba, 0xbf, 0xe9, 0x99, 0x9e, 0xfe, 0xa6, 0x31, 0x03, 0x7b, 0x43, 0x66, 0x5a, + 0x37, 0xb6, 0x7b, 0x74, 0xf7, 0xec, 0xc8, 0x18, 0x19, 0x83, 0x7b, 0xdf, 0xea, 0x1e, 0x3a, 0xae, + 0xed, 0xdb, 0xa4, 0x14, 0x76, 0x61, 0xab, 0xb6, 0xdb, 0xb3, 0xed, 0xde, 0x80, 0x1d, 0xb9, 0x4e, + 0xf7, 0xc8, 0xf3, 0x0d, 0x7f, 0xec, 0x05, 0x6a, 0xf5, 0x7f, 0xe5, 0xa0, 0x70, 0xca, 0x7c, 0xd6, + 0xf5, 0x2d, 0x7b, 0x44, 0x0e, 0x20, 0x1b, 0xf4, 0x56, 0x85, 0x7d, 0xe1, 0x69, 0xf1, 0x98, 0x1c, + 0x06, 0x76, 0x87, 0xae, 0xd3, 0x3d, 0xec, 0x60, 0x0f, 0x0d, 0x35, 0xc8, 0x01, 0x6c, 0x79, 0xbe, + 0xe1, 0xfa, 0xba, 0x6f, 0x0d, 0x99, 0x3e, 0xb4, 0x06, 0x03, 0xcb, 0xab, 0xa6, 0xf6, 0x85, 0xa7, + 0x69, 0x5a, 0xc1, 0x0e, 0xcd, 0x1a, 0xb2, 0x4b, 0x14, 0x93, 0x27, 0x50, 0x61, 0x23, 0x73, 0x4a, + 0x33, 0x8d, 0x9a, 0x9b, 0x6c, 0x64, 0x26, 0xf4, 0x9a, 0xb0, 0x69, 0x0d, 0x7b, 0xfa, 0xd0, 0x18, + 0x59, 0x8e, 0xee, 0xb2, 0xb7, 0xd5, 0x22, 0xba, 0xf1, 0xe4, 0x30, 0x39, 0x99, 0x43, 0x65, 0x68, + 0xf4, 0xd8, 0x25, 0xd7, 0x19, 0x0f, 0x0c, 0xee, 0x37, 0x65, 0x6f, 0xc7, 0xcc, 0xf3, 0x2f, 0x1e, + 0xd0, 0xa2, 0x35, 0xec, 0x61, 0x0f, 0x65, 0x6f, 0x39, 0xda, 0x9d, 0x65, 0x26, 0xd0, 0x4a, 0x8b, + 0xd0, 0x5e, 0x59, 0x26, 0xb3, 0x97, 0xa0, 0xdd, 0x59, 0xe6, 0x04, 0xed, 0x02, 0xca, 0xdc, 0x37, + 0xcf, 0x19, 0x58, 0x5d, 0x86, 0x70, 0x9b, 0x08, 0xb7, 0xbf, 0xc0, 0xb9, 0x0e, 0x2a, 0xc5, 0x40, + 0x25, 0x6b, 0xd8, 0x9b, 0xc8, 0x08, 0x85, 0x2d, 0x8e, 0xd4, 0x35, 0x86, 0xfa, 0xd0, 0xf0, 0xbb, + 0x7d, 0x04, 0x2b, 0x23, 0xd8, 0x27, 0x0b, 0xc0, 0x1a, 0xc6, 0x90, 0xb9, 0xc6, 0x25, 0xd7, 0x8c, + 0x11, 0xb9, 0x2f, 0x0d, 0x63, 0x18, 0x49, 0x89, 0x0c, 0xa5, 0x10, 0xd3, 0x43, 0xb8, 0x0a, 0xc2, + 0xfd, 0x68, 0x29, 0x9c, 0x17, 0x43, 0x41, 0x00, 0xe5, 0x85, 0xae, 0xf1, 0x25, 0x9b, 0x76, 0x4d, + 0x5c, 0xe4, 0x1a, 0x2e, 0xdb, 0x62, 0xd7, 0xee, 0x2c, 0x33, 0xe9, 0xda, 0xaf, 0xa1, 0x30, 0x09, + 0x6a, 0x75, 0x1b, 0xb1, 0x3e, 0x5e, 0x11, 0xd0, 0x0b, 0x81, 0xe6, 0xa3, 0x48, 0x72, 0xfb, 0x49, + 0x18, 0xab, 0x3b, 0x8b, 0xec, 0xe7, 0x42, 0xc8, 0xed, 0xa3, 0xd8, 0x91, 0x2f, 0x01, 0xe2, 0xc0, + 0x55, 0x77, 0x11, 0x60, 0x6f, 0x69, 0xd0, 0x2e, 0x04, 0x5a, 0x98, 0x44, 0x8b, 0x9c, 0x06, 0x1b, + 0x72, 0xb2, 0x1e, 0xd5, 0x2a, 0x9a, 0x7f, 0xf4, 0xee, 0x30, 0x5d, 0x08, 0xb8, 0x11, 0xa3, 0x45, + 0x20, 0xcf, 0x21, 0x1f, 0x05, 0xa7, 0xba, 0x87, 0x00, 0xb5, 0xe5, 0x81, 0xb9, 0x10, 0x68, 0x2e, + 0x8c, 0x08, 0x1f, 0x7e, 0x2a, 0x1c, 0xd5, 0xda, 0xa2, 0xe1, 0x67, 0x43, 0xc1, 0x87, 0x4f, 0xc4, + 0xe0, 0xa4, 0x00, 0x39, 0x37, 0x88, 0xce, 0x09, 0x40, 0xde, 0x65, 0x9e, 0x63, 0x8f, 0x3c, 0x56, + 0xff, 0xb3, 0x00, 0x44, 0x1a, 0x8d, 0x6c, 0xdf, 0xf0, 0x99, 0x19, 0x73, 0x40, 0x19, 0x52, 0x96, + 0x89, 0xf9, 0x5f, 0xa0, 0x29, 0xcb, 0x24, 0x55, 0xc8, 0xdd, 0x31, 0xd7, 0xb3, 0xec, 0x11, 0x66, + 0x77, 0x81, 0x46, 0x4d, 0xf2, 0x0b, 0x28, 0x98, 0x91, 0x19, 0xe6, 0x73, 0xf1, 0x78, 0x77, 0xda, + 0xb3, 0x09, 0x2a, 0x8d, 0x35, 0xc9, 0xc7, 0x50, 0x8c, 0xb8, 0x4a, 0xb7, 0xcc, 0x6a, 0x06, 0x41, + 0x21, 0x12, 0x29, 0x66, 0xfd, 0x0c, 0xf2, 0x94, 0x79, 0xf6, 0xd8, 0xed, 0x32, 0x22, 0x42, 0x7a, + 0xec, 0x5a, 0xa1, 0x3b, 0xfc, 0x2f, 0x21, 0x90, 0xf1, 0xef, 0x1d, 0x16, 0x3a, 0x83, 0xff, 0xc9, + 0x23, 0xd8, 0x18, 0xd9, 0x3e, 0x0b, 0x58, 0xa5, 0x40, 0x83, 0x46, 0xfd, 0x18, 0xf2, 0xca, 0xc8, + 0xa7, 0xc6, 0xa8, 0x87, 0x1a, 0x48, 0x4a, 0x88, 0xb4, 0x41, 0x83, 0x06, 0x47, 0x67, 0x23, 0x13, + 0xa1, 0x36, 0x28, 0xff, 0x5b, 0xd7, 0xa0, 0xdc, 0xe9, 0xda, 0x2e, 0x33, 0x27, 0x96, 0x3f, 0x83, + 0x0d, 0x97, 0xff, 0x09, 0x29, 0x71, 0x67, 0x26, 0x72, 0xa1, 0x1a, 0x0d, 0x94, 0x70, 0x1c, 0x6e, + 0x8f, 0x98, 0x02, 0x0d, 0x1a, 0xf5, 0x3e, 0x94, 0x2e, 0x0d, 0xef, 0xf6, 0x3d, 0x31, 0x0f, 0x20, + 0x33, 0x34, 0xbc, 0x5b, 0x84, 0x9c, 0x53, 0x8e, 0x56, 0x8a, 0xa2, 0x4e, 0xfd, 0x33, 0x80, 0xb3, + 0x81, 0x6d, 0x2c, 0x9a, 0xb5, 0xb0, 0x60, 0xd6, 0x42, 0x30, 0xeb, 0xaf, 0x41, 0x0c, 0x66, 0x9d, + 0xb0, 0x3d, 0x9c, 0xf6, 0xb1, 0x3a, 0x3d, 0x6c, 0xac, 0xf8, 0xee, 0x99, 0x7f, 0x23, 0xc0, 0x16, + 0xee, 0xee, 0xa6, 0xdd, 0x35, 0x06, 0xd6, 0x1f, 0x8c, 0xf0, 0x9c, 0x09, 0x66, 0x24, 0xac, 0x9e, + 0x11, 0x79, 0x0e, 0x45, 0xfe, 0xab, 0xdb, 0x8e, 0x6f, 0x8f, 0xfd, 0x15, 0x8b, 0x00, 0x5c, 0x55, + 0x45, 0x4d, 0xf2, 0x09, 0x94, 0xd1, 0xd0, 0xef, 0xbb, 0xcc, 0xeb, 0xdb, 0x03, 0x13, 0x77, 0x87, + 0x40, 0x37, 0xb9, 0x54, 0x8b, 0x84, 0xf5, 0x6f, 0x33, 0xa1, 0x87, 0x49, 0x02, 0x89, 0x67, 0x23, + 0x24, 0x66, 0x43, 0x1a, 0x90, 0xbd, 0x31, 0xba, 0xcc, 0xf7, 0xaa, 0xb0, 0x9f, 0x7e, 0x5a, 0x3c, + 0xfe, 0xe9, 0x0a, 0x1e, 0x3b, 0x3c, 0x43, 0x6d, 0x79, 0xe4, 0xbb, 0xf7, 0x34, 0x34, 0x25, 0x1f, + 0x01, 0x74, 0xed, 0xd1, 0x8d, 0x65, 0xb2, 0x51, 0x37, 0x5a, 0xad, 0x84, 0x84, 0xfb, 0xdd, 0x37, + 0x3c, 0x3d, 0xa1, 0x53, 0xd8, 0x17, 0x9e, 0xe6, 0xe9, 0x66, 0xdf, 0xf0, 0x1a, 0xb1, 0xda, 0x33, + 0xc8, 0xd9, 0x8e, 0xaf, 0xf3, 0x35, 0xe1, 0xf3, 0x2a, 0xcf, 0x46, 0x48, 0x75, 0x7c, 0x75, 0xec, + 0x6b, 0xf7, 0x0e, 0xa3, 0x59, 0x1b, 0xff, 0x93, 0x7d, 0x28, 0xb2, 0xdf, 0x3b, 0x03, 0x63, 0x84, + 0xce, 0x85, 0x99, 0x97, 0x14, 0x91, 0x06, 0x94, 0x06, 0x89, 0x40, 0x55, 0x37, 0x96, 0xd2, 0x75, + 0x32, 0x9e, 0x74, 0xca, 0x88, 0xfc, 0x06, 0x8a, 0x9e, 0xc3, 0xba, 0xd6, 0x8d, 0xd5, 0xb5, 0xfc, + 0xfb, 0x6a, 0x16, 0xbd, 0xfb, 0x70, 0x1a, 0xa3, 0x13, 0x2b, 0xa0, 0x8b, 0x49, 0x0b, 0xf2, 0x12, + 0xb6, 0x86, 0x89, 0x55, 0xd4, 0x31, 0xdf, 0x73, 0xfb, 0xe9, 0xa7, 0xe5, 0x59, 0xea, 0x4b, 0x2e, + 0x36, 0xe2, 0x88, 0xc3, 0x19, 0x09, 0xf9, 0x1c, 0xc0, 0x1b, 0x3b, 0xce, 0x80, 0x0d, 0xd9, 0xc8, + 0xaf, 0xe6, 0x31, 0x6e, 0x4b, 0xb7, 0x4f, 0xac, 0x59, 0x7b, 0x01, 0xc5, 0x44, 0xf4, 0x78, 0xd2, + 0xdc, 0xb2, 0xfb, 0x88, 0x88, 0x6e, 0xd9, 0x3d, 0xdf, 0x22, 0x77, 0xc6, 0x60, 0x3c, 0xd9, 0xf0, + 0xd8, 0xf8, 0x32, 0xf5, 0x85, 0x50, 0xff, 0xab, 0x00, 0xd5, 0x65, 0x45, 0x0a, 0xf9, 0x10, 0x20, + 0x64, 0x63, 0x7d, 0xc2, 0xb3, 0x85, 0x50, 0xa2, 0x98, 0x9c, 0x1a, 0x2c, 0x6e, 0xba, 0x62, 0xa3, + 0x07, 0x4a, 0x64, 0x17, 0x72, 0xf6, 0xd8, 0xd7, 0x4d, 0xcb, 0x0d, 0xa9, 0x2f, 0x6b, 0x8f, 0xfd, + 0x53, 0xcb, 0x25, 0xfb, 0x50, 0xea, 0x3b, 0xba, 0xc9, 0xee, 0x78, 0xb1, 0x12, 0xb3, 0x6c, 0xdf, + 0x39, 0x45, 0x91, 0x62, 0xd6, 0xbf, 0x4d, 0xc3, 0x16, 0x9e, 0x1c, 0x53, 0x99, 0x29, 0x43, 0xe5, + 0xc6, 0x35, 0x86, 0x4c, 0x8f, 0x99, 0x5d, 0xc0, 0x25, 0xfb, 0x60, 0x26, 0x7e, 0x53, 0x24, 0x49, + 0xcb, 0x68, 0x14, 0x1f, 0x22, 0x2f, 0xa0, 0x14, 0xc0, 0x4c, 0xb2, 0x36, 0xfd, 0x0e, 0x9e, 0x2b, + 0xa2, 0x6e, 0x98, 0xb6, 0xe7, 0x50, 0x31, 0xc6, 0xa6, 0x65, 0xeb, 0xc9, 0xb3, 0x25, 0x3d, 0x7f, + 0xea, 0xcd, 0x12, 0x16, 0x2d, 0xa3, 0x59, 0xec, 0xc3, 0x2f, 0xa1, 0x14, 0x00, 0x85, 0x3e, 0x64, + 0x10, 0x65, 0x39, 0x8f, 0x15, 0x51, 0x3b, 0xf4, 0xe2, 0x05, 0xc0, 0x1d, 0x5f, 0x1c, 0x1d, 0x79, + 0x6a, 0x03, 0x4d, 0x6b, 0xb3, 0x7b, 0x2f, 0x66, 0x74, 0x5a, 0xb8, 0x0b, 0x6a, 0x10, 0xef, 0x96, + 0x9c, 0x61, 0x0d, 0x15, 0x9a, 0x46, 0x83, 0x67, 0x57, 0x22, 0x54, 0x26, 0x08, 0xa1, 0x0b, 0x9f, + 0xc2, 0xa3, 0x04, 0x4e, 0xcc, 0x62, 0x39, 0xdc, 0x6e, 0x64, 0xa2, 0x1e, 0x53, 0xd9, 0x3f, 0x32, + 0x61, 0x48, 0xff, 0x7b, 0x2a, 0x9b, 0x83, 0xf9, 0x2e, 0xa9, 0xec, 0xf3, 0x24, 0x95, 0xa5, 0xe7, + 0xc9, 0x02, 0x9d, 0xf9, 0xee, 0xf8, 0x6c, 0x2e, 0x0b, 0x7e, 0xe0, 0xb3, 0x69, 0x3e, 0xfb, 0x7b, + 0x0a, 0xaa, 0xcb, 0x3e, 0x93, 0xd6, 0xe0, 0x33, 0xdc, 0xa9, 0xab, 0xf8, 0x0c, 0x95, 0xd6, 0xe7, + 0xb3, 0xc2, 0x2c, 0x9f, 0xf1, 0xbd, 0x76, 0xcb, 0x98, 0xa3, 0xff, 0xce, 0x76, 0x6f, 0x3d, 0xc7, + 0xe8, 0x32, 0xdc, 0x0f, 0x79, 0xba, 0xc9, 0xa5, 0xaf, 0x23, 0x21, 0x77, 0xd7, 0xbb, 0xb5, 0x1c, + 0x1d, 0x93, 0x1d, 0xf7, 0x43, 0x9e, 0x16, 0xb8, 0x44, 0xe2, 0x02, 0x5e, 0x9c, 0x62, 0xf7, 0x9d, + 0xe5, 0x8d, 0x8d, 0x01, 0xc6, 0x3a, 0x4f, 0xd1, 0xe2, 0x15, 0x4a, 0xc8, 0x8f, 0xa1, 0x62, 0xb2, + 0xeb, 0x71, 0x4f, 0x77, 0x43, 0xd7, 0x3d, 0x4c, 0xc8, 0x3c, 0x2d, 0xa3, 0x38, 0x9a, 0x90, 0xc7, + 0xa7, 0xd2, 0x73, 0xc6, 0xba, 0xed, 0x9a, 0xd5, 0x3c, 0xd6, 0x97, 0xd9, 0x9e, 0x33, 0x56, 0x5d, + 0xb3, 0xfe, 0xef, 0x14, 0x64, 0x9a, 0xd6, 0xe8, 0x96, 0xec, 0x41, 0xfe, 0xc6, 0xb5, 0x87, 0x7a, + 0x5c, 0xe0, 0xe6, 0x78, 0xfb, 0xca, 0xb5, 0xc8, 0x36, 0x64, 0x7d, 0x1b, 0x3b, 0x82, 0x32, 0x77, + 0xc3, 0xb7, 0xb9, 0x78, 0x92, 0xca, 0xe9, 0x64, 0x2a, 0x4f, 0x67, 0x61, 0xe6, 0x7d, 0xb3, 0xf0, + 0x57, 0x50, 0x40, 0x77, 0x42, 0xc6, 0x5b, 0xeb, 0xe0, 0xc7, 0x09, 0x20, 0xeb, 0x7d, 0x01, 0x39, + 0x3f, 0x64, 0xcb, 0xec, 0x7a, 0xb6, 0x59, 0x3f, 0xe0, 0xcb, 0x99, 0x2c, 0xce, 0xcd, 0x67, 0xf1, + 0xc2, 0xfc, 0xc9, 0xbf, 0x5f, 0xfe, 0xd4, 0xfb, 0x50, 0x4c, 0x7c, 0xee, 0x25, 0xcb, 0x28, 0x61, + 0xcd, 0x32, 0xea, 0x09, 0x64, 0x06, 0xd6, 0x28, 0xaa, 0xc7, 0xc9, 0xb4, 0x3e, 0x8f, 0x2c, 0xc5, + 0xfe, 0xfa, 0xdf, 0x04, 0x20, 0xf3, 0xd7, 0x01, 0xab, 0x12, 0xe6, 0x39, 0x14, 0x1d, 0xd7, 0xbe, + 0x66, 0xfa, 0x3a, 0x65, 0x00, 0xa0, 0x2a, 0x0e, 0xc2, 0x0d, 0x4d, 0x7b, 0x64, 0xbb, 0xa1, 0x61, + 0xfa, 0xdd, 0x86, 0xa8, 0xaa, 0xcc, 0x16, 0x11, 0x99, 0x64, 0xd2, 0xd5, 0xff, 0x94, 0x02, 0x71, + 0xf6, 0xdb, 0x76, 0xc9, 0x71, 0xf2, 0x18, 0x0a, 0x7c, 0x8f, 0xc5, 0x5f, 0x00, 0x79, 0x9a, 0xef, + 0x1b, 0x1e, 0x1e, 0xd2, 0xb3, 0x11, 0x4e, 0xaf, 0xe6, 0xe9, 0xcc, 0xfb, 0xd4, 0x9d, 0x3f, 0x01, + 0x91, 0xfb, 0x30, 0x47, 0xf8, 0x79, 0x5a, 0xe9, 0x1b, 0xde, 0x54, 0x99, 0x33, 0x4d, 0xa2, 0xd9, + 0x75, 0x49, 0xb4, 0xfe, 0x17, 0x01, 0x76, 0x97, 0x5c, 0xca, 0xac, 0x8a, 0x6b, 0x62, 0x95, 0x53, + 0x53, 0xd4, 0x36, 0xa9, 0xf8, 0xd2, 0xeb, 0x54, 0x7c, 0x8f, 0xa1, 0xd0, 0xc5, 0xb1, 0xe3, 0xaa, + 0x2e, 0x1f, 0x08, 0x14, 0x13, 0x03, 0x36, 0x7b, 0x1b, 0xf0, 0x3f, 0x0c, 0xd8, 0xaa, 0x83, 0xf5, + 0x7b, 0x0a, 0xd8, 0x92, 0xab, 0xaa, 0xff, 0x87, 0x80, 0x5d, 0x43, 0x31, 0x70, 0xac, 0x13, 0x05, + 0x25, 0xd6, 0x15, 0xa6, 0x75, 0x17, 0x7f, 0x60, 0xaf, 0x0e, 0x55, 0xbd, 0x0b, 0xa5, 0xe4, 0xfd, + 0x12, 0x79, 0x06, 0x59, 0x34, 0xf5, 0xc2, 0xca, 0x7e, 0xe6, 0x2e, 0x2c, 0xe1, 0x0f, 0x0d, 0x15, + 0x67, 0x07, 0x49, 0xcd, 0x0f, 0xf2, 0x47, 0x78, 0xb8, 0xe0, 0x76, 0xf1, 0xfb, 0x59, 0xe2, 0x7a, + 0x0e, 0x36, 0xe4, 0xa1, 0xe3, 0xdf, 0x1f, 0x7c, 0x93, 0x01, 0x71, 0xf6, 0x08, 0x20, 0x5b, 0xb0, + 0x79, 0x29, 0xb5, 0x94, 0xb6, 0x7e, 0xd5, 0x7a, 0xd9, 0x52, 0x5f, 0xb7, 0xc4, 0x07, 0x44, 0x84, + 0x52, 0x20, 0x3a, 0x53, 0x9a, 0x9a, 0x4c, 0x45, 0x81, 0xec, 0x00, 0x09, 0x24, 0xd2, 0xe9, 0x57, + 0x57, 0x1d, 0x4d, 0x6f, 0xa8, 0x4d, 0x95, 0x8a, 0xa9, 0x58, 0x93, 0xca, 0x97, 0xea, 0x2b, 0x59, + 0x4c, 0x93, 0x0f, 0xa0, 0x1a, 0x48, 0x1a, 0x6a, 0x4b, 0x93, 0x5b, 0x9a, 0x2e, 0xbd, 0x96, 0xa8, + 0xcc, 0x91, 0x9a, 0x62, 0x86, 0xec, 0xc1, 0x76, 0xd0, 0xdb, 0x96, 0x94, 0x96, 0x76, 0x42, 0xaf, + 0x3a, 0x17, 0xba, 0xa6, 0xaa, 0x4d, 0x71, 0x83, 0x3c, 0x02, 0x31, 0xea, 0xd2, 0x1a, 0xa1, 0x34, + 0x4b, 0xca, 0x00, 0x81, 0xf4, 0xa4, 0x79, 0x45, 0xc5, 0x5c, 0x3c, 0x60, 0xa7, 0xdd, 0x54, 0x1a, + 0xb2, 0x98, 0x27, 0x15, 0x28, 0x86, 0x03, 0x36, 0xd5, 0x96, 0x2c, 0x16, 0x62, 0x93, 0x06, 0x55, + 0xdb, 0x22, 0xc4, 0xed, 0xb3, 0xa6, 0xd2, 0x16, 0x8b, 0x49, 0x9f, 0x3b, 0xca, 0x1b, 0x59, 0x2c, + 0xc5, 0xb3, 0xeb, 0xc8, 0xd2, 0xa5, 0xde, 0x90, 0xe8, 0x2b, 0xa5, 0x75, 0x2e, 0x6e, 0x26, 0x34, + 0x55, 0x4d, 0xd2, 0x64, 0xb1, 0x1c, 0x63, 0x75, 0x5e, 0xca, 0xaf, 0xc5, 0x4a, 0xdc, 0x7e, 0x2d, + 0xd1, 0xb6, 0x28, 0x12, 0x02, 0xe5, 0xa0, 0x7d, 0x29, 0x6b, 0xd2, 0xa9, 0xa4, 0x49, 0xe2, 0x16, + 0xd9, 0x85, 0x87, 0xe1, 0xda, 0xb5, 0x34, 0xe5, 0x4c, 0xa5, 0x72, 0xab, 0xa3, 0x34, 0x3a, 0x22, + 0x89, 0x17, 0x43, 0xb9, 0x94, 0xce, 0x65, 0x9d, 0xca, 0x0d, 0xa9, 0xad, 0x5d, 0x51, 0x59, 0x7c, + 0x48, 0x36, 0xa1, 0x10, 0xce, 0xe1, 0x5c, 0x11, 0x1f, 0xc5, 0x9a, 0x67, 0x54, 0xba, 0x94, 0x75, + 0xa5, 0xd5, 0x91, 0xa9, 0xa6, 0xa8, 0x2d, 0x71, 0x3b, 0x5e, 0xb6, 0xa0, 0xeb, 0x94, 0xcf, 0x79, + 0x27, 0x5e, 0x14, 0xe9, 0xea, 0x54, 0x51, 0xc5, 0xdd, 0x58, 0xed, 0x54, 0xbd, 0x3a, 0x69, 0xca, + 0xfa, 0x57, 0xed, 0x73, 0xb1, 0x1a, 0xab, 0xa9, 0xda, 0x85, 0x4c, 0xc5, 0xbd, 0x03, 0x0d, 0x2a, + 0x33, 0xa5, 0x3a, 0xd7, 0xe9, 0xb4, 0xe5, 0x86, 0x7e, 0xde, 0x54, 0x4f, 0xa4, 0xa6, 0xf8, 0x80, + 0xfb, 0x86, 0x02, 0x3e, 0xa0, 0x28, 0xf0, 0x25, 0xc0, 0x66, 0x5b, 0xf9, 0x5a, 0x6e, 0x8a, 0x29, + 0xbe, 0x9f, 0xb0, 0x3d, 0x59, 0x81, 0xf4, 0xc1, 0x6f, 0x01, 0xe2, 0x3a, 0x81, 0xaf, 0xaa, 0xda, + 0xd6, 0x74, 0xf5, 0x4a, 0xd3, 0x5b, 0x3c, 0x62, 0x0f, 0xf8, 0x10, 0x91, 0x44, 0x6a, 0x36, 0x45, + 0x81, 0x6c, 0xc3, 0x56, 0x24, 0x38, 0x95, 0x35, 0xb9, 0x81, 0x73, 0x4d, 0x91, 0x2a, 0x3c, 0x8a, + 0xc4, 0x4d, 0xb5, 0x21, 0x35, 0x95, 0x37, 0x12, 0xf6, 0xa4, 0x0f, 0x18, 0x54, 0x66, 0xbe, 0x82, + 0xc8, 0x63, 0xd8, 0x7d, 0xa5, 0x9c, 0xca, 0xaa, 0x3e, 0x8f, 0xf4, 0x80, 0xd4, 0x60, 0x67, 0xba, + 0x53, 0x93, 0x2f, 0xdb, 0x2a, 0x95, 0xf8, 0xe0, 0x7b, 0xb0, 0x3d, 0xdd, 0xd7, 0x69, 0x4b, 0x9a, + 0x22, 0x35, 0xc5, 0xd4, 0xf1, 0x3f, 0x33, 0x90, 0x97, 0xc2, 0x9b, 0x58, 0x72, 0x0d, 0xbb, 0xc1, + 0xd7, 0xf4, 0xfc, 0xf5, 0xd8, 0x9a, 0x2f, 0x32, 0xb5, 0x55, 0x17, 0xfd, 0xa4, 0x0d, 0x5b, 0x89, + 0x31, 0xc2, 0x9a, 0x6c, 0xe5, 0x93, 0x4a, 0x6d, 0xf9, 0xfd, 0x7d, 0xec, 0xf5, 0xfc, 0x97, 0xf0, + 0x9a, 0x2f, 0x3f, 0xb5, 0x55, 0xcf, 0x0b, 0x44, 0x87, 0x9d, 0x84, 0xd7, 0xc9, 0xc3, 0x76, 0xbd, + 0x07, 0x9c, 0xda, 0x8a, 0x07, 0x04, 0xd2, 0x01, 0x32, 0x37, 0x80, 0x47, 0x56, 0x3f, 0xe7, 0xd4, + 0xde, 0xf1, 0xb0, 0x10, 0x7b, 0x3d, 0x57, 0x22, 0xac, 0xf7, 0xb6, 0x53, 0x5b, 0xf1, 0xee, 0x40, + 0x3e, 0x85, 0xcc, 0x4b, 0x6b, 0x30, 0x20, 0x0f, 0xa7, 0xf5, 0x90, 0x9b, 0x6b, 0x8b, 0x84, 0x27, + 0x9f, 0xbd, 0x39, 0xee, 0x59, 0x7e, 0x7f, 0x7c, 0x7d, 0xd8, 0xb5, 0x87, 0x47, 0x5c, 0xc1, 0xb8, + 0xb1, 0x5d, 0x36, 0xf2, 0xac, 0xae, 0x77, 0x14, 0x3d, 0x6e, 0x3a, 0xb7, 0xbd, 0xa3, 0xa4, 0xed, + 0x75, 0x16, 0x7f, 0x7e, 0xfe, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0xf3, 0xf0, 0x76, 0xff, + 0x1c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/pkg/mediforproto/fusion.pb.go b/pkg/mediforproto/fusion.pb.go index b8ba795..6308855 100644 --- a/pkg/mediforproto/fusion.pb.go +++ b/pkg/mediforproto/fusion.pb.go @@ -906,60 +906,63 @@ func init() { func init() { proto.RegisterFile("medifor/v1/fusion.proto", fileDescriptor_9c3d6925c8af5682) } var fileDescriptor_9c3d6925c8af5682 = []byte{ - // 848 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdd, 0x4e, 0xdb, 0x48, - 0x14, 0x5e, 0x87, 0x10, 0xc8, 0x09, 0x04, 0x31, 0x0b, 0xc4, 0x78, 0x97, 0xdd, 0x28, 0xda, 0xa5, - 0x01, 0xa9, 0x49, 0x1b, 0xee, 0x7a, 0x51, 0x89, 0x5f, 0x85, 0xd2, 0x48, 0xc8, 0x54, 0xdc, 0x5a, - 0xd3, 0x78, 0x48, 0x47, 0xf5, 0xd8, 0xc1, 0x9e, 0xa4, 0x42, 0x7d, 0x81, 0xde, 0xf7, 0x01, 0xfa, - 0x80, 0x7d, 0x83, 0x5e, 0x55, 0x1e, 0x3b, 0x89, 0x27, 0xb6, 0xe3, 0x04, 0xda, 0x4b, 0xcf, 0x9c, - 0xf3, 0xf9, 0xf3, 0xf7, 0x9d, 0x1f, 0x43, 0x85, 0x11, 0x93, 0xde, 0x39, 0x6e, 0x73, 0xf8, 0xb2, - 0x79, 0x37, 0xf0, 0xa8, 0x63, 0x37, 0xfa, 0xae, 0xc3, 0x1d, 0xb4, 0x16, 0x5e, 0x88, 0x27, 0xad, - 0xd2, 0x73, 0x9c, 0x9e, 0x45, 0x9a, 0x6e, 0xbf, 0xdb, 0xf4, 0x38, 0xe6, 0x03, 0x2f, 0x08, 0xd3, - 0x76, 0x23, 0xf9, 0xd8, 0xc6, 0xd6, 0x03, 0xa7, 0xdd, 0xe0, 0xaa, 0xf6, 0x7d, 0x19, 0x0a, 0x17, - 0x02, 0x12, 0x1d, 0x42, 0x21, 0xc8, 0x52, 0x95, 0xaa, 0x52, 0x2f, 0xb5, 0x50, 0x23, 0xc0, 0x6b, - 0xb8, 0xfd, 0x6e, 0xe3, 0x46, 0xdc, 0xe8, 0x61, 0x04, 0x3a, 0x84, 0x4d, 0x8f, 0x63, 0x97, 0x1b, - 0x9c, 0x32, 0x62, 0x30, 0x6a, 0x59, 0xd4, 0x53, 0x73, 0x55, 0xa5, 0xbe, 0xa4, 0x6f, 0x88, 0x8b, - 0x77, 0x94, 0x91, 0x8e, 0x38, 0x46, 0xfb, 0xb0, 0x41, 0x6c, 0x53, 0x8a, 0x5c, 0x12, 0x91, 0xeb, - 0xc4, 0x36, 0x23, 0x71, 0xd7, 0xb0, 0x4e, 0x59, 0xcf, 0x60, 0xd8, 0xa6, 0x7d, 0xc3, 0x25, 0xf7, - 0x6a, 0x49, 0xd0, 0x38, 0x6c, 0x44, 0x3f, 0xb2, 0x71, 0x31, 0xf0, 0xc8, 0x25, 0xc3, 0x3d, 0xd2, - 0xf1, 0xe3, 0x06, 0x16, 0xe6, 0xd4, 0xb1, 0x75, 0x72, 0x3f, 0x20, 0x1e, 0x6f, 0xff, 0xa1, 0x97, - 0x28, 0xeb, 0x89, 0x1b, 0x9d, 0xdc, 0xfb, 0x88, 0x43, 0x6a, 0x46, 0x10, 0xd7, 0xd2, 0x10, 0x6f, - 0xa9, 0x49, 0x9c, 0x14, 0xc4, 0x21, 0x35, 0xc7, 0x88, 0x6f, 0xa1, 0xec, 0x73, 0xf4, 0xfa, 0x16, - 0xed, 0x12, 0x01, 0xb9, 0x2e, 0x20, 0xff, 0x4b, 0x21, 0x79, 0x23, 0x02, 0x27, 0x60, 0x6b, 0x94, - 0xf5, 0xc6, 0x67, 0xe8, 0x16, 0x36, 0x7d, 0xb4, 0x2e, 0x66, 0x06, 0xc3, 0xbc, 0xfb, 0x41, 0x00, - 0x96, 0x05, 0xe0, 0x41, 0x0a, 0xe0, 0x29, 0x66, 0xc4, 0xc5, 0x1d, 0x3f, 0x7a, 0x82, 0xea, 0x73, - 0x3a, 0xc5, 0x6c, 0x74, 0x8a, 0x5e, 0x43, 0x71, 0xac, 0xa4, 0xba, 0x2d, 0xf0, 0xfe, 0x95, 0xf1, - 0x62, 0x0a, 0xb6, 0x15, 0x7d, 0x75, 0x24, 0x9d, 0x9f, 0x3f, 0xd6, 0x4d, 0xdd, 0x49, 0xca, 0x8f, - 0xe9, 0xe5, 0xe7, 0x8f, 0x84, 0x42, 0xaf, 0x00, 0x26, 0x2a, 0xa9, 0x15, 0x01, 0xb0, 0x9b, 0x40, - 0x20, 0x50, 0xa2, 0xad, 0xe8, 0xc5, 0xb1, 0x2c, 0xe8, 0x2c, 0xa8, 0x82, 0xb1, 0x26, 0xaa, 0x2a, - 0xd2, 0xff, 0x49, 0x48, 0x8f, 0x68, 0xd1, 0x56, 0x84, 0xf3, 0x23, 0x11, 0x4e, 0x8a, 0xb0, 0xe2, - 0x06, 0xf2, 0x9c, 0x00, 0xac, 0xba, 0xc4, 0xeb, 0x3b, 0xb6, 0x47, 0x6a, 0x9f, 0x41, 0x3b, 0xb6, - 0x6d, 0x87, 0x63, 0x4e, 0xcc, 0x98, 0x04, 0xa8, 0x0c, 0x39, 0x6a, 0x8a, 0xe2, 0x2f, 0xea, 0x39, - 0x6a, 0x22, 0x15, 0x56, 0x86, 0xc4, 0xf5, 0x7b, 0x43, 0x94, 0x76, 0x51, 0x1f, 0x3d, 0xa2, 0x23, - 0xc8, 0x9b, 0x98, 0x63, 0x51, 0xc7, 0xd9, 0xda, 0xea, 0x22, 0xb8, 0xf6, 0x25, 0x07, 0x7f, 0xcf, - 0xaa, 0x5e, 0xb4, 0x07, 0x10, 0x92, 0x36, 0xc6, 0x3c, 0x8a, 0xe1, 0xc9, 0xa5, 0x89, 0x2a, 0xb0, - 0xe2, 0x0c, 0xb8, 0x61, 0x52, 0x37, 0xa4, 0x53, 0x70, 0x06, 0xfc, 0x8c, 0xba, 0xe8, 0xcd, 0x74, - 0xe3, 0x04, 0xb4, 0xf6, 0xb3, 0x68, 0x05, 0xc8, 0x72, 0xcb, 0x9c, 0x47, 0x4b, 0x27, 0x5f, 0x5d, - 0xaa, 0x97, 0x5a, 0x75, 0x19, 0x27, 0x5d, 0xc0, 0x48, 0x05, 0xed, 0x01, 0x7c, 0xc2, 0x36, 0x37, - 0x18, 0xf6, 0x3e, 0x7a, 0xea, 0x72, 0x55, 0xa9, 0xaf, 0xea, 0x45, 0xff, 0xa4, 0xe3, 0x1f, 0x48, - 0x3e, 0xc4, 0x4a, 0xe9, 0x57, 0xf9, 0x10, 0xef, 0x69, 0xd9, 0x87, 0xb4, 0x9e, 0x7f, 0x8a, 0x0f, - 0xf2, 0xb8, 0x49, 0xf4, 0x21, 0xed, 0xb5, 0xf2, 0xa0, 0x39, 0x8f, 0xb6, 0xe0, 0x6c, 0x1f, 0xe2, - 0x80, 0x93, 0x4e, 0xcc, 0xf0, 0xc1, 0x81, 0x2d, 0xd9, 0xce, 0xb0, 0x09, 0xe7, 0x77, 0xe0, 0xb9, - 0xe4, 0x40, 0x7a, 0x93, 0x87, 0xda, 0xff, 0x50, 0x60, 0x27, 0x79, 0x38, 0x3e, 0x5a, 0xf5, 0x8b, - 0xd8, 0x48, 0x0e, 0xb8, 0x54, 0xd3, 0xb9, 0x84, 0x82, 0xcb, 0xc3, 0xf8, 0x58, 0x1a, 0x5a, 0x81, - 0xe4, 0xb5, 0x59, 0xa5, 0x1f, 0xa6, 0x46, 0x66, 0x57, 0x86, 0xda, 0x0f, 0xb0, 0x2b, 0x23, 0x44, - 0x06, 0xd8, 0x02, 0x92, 0xb7, 0x24, 0xc9, 0x33, 0x06, 0x63, 0xa8, 0xfb, 0xd7, 0x1c, 0xfc, 0x35, - 0x63, 0x87, 0x3c, 0x5a, 0xfc, 0xeb, 0xa4, 0x0d, 0x16, 0x10, 0xfb, 0x3f, 0x83, 0x58, 0x68, 0xc2, - 0xf4, 0xee, 0xba, 0x9a, 0x9e, 0xff, 0x81, 0x13, 0xcf, 0x66, 0x39, 0x11, 0x85, 0x8d, 0xae, 0x81, - 0x45, 0x0c, 0x11, 0x5d, 0xf4, 0x1b, 0x0c, 0x99, 0xc6, 0x9d, 0x32, 0x24, 0x76, 0xfd, 0x74, 0x43, - 0xfc, 0xb9, 0x31, 0x87, 0x21, 0x29, 0x6f, 0xd6, 0xcb, 0x43, 0x6a, 0x4e, 0x19, 0x22, 0x21, 0x66, - 0x18, 0x12, 0x83, 0x2d, 0x45, 0xf0, 0x32, 0x0c, 0x69, 0x7d, 0xcb, 0xc3, 0xb2, 0xaf, 0x8a, 0x8b, - 0x4c, 0xd8, 0x4e, 0xdc, 0x95, 0x68, 0x81, 0xdf, 0x41, 0x2d, 0x6b, 0x31, 0x23, 0x1d, 0x36, 0xa6, - 0xa6, 0x11, 0x9a, 0xeb, 0x4f, 0x4e, 0x4b, 0x1f, 0x74, 0x23, 0xe6, 0xf1, 0xb5, 0xb6, 0xc0, 0x6f, - 0xa7, 0x96, 0xb5, 0xca, 0x10, 0x86, 0xad, 0xa4, 0x7e, 0x46, 0xf3, 0xff, 0x37, 0x6a, 0x19, 0x93, - 0x63, 0xf4, 0x8a, 0x58, 0x63, 0x1c, 0xa4, 0x7c, 0x47, 0xf6, 0x2b, 0x62, 0x50, 0x2f, 0x20, 0x7f, - 0x45, 0x2d, 0x0b, 0xfd, 0x29, 0xc7, 0x9d, 0xb3, 0x3e, 0x7f, 0xd0, 0x92, 0x0e, 0xdf, 0x17, 0xc4, - 0xc3, 0xd1, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x24, 0xbc, 0xd2, 0xc1, 0x13, 0x0d, 0x00, 0x00, + // 886 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6e, 0xe3, 0x44, + 0x14, 0xc6, 0x69, 0x9a, 0x36, 0x27, 0x6d, 0xaa, 0x1d, 0x76, 0x37, 0xae, 0x61, 0x21, 0x8a, 0x60, + 0xc9, 0x56, 0x22, 0x81, 0x2c, 0x57, 0x5c, 0x20, 0x6d, 0x77, 0x5b, 0x65, 0x59, 0x22, 0xad, 0xbc, + 0xa8, 0x17, 0xdc, 0x58, 0x53, 0x7b, 0xea, 0x8e, 0xea, 0xb1, 0x5d, 0x7b, 0x1c, 0x54, 0xf1, 0x02, + 0xdc, 0xf3, 0x00, 0x3c, 0x20, 0x6f, 0xc0, 0x15, 0xf2, 0xd8, 0x4e, 0x3c, 0xb1, 0x1d, 0x27, 0x2d, + 0x7b, 0x55, 0x65, 0xe6, 0x9c, 0xcf, 0x9f, 0xbf, 0xef, 0xfc, 0xb8, 0xd0, 0x63, 0xc4, 0xa2, 0x57, + 0x5e, 0x30, 0x9e, 0x7f, 0x3f, 0xbe, 0x8a, 0x42, 0xea, 0xb9, 0x23, 0x3f, 0xf0, 0xb8, 0x87, 0x0e, + 0xd2, 0x0b, 0xf1, 0x4b, 0xeb, 0xd9, 0x9e, 0x67, 0x3b, 0x64, 0x1c, 0xf8, 0xe6, 0x38, 0xe4, 0x98, + 0x47, 0x61, 0x12, 0xa6, 0x1d, 0xe7, 0xf2, 0xb1, 0x8b, 0x9d, 0x3b, 0x4e, 0xcd, 0xe4, 0x6a, 0xf0, + 0xcf, 0x2e, 0xb4, 0xce, 0x05, 0x24, 0x3a, 0x81, 0x56, 0x92, 0xa5, 0x2a, 0x7d, 0x65, 0xd8, 0x99, + 0xa0, 0x51, 0x82, 0x37, 0x0a, 0x7c, 0x73, 0xf4, 0x41, 0xdc, 0xe8, 0x69, 0x04, 0x3a, 0x81, 0x47, + 0x21, 0xc7, 0x01, 0x37, 0x38, 0x65, 0xc4, 0x60, 0xd4, 0x71, 0x68, 0xa8, 0x36, 0xfa, 0xca, 0x70, + 0x47, 0x3f, 0x12, 0x17, 0xbf, 0x52, 0x46, 0x66, 0xe2, 0x18, 0x3d, 0x87, 0x23, 0xe2, 0x5a, 0x52, + 0xe4, 0x8e, 0x88, 0x3c, 0x24, 0xae, 0x95, 0x8b, 0x7b, 0x0f, 0x87, 0x94, 0xd9, 0x06, 0xc3, 0x2e, + 0xf5, 0x8d, 0x80, 0xdc, 0xaa, 0x1d, 0x41, 0xe3, 0x64, 0x94, 0x7f, 0xc9, 0xd1, 0x79, 0x14, 0x92, + 0xb7, 0x0c, 0xdb, 0x64, 0x16, 0xc7, 0x45, 0x0e, 0xe6, 0xd4, 0x73, 0x75, 0x72, 0x1b, 0x91, 0x90, + 0x4f, 0x3f, 0xd1, 0x3b, 0x94, 0xd9, 0xe2, 0x46, 0x27, 0xb7, 0x31, 0xe2, 0x9c, 0x5a, 0x39, 0xc4, + 0x83, 0x2a, 0xc4, 0x0b, 0x6a, 0x11, 0xaf, 0x02, 0x71, 0x4e, 0xad, 0x05, 0xe2, 0x2f, 0xd0, 0x8d, + 0x39, 0x86, 0xbe, 0x43, 0x4d, 0x22, 0x20, 0x0f, 0x05, 0xe4, 0x57, 0x15, 0x24, 0x3f, 0x88, 0xc0, + 0x25, 0xd8, 0x01, 0x65, 0xf6, 0xe2, 0x0c, 0x5d, 0xc0, 0xa3, 0x18, 0xcd, 0xc4, 0xcc, 0x60, 0x98, + 0x9b, 0xd7, 0x02, 0xb0, 0x2b, 0x00, 0x5f, 0x54, 0x00, 0xbe, 0xc6, 0x8c, 0x04, 0x78, 0x16, 0x47, + 0x2f, 0x51, 0x63, 0x4e, 0xaf, 0x31, 0xcb, 0x4e, 0xd1, 0x4f, 0xd0, 0x5e, 0x28, 0xa9, 0x3e, 0x11, + 0x78, 0x5f, 0xca, 0x78, 0x05, 0x05, 0xa7, 0x8a, 0xbe, 0x9f, 0x49, 0x17, 0xe7, 0x2f, 0x74, 0x53, + 0x9f, 0x96, 0xe5, 0x17, 0xf4, 0x8a, 0xf3, 0x33, 0xa1, 0xd0, 0x8f, 0x00, 0x4b, 0x95, 0xd4, 0x9e, + 0x00, 0x38, 0x2e, 0x21, 0x90, 0x28, 0x31, 0x55, 0xf4, 0xf6, 0x42, 0x16, 0xf4, 0x26, 0xa9, 0x82, + 0x85, 0x26, 0xaa, 0x2a, 0xd2, 0xbf, 0x28, 0x49, 0xcf, 0x69, 0x31, 0x55, 0x84, 0xf3, 0x99, 0x08, + 0xa7, 0x6d, 0xd8, 0x0b, 0x12, 0x79, 0x4e, 0x01, 0xf6, 0x03, 0x12, 0xfa, 0x9e, 0x1b, 0x92, 0xc1, + 0x1f, 0xa0, 0xbd, 0x72, 0x5d, 0x8f, 0x63, 0x4e, 0xac, 0x82, 0x04, 0xa8, 0x0b, 0x0d, 0x6a, 0x89, + 0xe2, 0x6f, 0xeb, 0x0d, 0x6a, 0x21, 0x15, 0xf6, 0xe6, 0x24, 0x88, 0x7b, 0x43, 0x94, 0x76, 0x5b, + 0xcf, 0x7e, 0xa2, 0x97, 0xd0, 0xb4, 0x30, 0xc7, 0xa2, 0x8e, 0xeb, 0xb5, 0xd5, 0x45, 0xf0, 0xe0, + 0xcf, 0x06, 0x7c, 0xbe, 0xae, 0x7a, 0xd1, 0x33, 0x80, 0x94, 0xb4, 0xb1, 0xe0, 0xd1, 0x4e, 0x4f, + 0xde, 0x5a, 0xa8, 0x07, 0x7b, 0x5e, 0xc4, 0x0d, 0x8b, 0x06, 0x29, 0x9d, 0x96, 0x17, 0xf1, 0x37, + 0x34, 0x40, 0x3f, 0xaf, 0x36, 0x4e, 0x42, 0xeb, 0x79, 0x1d, 0xad, 0x04, 0x59, 0x6e, 0x99, 0xb3, + 0x7c, 0xe9, 0x34, 0xfb, 0x3b, 0xc3, 0xce, 0x64, 0x28, 0xe3, 0x54, 0x0b, 0x98, 0xab, 0xa0, 0x67, + 0x00, 0xbf, 0x63, 0x97, 0x1b, 0x0c, 0x87, 0x37, 0xa1, 0xba, 0xdb, 0x57, 0x86, 0xfb, 0x7a, 0x3b, + 0x3e, 0x99, 0xc5, 0x07, 0x92, 0x0f, 0x85, 0x52, 0xfa, 0xbf, 0x7c, 0x28, 0xf6, 0xb4, 0xec, 0x43, + 0x55, 0xcf, 0x3f, 0xc4, 0x07, 0x79, 0xdc, 0x94, 0xfa, 0x50, 0xf5, 0x58, 0x79, 0xd0, 0x9c, 0xe5, + 0x5b, 0x70, 0xbd, 0x0f, 0x45, 0xc0, 0x65, 0x27, 0xd6, 0xf8, 0xe0, 0xc1, 0x63, 0xd9, 0xce, 0xb4, + 0x09, 0x37, 0x77, 0xe0, 0x5b, 0xc9, 0x81, 0xea, 0x26, 0x4f, 0xb5, 0xff, 0x57, 0x81, 0xa7, 0xe5, + 0xc3, 0xf1, 0xde, 0xaa, 0x9f, 0x17, 0x46, 0x72, 0xc2, 0xa5, 0x5f, 0xcd, 0x25, 0x15, 0x5c, 0x1e, + 0xc6, 0xaf, 0xa4, 0xa1, 0x95, 0x48, 0x3e, 0x58, 0x57, 0xfa, 0x69, 0x6a, 0x6e, 0x76, 0xd5, 0xa8, + 0x7d, 0x07, 0xc7, 0x32, 0x42, 0x6e, 0x80, 0x6d, 0x21, 0xf9, 0x44, 0x92, 0xbc, 0x66, 0x30, 0xa6, + 0xba, 0xff, 0xd5, 0x80, 0xcf, 0xd6, 0xec, 0x90, 0x7b, 0x8b, 0xff, 0xbe, 0x6c, 0x83, 0x25, 0xc4, + 0xbe, 0xae, 0x21, 0x96, 0x9a, 0xb0, 0xba, 0xbb, 0xde, 0xad, 0xce, 0xff, 0xc4, 0x89, 0x6f, 0xd6, + 0x39, 0x91, 0x87, 0xcd, 0xaf, 0x81, 0x6d, 0x0c, 0x11, 0x5d, 0xf4, 0x11, 0x0c, 0x59, 0xc5, 0x5d, + 0x31, 0xa4, 0x70, 0xfd, 0x70, 0x43, 0xe2, 0xb9, 0xb1, 0x81, 0x21, 0x15, 0x4f, 0xd6, 0xbb, 0x73, + 0x6a, 0xad, 0x18, 0x22, 0x21, 0xd6, 0x18, 0x52, 0x80, 0xed, 0xe4, 0xf0, 0x6a, 0x0c, 0x99, 0xfc, + 0xdd, 0x84, 0xdd, 0x58, 0x95, 0x00, 0x59, 0xf0, 0xa4, 0x74, 0x57, 0xa2, 0x2d, 0x3e, 0x07, 0xb5, + 0xba, 0xc5, 0x8c, 0x74, 0x38, 0x5a, 0x99, 0x46, 0x68, 0xa3, 0x2f, 0x39, 0xad, 0x7a, 0xd0, 0x65, + 0xcc, 0x8b, 0x6b, 0x6d, 0x8b, 0xcf, 0x4e, 0xad, 0x6e, 0x95, 0x21, 0x0c, 0x8f, 0xcb, 0xfa, 0x19, + 0x6d, 0xfe, 0xdd, 0xa8, 0xd5, 0x4c, 0x8e, 0xec, 0x11, 0x85, 0xc6, 0x78, 0x51, 0xf1, 0x1e, 0xf5, + 0x8f, 0x28, 0x40, 0x7d, 0x07, 0xcd, 0x77, 0xd4, 0x71, 0xd0, 0xa7, 0x72, 0xdc, 0x19, 0xf3, 0xf9, + 0x9d, 0x56, 0x76, 0x78, 0xfa, 0xc3, 0x6f, 0x13, 0x9b, 0xf2, 0xeb, 0xe8, 0x72, 0x64, 0x7a, 0x6c, + 0x1c, 0x07, 0xe0, 0x2b, 0x2f, 0x20, 0x6e, 0x48, 0xcd, 0x70, 0x9c, 0xfd, 0x9b, 0xe3, 0xdf, 0xd8, + 0xe3, 0x7c, 0xee, 0x65, 0x4b, 0xfc, 0x79, 0xf9, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcd, 0x53, + 0x4a, 0x96, 0x49, 0x0d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/pkg/mediforproto/kill.pb.go b/pkg/mediforproto/kill.pb.go index 0abb6af..5cf3419 100644 --- a/pkg/mediforproto/kill.pb.go +++ b/pkg/mediforproto/kill.pb.go @@ -27,15 +27,17 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("medifor/v1/kill.proto", fileDescriptor_d8c4e3e1b4a500bc) } var fileDescriptor_d8c4e3e1b4a500bc = []byte{ - // 126 bytes of a gzipped FileDescriptorProto + // 160 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcd, 0x4d, 0x4d, 0xc9, 0x4c, 0xcb, 0x2f, 0xd2, 0x2f, 0x33, 0xd4, 0xcf, 0xce, 0xcc, 0xc9, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x81, 0x0a, 0x83, 0x79, 0x52, 0x92, 0x48, 0x8a, 0x12, 0xf3, 0x12, 0x73, 0x2a, 0x4b, 0x32, 0x93, 0x21, 0x0a, 0x8d, 0x6c, 0xb8, 0x38, 0xbc, 0x33, 0x73, 0x72, 0x12, 0x93, 0x72, 0x52, 0x85, 0x0c, 0xb8, 0x58, 0x40, 0x6c, 0x21, 0x61, 0x3d, 0x64, 0xdd, 0x7a, 0xae, 0xb9, 0x05, - 0x25, 0x95, 0x52, 0xd8, 0x04, 0x9d, 0x54, 0xb9, 0x24, 0x92, 0xf3, 0x73, 0x91, 0x64, 0xd2, 0x8b, - 0x12, 0x73, 0x21, 0x26, 0x3b, 0x71, 0x82, 0xcc, 0x0a, 0x00, 0x31, 0x93, 0xd8, 0xc0, 0x22, 0xc6, - 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x67, 0x36, 0x42, 0x75, 0xad, 0x00, 0x00, 0x00, + 0x25, 0x95, 0x52, 0xd8, 0x04, 0x9d, 0x22, 0xb9, 0x24, 0x92, 0xf3, 0x73, 0x91, 0x64, 0xd2, 0x8b, + 0x12, 0x73, 0x21, 0x26, 0x3b, 0x71, 0x82, 0xcc, 0x0a, 0x00, 0x31, 0xa3, 0x8c, 0xd2, 0x33, 0x4b, + 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x6a, 0x13, 0xd3, 0xf2, 0x8b, 0x52, 0xf3, + 0x8a, 0x33, 0x93, 0x8b, 0xf5, 0x61, 0x2e, 0x2b, 0xc8, 0x4e, 0xd7, 0x47, 0xb6, 0x20, 0x89, 0x0d, + 0x4c, 0x19, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x86, 0x19, 0xbb, 0xe1, 0x00, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/pkg/mediforproto/pipeline.pb.go b/pkg/mediforproto/pipeline.pb.go index 14486c6..dcd9623 100644 --- a/pkg/mediforproto/pipeline.pb.go +++ b/pkg/mediforproto/pipeline.pb.go @@ -1604,132 +1604,134 @@ func init() { func init() { proto.RegisterFile("medifor/v1/pipeline.proto", fileDescriptor_49bc7aaef7d70e21) } var fileDescriptor_49bc7aaef7d70e21 = []byte{ - // 1986 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0x4f, 0x73, 0xdb, 0xc6, - 0x15, 0x0f, 0x40, 0x51, 0x22, 0x1e, 0x29, 0x89, 0x5e, 0x49, 0x16, 0x4c, 0xc5, 0xb1, 0xc2, 0x34, - 0x8d, 0xaa, 0x89, 0xe5, 0x58, 0x6d, 0x9c, 0xa4, 0x4e, 0x32, 0xa6, 0x44, 0x50, 0xe2, 0x98, 0x12, - 0x93, 0x25, 0xe9, 0x8e, 0x67, 0x32, 0x83, 0xc2, 0xc4, 0x52, 0xc2, 0x98, 0x02, 0x68, 0xec, 0xc2, - 0x2d, 0x73, 0xcb, 0xa5, 0xb7, 0x7e, 0x83, 0x7e, 0x8a, 0xde, 0x3a, 0x3d, 0xf7, 0x43, 0xb4, 0x97, - 0x9e, 0xfb, 0x19, 0x7a, 0xe9, 0xec, 0x2e, 0x00, 0x02, 0xe0, 0x1f, 0x59, 0xea, 0x4c, 0x67, 0x7a, - 0xc3, 0xbe, 0xf7, 0xf6, 0xed, 0xfb, 0xbf, 0xbf, 0x05, 0xdc, 0xbb, 0x22, 0xb6, 0x33, 0xf0, 0xfc, - 0x47, 0x6f, 0x1f, 0x3f, 0x1a, 0x39, 0x23, 0x32, 0x74, 0x5c, 0x72, 0x30, 0xf2, 0x3d, 0xe6, 0xa1, - 0x52, 0xc8, 0x12, 0xab, 0x4a, 0x52, 0xd0, 0x72, 0xad, 0xe1, 0x98, 0x39, 0x7d, 0x29, 0x58, 0xd9, - 0x4e, 0xb0, 0x06, 0x01, 0x75, 0x3c, 0x57, 0x32, 0xaa, 0x3f, 0x29, 0xb0, 0xd2, 0xf1, 0x7c, 0x76, - 0xec, 0x0d, 0xd1, 0x27, 0x90, 0x7b, 0x4d, 0xc6, 0xba, 0xb2, 0xab, 0xec, 0xad, 0x1d, 0x6e, 0x1d, - 0x24, 0x75, 0x1f, 0x70, 0x99, 0xe7, 0x64, 0x8c, 0xb9, 0x04, 0xda, 0x82, 0x65, 0x87, 0x9a, 0x16, - 0xed, 0xeb, 0xea, 0xae, 0xb2, 0x57, 0xc0, 0x79, 0x87, 0xd6, 0x68, 0x1f, 0xed, 0x80, 0xc6, 0xc6, - 0x23, 0x62, 0xf6, 0x2d, 0xca, 0xf4, 0xdc, 0xae, 0xb2, 0xa7, 0xe1, 0x02, 0x27, 0x1c, 0x5b, 0x94, - 0xa1, 0x7b, 0x50, 0xb8, 0x22, 0xcc, 0x32, 0xf9, 0x09, 0x4b, 0x82, 0xb7, 0xc2, 0xd7, 0xcf, 0xc9, - 0xb8, 0xfa, 0x97, 0x25, 0x28, 0xd7, 0x09, 0x23, 0x7d, 0xe6, 0x78, 0x2e, 0x26, 0x6f, 0x02, 0x42, - 0x19, 0x5a, 0x03, 0xd5, 0xb1, 0x43, 0x2d, 0xaa, 0x63, 0xa3, 0xc7, 0xb0, 0xe2, 0x4b, 0x96, 0x30, - 0xb0, 0x78, 0xb8, 0x9d, 0x36, 0x70, 0xa2, 0x20, 0x92, 0x43, 0x0f, 0xa0, 0x18, 0x85, 0xc1, 0x74, - 0x6c, 0x5d, 0xdd, 0xcd, 0xed, 0x69, 0x18, 0x22, 0x52, 0xd3, 0xe6, 0x36, 0x0d, 0x02, 0x4a, 0x7c, - 0xce, 0x2d, 0x08, 0xee, 0x8a, 0x58, 0x37, 0x6d, 0xf4, 0x35, 0x2c, 0x31, 0xeb, 0x82, 0xea, 0x4b, - 0xbb, 0xb9, 0xbd, 0xe2, 0xe1, 0xde, 0xbc, 0xb3, 0xe4, 0x49, 0x07, 0x5d, 0xeb, 0x82, 0x1a, 0x2e, - 0xf3, 0xc7, 0x58, 0xec, 0x42, 0x4d, 0xd0, 0x84, 0x5e, 0xa1, 0x62, 0x59, 0xa8, 0xf8, 0xf4, 0x1a, - 0x15, 0x3d, 0x4a, 0xfc, 0x89, 0x9a, 0x42, 0x10, 0x2e, 0xb9, 0x21, 0x3c, 0x4e, 0xfa, 0xca, 0x3b, - 0x19, 0x72, 0x46, 0x98, 0x15, 0x1a, 0xc2, 0x77, 0xa1, 0xcf, 0x60, 0x33, 0x0e, 0x01, 0x73, 0xae, - 0x88, 0x17, 0x30, 0x93, 0x92, 0xbe, 0x9e, 0xdf, 0x55, 0xf6, 0x72, 0x18, 0x45, 0xbc, 0xae, 0x64, - 0x75, 0x48, 0xbf, 0xf2, 0x05, 0x68, 0xb1, 0x19, 0xa8, 0x3c, 0xa9, 0x08, 0x4d, 0xa6, 0x7e, 0x13, - 0xf2, 0x6f, 0xad, 0x61, 0x40, 0x44, 0xe6, 0x35, 0x2c, 0x17, 0xbf, 0x56, 0xbf, 0x54, 0x2a, 0x4f, - 0x61, 0x35, 0xe5, 0xc3, 0x8d, 0x36, 0x7f, 0x01, 0x5a, 0x6c, 0xfa, 0x4d, 0x36, 0x56, 0xff, 0xa1, - 0xc0, 0x56, 0x2d, 0xf4, 0x22, 0x8e, 0x46, 0xd3, 0x1d, 0x78, 0xd9, 0xec, 0x4b, 0x6d, 0xc9, 0xec, - 0x1f, 0x42, 0x9e, 0x32, 0xeb, 0x42, 0x2a, 0x5d, 0x3b, 0x7c, 0x7f, 0x4e, 0x68, 0x3b, 0x5c, 0x06, - 0x4b, 0x51, 0xf4, 0x39, 0x2c, 0x53, 0x66, 0xb1, 0x80, 0x8a, 0xca, 0x5c, 0x3b, 0xbc, 0x3f, 0x7f, - 0x13, 0x0b, 0x28, 0x0e, 0x85, 0xd1, 0xe7, 0xa0, 0xd9, 0x11, 0x4b, 0x54, 0xff, 0x82, 0xf2, 0x9d, - 0x48, 0x56, 0xff, 0x95, 0x87, 0xd5, 0xb4, 0x53, 0xb2, 0x2b, 0x94, 0xb8, 0x2b, 0x9e, 0xc2, 0xaa, - 0x4f, 0xde, 0x98, 0x3e, 0xa1, 0x5e, 0xe0, 0xf7, 0x09, 0xd5, 0x8b, 0xa2, 0x4c, 0xee, 0xa6, 0x95, - 0xe3, 0x90, 0x8d, 0x4b, 0x3e, 0x79, 0x13, 0x2d, 0x28, 0x3a, 0x85, 0xd5, 0x49, 0x84, 0xdc, 0x81, - 0x27, 0x3a, 0xa4, 0x78, 0xf8, 0x51, 0x7a, 0xf3, 0xcc, 0xe8, 0xe2, 0x52, 0x1c, 0x48, 0x6e, 0xd6, - 0xb7, 0x50, 0x94, 0x53, 0x45, 0xea, 0x29, 0x08, 0x3d, 0x99, 0xd8, 0x34, 0x78, 0x49, 0x37, 0x84, - 0x94, 0xd0, 0x00, 0x83, 0xf8, 0x1b, 0x7d, 0x15, 0x76, 0x5b, 0x4e, 0x6c, 0xfc, 0x78, 0x4e, 0x68, - 0xb8, 0xe8, 0x54, 0xab, 0x35, 0xa6, 0x5b, 0xed, 0x17, 0x8b, 0xf6, 0xcf, 0xeb, 0xb3, 0xaf, 0x52, - 0x7d, 0xb6, 0xd0, 0x84, 0x6c, 0x93, 0xed, 0x80, 0x76, 0x69, 0x51, 0x93, 0x8f, 0x0e, 0x5b, 0x64, - 0xb7, 0x80, 0x0b, 0x97, 0x16, 0xe5, 0x0e, 0xdb, 0xbc, 0x0c, 0x05, 0xc3, 0xa4, 0x7d, 0xcf, 0x27, - 0xa2, 0xf1, 0x14, 0xe1, 0x3b, 0xb1, 0x3b, 0x9c, 0x82, 0x3e, 0x81, 0xf5, 0x28, 0x96, 0xd4, 0x64, - 0x1e, 0xb3, 0x86, 0xba, 0xb6, 0xab, 0xec, 0xe5, 0xf1, 0x5a, 0x4c, 0xee, 0x72, 0x2a, 0x7a, 0x08, - 0x68, 0x22, 0x38, 0x70, 0x5c, 0x87, 0x5e, 0x12, 0x5b, 0x07, 0x21, 0x7b, 0x27, 0xe6, 0x34, 0x42, - 0xc6, 0xff, 0x5b, 0x23, 0x1b, 0xb0, 0x99, 0xae, 0xb0, 0xd4, 0x3d, 0x30, 0xa9, 0xf8, 0xfb, 0x00, - 0xbf, 0xb3, 0x5c, 0x16, 0x46, 0x5b, 0xde, 0x3f, 0x1a, 0xa7, 0x88, 0x70, 0x57, 0x4d, 0xd0, 0xea, - 0x16, 0x23, 0xd8, 0x72, 0x2f, 0x08, 0xda, 0x87, 0x3b, 0x94, 0x59, 0xbe, 0x18, 0x79, 0x9e, 0x6b, - 0x53, 0x33, 0x60, 0x7d, 0xa1, 0x2a, 0x87, 0xd7, 0x05, 0xa3, 0x23, 0xe9, 0x3d, 0xd6, 0x47, 0x3f, - 0x87, 0x75, 0xe2, 0xda, 0x29, 0x49, 0x55, 0x48, 0xae, 0x12, 0xd7, 0x9e, 0xc8, 0x55, 0xff, 0x90, - 0x4f, 0x18, 0xda, 0x72, 0x28, 0x8b, 0x0c, 0x3d, 0x02, 0xed, 0x2d, 0xf1, 0x5f, 0x79, 0xd4, 0x61, - 0x63, 0xbd, 0x24, 0xa6, 0xc3, 0xcf, 0xe6, 0x54, 0x11, 0xdf, 0xf6, 0x22, 0x92, 0xc5, 0x93, 0x6d, - 0xe8, 0x59, 0xd8, 0x07, 0xca, 0xc2, 0x2b, 0x23, 0x71, 0xea, 0x54, 0x3b, 0xdc, 0x07, 0x10, 0xd7, - 0xec, 0x9b, 0x80, 0xf8, 0x63, 0x51, 0x1c, 0x1a, 0xd6, 0x38, 0xe5, 0x7b, 0x4e, 0x40, 0x4f, 0x00, - 0x6c, 0x8b, 0x11, 0xd3, 0xe7, 0xf1, 0xd1, 0x8b, 0x33, 0x27, 0x51, 0x14, 0x3e, 0xac, 0xd9, 0x71, - 0x24, 0x3f, 0x82, 0xd5, 0x78, 0x2c, 0x99, 0x8e, 0x4d, 0x45, 0x9b, 0x68, 0xb8, 0x14, 0x13, 0x9b, - 0x36, 0xcd, 0xa4, 0x66, 0x29, 0x93, 0x1a, 0xf4, 0x19, 0x14, 0x3c, 0xdf, 0x26, 0xbe, 0xf9, 0x6a, - 0xac, 0xe7, 0x85, 0x83, 0x33, 0x30, 0xc6, 0xb1, 0x37, 0xc4, 0x2b, 0x42, 0xec, 0x68, 0x9c, 0xba, - 0x9f, 0x97, 0x25, 0x66, 0x88, 0xee, 0xe7, 0x1e, 0x6c, 0x85, 0x13, 0x87, 0x5d, 0xfa, 0x84, 0x5e, - 0x7a, 0x43, 0xdb, 0xe4, 0x58, 0x43, 0x2f, 0x88, 0xc8, 0x7f, 0x38, 0x35, 0x7b, 0x1c, 0xcf, 0xed, - 0x46, 0x92, 0xdd, 0xf1, 0x88, 0xe0, 0x8d, 0xc1, 0x34, 0x11, 0xfd, 0x0a, 0xee, 0x4e, 0xa9, 0x95, - 0x05, 0xcb, 0x7b, 0x52, 0xc5, 0x9b, 0x99, 0x4d, 0x2f, 0x38, 0x8f, 0x0f, 0x80, 0x91, 0x75, 0x41, - 0x4c, 0xea, 0xfc, 0x28, 0x2b, 0x3b, 0x8f, 0x0b, 0x9c, 0xd0, 0x71, 0x7e, 0x24, 0x3c, 0x2a, 0x82, - 0xc9, 0xbc, 0xd7, 0xc4, 0x0d, 0x01, 0x8d, 0x10, 0xef, 0x72, 0xc2, 0xad, 0xdb, 0x94, 0x23, 0xb7, - 0xd5, 0x54, 0x49, 0xa0, 0xa7, 0x00, 0x71, 0x3e, 0xa2, 0x1a, 0xda, 0x59, 0x30, 0xc8, 0x70, 0x42, - 0x9c, 0x1f, 0x24, 0x87, 0x4f, 0x4e, 0xd8, 0x2f, 0x17, 0x19, 0xe3, 0xd5, 0x8c, 0xf1, 0xd5, 0x3f, - 0xab, 0xb0, 0x2a, 0x63, 0x3b, 0xaf, 0x5d, 0x0f, 0x26, 0xb0, 0x4d, 0x15, 0xd5, 0xb6, 0x39, 0x2b, - 0x33, 0x13, 0xcc, 0x96, 0x4c, 0xf9, 0x52, 0x1a, 0x92, 0x2d, 0xbc, 0x24, 0x52, 0x56, 0x4c, 0x75, - 0xc5, 0x87, 0x50, 0x4a, 0x96, 0xaf, 0x98, 0xc2, 0x1a, 0x2e, 0x26, 0xaa, 0x17, 0x3d, 0x82, 0xcd, - 0xa4, 0x88, 0xc9, 0x91, 0x92, 0xed, 0xf8, 0x61, 0xdd, 0xdd, 0x49, 0x88, 0xb6, 0x03, 0x56, 0x77, - 0xfc, 0xdb, 0x27, 0xee, 0x6f, 0x0a, 0xac, 0x67, 0x2e, 0xc3, 0x94, 0xdb, 0x4a, 0xba, 0xd2, 0xff, - 0x87, 0x30, 0xe5, 0x53, 0x58, 0x96, 0xf5, 0x1d, 0x62, 0x94, 0xd9, 0xb9, 0x0a, 0x65, 0xaa, 0x7f, - 0x54, 0x01, 0x12, 0x2e, 0x64, 0x33, 0xff, 0x0c, 0x4a, 0x09, 0x4c, 0x40, 0x43, 0x70, 0x71, 0x0d, - 0x28, 0x28, 0x4e, 0x40, 0x01, 0x45, 0x4f, 0x52, 0x09, 0xaf, 0xce, 0x32, 0x66, 0x26, 0x24, 0xf8, - 0xaf, 0xee, 0xe3, 0xdb, 0xe7, 0xf5, 0x04, 0xee, 0xf0, 0x23, 0x6a, 0xc3, 0x61, 0xb3, 0x4e, 0xf1, - 0x8c, 0x7a, 0x56, 0xd2, 0xf5, 0xbc, 0x0d, 0x2b, 0x51, 0x91, 0x49, 0x5d, 0xcb, 0x9e, 0xa8, 0xac, - 0xea, 0x26, 0xa0, 0xa4, 0x22, 0x3a, 0xf2, 0x5c, 0x4a, 0xaa, 0xff, 0x56, 0xa0, 0xd2, 0x1b, 0xf1, - 0x91, 0x1c, 0xa7, 0x8f, 0xdb, 0x19, 0x1d, 0x94, 0x2d, 0x71, 0x65, 0xba, 0xc4, 0x75, 0xde, 0x8b, - 0xa3, 0xa1, 0xd5, 0x27, 0xe1, 0xbd, 0x19, 0x2d, 0x51, 0x23, 0x15, 0xe9, 0xc3, 0x74, 0xa4, 0xe7, - 0x1f, 0x3a, 0x15, 0xf9, 0x07, 0x50, 0xb4, 0xc9, 0x90, 0x30, 0x62, 0xc6, 0x8f, 0x27, 0x8d, 0x4f, - 0x19, 0x4e, 0xe2, 0xb2, 0xb7, 0x0f, 0xee, 0xdf, 0x15, 0xd8, 0x4e, 0x9a, 0x90, 0x84, 0x08, 0x2f, - 0x81, 0xe3, 0xda, 0xc0, 0xf1, 0xc3, 0x63, 0xe5, 0xe4, 0x7b, 0x32, 0xa7, 0xe6, 0xd3, 0x9b, 0x0f, - 0xb0, 0xdc, 0x39, 0xf1, 0xa4, 0xe8, 0x4f, 0x28, 0xfc, 0xde, 0xa3, 0xaf, 0x9d, 0x91, 0x39, 0xf2, - 0xc9, 0xc0, 0xf9, 0x3d, 0xa1, 0xe1, 0x23, 0xb2, 0xc4, 0x89, 0xdf, 0x85, 0xb4, 0xca, 0xb7, 0x50, - 0xce, 0x6a, 0xb9, 0x91, 0x6f, 0x7f, 0x55, 0x13, 0xef, 0xdf, 0xd0, 0x3c, 0xd4, 0x02, 0x60, 0xd6, - 0x85, 0xd9, 0xf7, 0x02, 0x97, 0x45, 0x2e, 0x3d, 0x5c, 0xec, 0x12, 0x4f, 0xc7, 0xb1, 0x90, 0x97, - 0x9e, 0x68, 0x2c, 0x5a, 0xa3, 0x97, 0xb0, 0x1e, 0xa1, 0xe4, 0x48, 0xa5, 0xec, 0xc7, 0xc7, 0xd7, - 0xa8, 0x0c, 0x91, 0x60, 0x52, 0xed, 0x6a, 0x90, 0xa4, 0x55, 0xbe, 0x86, 0xb5, 0xb4, 0xc0, 0x75, - 0xbe, 0xe7, 0x93, 0x78, 0xf1, 0x19, 0xa0, 0xe9, 0x23, 0x6e, 0xa2, 0xa1, 0xfa, 0x14, 0xee, 0xd6, - 0x45, 0x81, 0x4d, 0xfd, 0x42, 0xb8, 0xbe, 0x25, 0xaa, 0xff, 0x54, 0xa1, 0x14, 0x3d, 0x70, 0x38, - 0x6e, 0x9d, 0x9a, 0x62, 0x3a, 0xac, 0xbc, 0x25, 0xbe, 0x98, 0x89, 0x32, 0x6f, 0xd1, 0x92, 0xdb, - 0xd8, 0x1f, 0x05, 0x62, 0xc0, 0x2a, 0x98, 0x7f, 0x72, 0x8a, 0x6f, 0x5d, 0x89, 0x89, 0xa3, 0x60, - 0xfe, 0xc9, 0x29, 0x17, 0xa3, 0x40, 0x0c, 0x99, 0x3c, 0xe6, 0x9f, 0xe8, 0x21, 0xe4, 0x79, 0xc0, - 0x2d, 0xf1, 0x54, 0x59, 0xcb, 0x62, 0xaf, 0x33, 0xce, 0x12, 0xe8, 0x44, 0x4a, 0xa1, 0x5d, 0xde, - 0x50, 0xb4, 0xef, 0x3b, 0x23, 0xf1, 0x74, 0x5c, 0x89, 0x3c, 0x88, 0x49, 0x08, 0xc1, 0x92, 0x6b, - 0x5d, 0x49, 0xdc, 0xa3, 0x61, 0xf1, 0x8d, 0x9e, 0x43, 0x51, 0x64, 0x7b, 0xe0, 0x90, 0xa1, 0x4d, - 0x75, 0x4d, 0x64, 0x7a, 0x7f, 0xf6, 0xb3, 0x8e, 0x7b, 0x2d, 0xb2, 0xdc, 0x10, 0xc2, 0x32, 0xc5, - 0x10, 0xc4, 0x84, 0xca, 0x37, 0xb0, 0x9e, 0x61, 0xdf, 0xa8, 0xb8, 0x4f, 0x27, 0x01, 0x16, 0x20, - 0xe5, 0x4b, 0xd0, 0xe2, 0xb7, 0x4a, 0x58, 0xd6, 0x95, 0xf9, 0x96, 0xe1, 0x89, 0xf0, 0xfe, 0x4f, - 0x0a, 0xac, 0xa5, 0xaf, 0x3b, 0xa4, 0xc3, 0x66, 0xdd, 0xe8, 0x1a, 0xc7, 0xdd, 0x66, 0xfb, 0xdc, - 0xec, 0x74, 0x6b, 0x27, 0x86, 0x79, 0xde, 0x3e, 0x37, 0xca, 0xef, 0xa1, 0x0a, 0xdc, 0xcd, 0x72, - 0xbe, 0xef, 0x19, 0x3d, 0xa3, 0x5e, 0x56, 0xd0, 0x0e, 0x6c, 0x67, 0x79, 0xc7, 0xad, 0x5a, 0xf3, - 0xcc, 0xa8, 0x97, 0x55, 0xf4, 0x3e, 0xe8, 0x59, 0x66, 0xa3, 0x79, 0xde, 0xec, 0x9c, 0x1a, 0xf5, - 0x72, 0x6e, 0xff, 0x12, 0xd6, 0x33, 0x97, 0x27, 0xba, 0x07, 0x5b, 0xa9, 0x0d, 0xdd, 0x5e, 0x27, - 0x32, 0x22, 0xab, 0x8b, 0xb3, 0x3a, 0xbd, 0xe3, 0x63, 0xa3, 0xd3, 0x29, 0x2b, 0x33, 0xb9, 0x8d, - 0x5a, 0xb3, 0xd5, 0xc3, 0x46, 0x59, 0xdd, 0x3f, 0x90, 0xff, 0xe5, 0x9e, 0x93, 0x31, 0xd2, 0x20, - 0xdf, 0x39, 0x6e, 0x63, 0xae, 0xb1, 0x00, 0x4b, 0x67, 0x46, 0xb7, 0x56, 0x56, 0xd0, 0x1a, 0x00, - 0xff, 0xe2, 0x5e, 0xe1, 0x97, 0x65, 0x75, 0xff, 0xb7, 0xb0, 0x31, 0x03, 0xe5, 0xa2, 0x6d, 0xd8, - 0x68, 0xf4, 0x3a, 0xfc, 0x84, 0xf3, 0xb6, 0xd9, 0x3d, 0xc5, 0x46, 0xe7, 0xb4, 0xdd, 0xaa, 0x97, - 0xdf, 0x4b, 0x30, 0x5a, 0xdd, 0x04, 0x43, 0x49, 0x30, 0x4e, 0x92, 0x0c, 0x75, 0xdf, 0xe0, 0x4f, - 0xbb, 0xb0, 0x3e, 0xb9, 0x4d, 0xcd, 0xb3, 0xda, 0x09, 0xb7, 0x49, 0x83, 0xfc, 0x8b, 0x66, 0xdd, - 0x68, 0x97, 0x15, 0x54, 0x86, 0x52, 0xb8, 0x57, 0x32, 0xd5, 0x04, 0x45, 0xca, 0xe4, 0xf6, 0x7f, - 0xc3, 0xfb, 0x75, 0xd6, 0x43, 0x28, 0x1d, 0x90, 0x17, 0x06, 0x3e, 0x6a, 0x77, 0x9a, 0xdd, 0x97, - 0x66, 0xa3, 0xd7, 0x6a, 0x95, 0xdf, 0x43, 0x0f, 0x60, 0x67, 0x16, 0xf7, 0xac, 0x79, 0xde, 0x3c, - 0xab, 0xb5, 0xca, 0xca, 0xe1, 0x9f, 0x96, 0xa1, 0xf0, 0x5d, 0xf8, 0x7f, 0x14, 0x19, 0xb0, 0x2c, - 0x4f, 0x41, 0x1f, 0x2c, 0xfe, 0x65, 0x56, 0x59, 0x84, 0x90, 0x51, 0x07, 0xca, 0x27, 0x84, 0xa5, - 0x69, 0xd5, 0x45, 0x90, 0xfa, 0x16, 0x4a, 0x45, 0x5b, 0x54, 0xaf, 0x7f, 0xeb, 0xcd, 0x55, 0x2a, - 0x14, 0xb4, 0x78, 0x65, 0xa6, 0xc6, 0x20, 0x9a, 0x7a, 0x7e, 0xce, 0x9a, 0x92, 0x95, 0x8d, 0xb4, - 0x94, 0x71, 0x35, 0x62, 0x63, 0xf4, 0x0d, 0x2c, 0x71, 0x08, 0x82, 0x76, 0x16, 0xa0, 0xec, 0x8a, - 0x3e, 0x0f, 0x91, 0xa1, 0x1a, 0x14, 0xf8, 0xf6, 0xa3, 0x71, 0xb3, 0x7e, 0x5b, 0x15, 0x6d, 0x01, - 0x2e, 0x43, 0x10, 0x84, 0x1e, 0x4c, 0xc3, 0xc6, 0x14, 0xce, 0xaa, 0xec, 0xce, 0x17, 0x90, 0xf8, - 0x09, 0xfd, 0x00, 0x1b, 0x33, 0x90, 0x0c, 0xda, 0x7b, 0x57, 0xb0, 0xb3, 0x38, 0xa7, 0x3f, 0xc0, - 0x46, 0x32, 0xa7, 0xd1, 0x2d, 0xfe, 0xf1, 0x3b, 0x81, 0x90, 0xca, 0x07, 0x8b, 0xc5, 0xd0, 0x11, - 0xac, 0x9f, 0x10, 0x96, 0xba, 0xa8, 0x66, 0xa5, 0xad, 0x32, 0x67, 0x92, 0xf2, 0x02, 0x79, 0xb5, - 0x2c, 0x68, 0xbf, 0xfc, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x60, 0x57, 0x9c, 0x4f, 0x18, - 0x00, 0x00, + // 2021 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0x4f, 0x73, 0xdb, 0xc6, + 0x15, 0x37, 0x48, 0x51, 0x22, 0x1e, 0x29, 0x89, 0x5e, 0x49, 0x16, 0x4c, 0xc5, 0xb1, 0xc2, 0x34, + 0x8d, 0xaa, 0x89, 0xa5, 0x98, 0x4d, 0x9c, 0xa4, 0x4e, 0x32, 0xa6, 0x44, 0x50, 0xe2, 0x98, 0x92, + 0x92, 0x25, 0xe9, 0x8e, 0x3b, 0x99, 0x41, 0x61, 0x62, 0x49, 0x61, 0x4c, 0x01, 0x34, 0x76, 0xe1, + 0x96, 0xb9, 0xe5, 0xd2, 0x5b, 0xbf, 0x41, 0x3f, 0x45, 0x6f, 0x9d, 0x9e, 0xfb, 0x21, 0xda, 0x4b, + 0xcf, 0xfd, 0x0c, 0xbd, 0x74, 0x76, 0x17, 0x00, 0x01, 0xf0, 0x8f, 0x2c, 0x75, 0xa6, 0x33, 0x3d, + 0x09, 0xfb, 0xde, 0xdb, 0xb7, 0xef, 0xff, 0xfe, 0x96, 0x82, 0xfb, 0x57, 0xc4, 0xb2, 0xfb, 0xae, + 0x77, 0xf8, 0xf6, 0xf1, 0xe1, 0xc8, 0x1e, 0x91, 0xa1, 0xed, 0x90, 0x83, 0x91, 0xe7, 0x32, 0x17, + 0x15, 0x03, 0x96, 0x58, 0x95, 0xe3, 0x82, 0xa6, 0x63, 0x0e, 0xc7, 0xcc, 0xee, 0x49, 0xc1, 0xf2, + 0x76, 0x8c, 0xd5, 0xf7, 0xa9, 0xed, 0x3a, 0x92, 0x51, 0xf9, 0x49, 0x81, 0x95, 0xb6, 0xeb, 0xb1, + 0x63, 0x77, 0x88, 0x3e, 0x86, 0xec, 0x6b, 0x32, 0xd6, 0x94, 0x5d, 0x65, 0x6f, 0xad, 0xba, 0x75, + 0x10, 0xd7, 0x7d, 0xc0, 0x65, 0x9e, 0x93, 0x31, 0xe6, 0x12, 0x68, 0x0b, 0x96, 0x6d, 0x6a, 0x98, + 0xb4, 0xa7, 0x65, 0x76, 0x95, 0xbd, 0x3c, 0xce, 0xd9, 0xb4, 0x46, 0x7b, 0x68, 0x07, 0x54, 0x36, + 0x1e, 0x11, 0xa3, 0x67, 0x52, 0xa6, 0x65, 0x77, 0x95, 0x3d, 0x15, 0xe7, 0x39, 0xe1, 0xd8, 0xa4, + 0x0c, 0xdd, 0x87, 0xfc, 0x15, 0x61, 0xa6, 0xc1, 0x4f, 0x58, 0x12, 0xbc, 0x15, 0xbe, 0x7e, 0x4e, + 0xc6, 0x95, 0xbf, 0x2c, 0x41, 0xa9, 0x4e, 0x18, 0xe9, 0x31, 0xdb, 0x75, 0x30, 0x79, 0xe3, 0x13, + 0xca, 0xd0, 0x1a, 0x64, 0x6c, 0x2b, 0xd0, 0x92, 0xb1, 0x2d, 0xf4, 0x18, 0x56, 0x3c, 0xc9, 0x12, + 0x06, 0x16, 0xaa, 0xdb, 0x49, 0x03, 0x27, 0x0a, 0x42, 0x39, 0xf4, 0x10, 0x0a, 0x61, 0x18, 0x0c, + 0xdb, 0xd2, 0x32, 0xbb, 0xd9, 0x3d, 0x15, 0x43, 0x48, 0x6a, 0x5a, 0xdc, 0xa6, 0xbe, 0x4f, 0x89, + 0xc7, 0xb9, 0x79, 0xc1, 0x5d, 0x11, 0xeb, 0xa6, 0x85, 0xbe, 0x86, 0x25, 0x66, 0x0e, 0xa8, 0xb6, + 0xb4, 0x9b, 0xdd, 0x2b, 0x54, 0xf7, 0xe6, 0x9d, 0x25, 0x4f, 0x3a, 0xe8, 0x98, 0x03, 0xaa, 0x3b, + 0xcc, 0x1b, 0x63, 0xb1, 0x0b, 0x35, 0x41, 0x15, 0x7a, 0x85, 0x8a, 0x65, 0xa1, 0xe2, 0x93, 0x6b, + 0x54, 0x74, 0x29, 0xf1, 0x26, 0x6a, 0xf2, 0x7e, 0xb0, 0xe4, 0x86, 0xf0, 0x38, 0x69, 0x2b, 0xef, + 0x64, 0xc8, 0x19, 0x61, 0x66, 0x60, 0x08, 0xdf, 0x85, 0x3e, 0x85, 0xcd, 0x28, 0x04, 0xcc, 0xbe, + 0x22, 0xae, 0xcf, 0x0c, 0x4a, 0x7a, 0x5a, 0x6e, 0x57, 0xd9, 0xcb, 0x62, 0x14, 0xf2, 0x3a, 0x92, + 0xd5, 0x26, 0xbd, 0xf2, 0x17, 0xa0, 0x46, 0x66, 0xa0, 0xd2, 0xa4, 0x22, 0x54, 0x99, 0xfa, 0x4d, + 0xc8, 0xbd, 0x35, 0x87, 0x3e, 0x11, 0x99, 0x57, 0xb1, 0x5c, 0xfc, 0x2a, 0xf3, 0xa5, 0x52, 0x7e, + 0x0a, 0xab, 0x09, 0x1f, 0x6e, 0xb4, 0xf9, 0x0b, 0x50, 0x23, 0xd3, 0x6f, 0xb2, 0xb1, 0xf2, 0x0f, + 0x05, 0xb6, 0x6a, 0x81, 0x17, 0x51, 0x34, 0x9a, 0x4e, 0xdf, 0x4d, 0x67, 0x5f, 0x6a, 0x8b, 0x67, + 0xbf, 0x0a, 0x39, 0xca, 0xcc, 0x81, 0x54, 0xba, 0x56, 0x7d, 0x6f, 0x4e, 0x68, 0xdb, 0x5c, 0x06, + 0x4b, 0x51, 0xf4, 0x39, 0x2c, 0x53, 0x66, 0x32, 0x9f, 0x8a, 0xca, 0x5c, 0xab, 0x3e, 0x98, 0xbf, + 0x89, 0xf9, 0x14, 0x07, 0xc2, 0xe8, 0x73, 0x50, 0xad, 0x90, 0x25, 0xaa, 0x7f, 0x41, 0xf9, 0x4e, + 0x24, 0x2b, 0xff, 0xca, 0xc1, 0x6a, 0xd2, 0x29, 0xd9, 0x15, 0x4a, 0xd4, 0x15, 0x4f, 0x61, 0xd5, + 0x23, 0x6f, 0x0c, 0x8f, 0x50, 0xd7, 0xf7, 0x7a, 0x84, 0x6a, 0x05, 0x51, 0x26, 0xf7, 0x92, 0xca, + 0x71, 0xc0, 0xc6, 0x45, 0x8f, 0xbc, 0x09, 0x17, 0x14, 0x9d, 0xc2, 0xea, 0x24, 0x42, 0x4e, 0xdf, + 0x15, 0x1d, 0x52, 0xa8, 0x7e, 0x98, 0xdc, 0x3c, 0x33, 0xba, 0xb8, 0x18, 0x05, 0x92, 0x9b, 0xf5, + 0x2d, 0x14, 0xe4, 0x54, 0x91, 0x7a, 0xf2, 0x42, 0x4f, 0x2a, 0x36, 0x0d, 0x5e, 0xd2, 0x0d, 0x21, + 0x25, 0x34, 0x40, 0x3f, 0xfa, 0x46, 0x5f, 0x05, 0xdd, 0x96, 0x15, 0x1b, 0x3f, 0x9a, 0x13, 0x1a, + 0x2e, 0x3a, 0xd5, 0x6a, 0x8d, 0xe9, 0x56, 0xfb, 0xc5, 0xa2, 0xfd, 0xf3, 0xfa, 0xec, 0xab, 0x44, + 0x9f, 0x2d, 0x34, 0x21, 0xdd, 0x64, 0x3b, 0xa0, 0x5e, 0x9a, 0xd4, 0xe0, 0xa3, 0xc3, 0x12, 0xd9, + 0xcd, 0xe3, 0xfc, 0xa5, 0x49, 0xb9, 0xc3, 0x16, 0x2f, 0x43, 0xc1, 0x30, 0x68, 0xcf, 0xf5, 0x88, + 0x68, 0x3c, 0x45, 0xf8, 0x4e, 0xac, 0x36, 0xa7, 0xa0, 0x8f, 0x61, 0x3d, 0x8c, 0x25, 0x35, 0x98, + 0xcb, 0xcc, 0xa1, 0xa6, 0xee, 0x2a, 0x7b, 0x39, 0xbc, 0x16, 0x91, 0x3b, 0x9c, 0x8a, 0x1e, 0x01, + 0x9a, 0x08, 0xf6, 0x6d, 0xc7, 0xa6, 0x97, 0xc4, 0xd2, 0x40, 0xc8, 0xde, 0x8d, 0x38, 0x8d, 0x80, + 0xf1, 0xff, 0xd6, 0xc8, 0x3a, 0x6c, 0x26, 0x2b, 0x2c, 0x71, 0x0f, 0x4c, 0x2a, 0xfe, 0x01, 0xc0, + 0xef, 0x4c, 0x87, 0x05, 0xd1, 0x96, 0xf7, 0x8f, 0xca, 0x29, 0x22, 0xdc, 0x15, 0x03, 0xd4, 0xba, + 0xc9, 0x08, 0x36, 0x9d, 0x01, 0x41, 0xfb, 0x70, 0x97, 0x32, 0xd3, 0x13, 0x23, 0xcf, 0x75, 0x2c, + 0x6a, 0xf8, 0xac, 0x27, 0x54, 0x65, 0xf1, 0xba, 0x60, 0xb4, 0x25, 0xbd, 0xcb, 0x7a, 0xe8, 0xe7, + 0xb0, 0x4e, 0x1c, 0x2b, 0x21, 0x99, 0x11, 0x92, 0xab, 0xc4, 0xb1, 0x26, 0x72, 0x95, 0x3f, 0xe4, + 0x62, 0x86, 0xb6, 0x6c, 0xca, 0x42, 0x43, 0x8f, 0x40, 0x7d, 0x4b, 0xbc, 0x57, 0x2e, 0xb5, 0xd9, + 0x58, 0x2b, 0x8a, 0xe9, 0xf0, 0xb3, 0x39, 0x55, 0xc4, 0xb7, 0xbd, 0x08, 0x65, 0xf1, 0x64, 0x1b, + 0x7a, 0x16, 0xf4, 0x81, 0xb2, 0xf0, 0xca, 0x88, 0x9d, 0x3a, 0xd5, 0x0e, 0x0f, 0x00, 0xc4, 0x35, + 0xfb, 0xc6, 0x27, 0xde, 0x58, 0x14, 0x87, 0x8a, 0x55, 0x4e, 0xf9, 0x9e, 0x13, 0xd0, 0x13, 0x00, + 0xcb, 0x64, 0xc4, 0xf0, 0x78, 0x7c, 0xb4, 0xc2, 0xcc, 0x49, 0x14, 0x86, 0x0f, 0xab, 0x56, 0x14, + 0xc9, 0x0f, 0x61, 0x35, 0x1a, 0x4b, 0x86, 0x6d, 0x51, 0xd1, 0x26, 0x2a, 0x2e, 0x46, 0xc4, 0xa6, + 0x45, 0x53, 0xa9, 0x59, 0x4a, 0xa5, 0x06, 0x7d, 0x0a, 0x79, 0xd7, 0xb3, 0x88, 0x67, 0xbc, 0x1a, + 0x6b, 0x39, 0xe1, 0xe0, 0x0c, 0x8c, 0x71, 0xec, 0x0e, 0xf1, 0x8a, 0x10, 0x3b, 0x1a, 0x27, 0xee, + 0xe7, 0x65, 0x89, 0x19, 0xc2, 0xfb, 0xb9, 0x0b, 0x5b, 0xc1, 0xc4, 0x61, 0x97, 0x1e, 0xa1, 0x97, + 0xee, 0xd0, 0x32, 0x38, 0xd6, 0xd0, 0xf2, 0x22, 0xf2, 0x1f, 0x4c, 0xcd, 0x1e, 0xdb, 0x75, 0x3a, + 0xa1, 0x64, 0x67, 0x3c, 0x22, 0x78, 0xa3, 0x3f, 0x4d, 0x44, 0x9f, 0xc1, 0xbd, 0x29, 0xb5, 0xb2, + 0x60, 0x79, 0x4f, 0x66, 0xf0, 0x66, 0x6a, 0xd3, 0x0b, 0xce, 0xe3, 0x03, 0x60, 0x64, 0x0e, 0x88, + 0x41, 0xed, 0x1f, 0x65, 0x65, 0xe7, 0x70, 0x9e, 0x13, 0xda, 0xf6, 0x8f, 0x84, 0x47, 0x45, 0x30, + 0x99, 0xfb, 0x9a, 0x38, 0x01, 0xa0, 0x11, 0xe2, 0x1d, 0x4e, 0xb8, 0x75, 0x9b, 0x72, 0xe4, 0xb6, + 0x9a, 0x28, 0x09, 0xf4, 0x14, 0x20, 0xca, 0x47, 0x58, 0x43, 0x3b, 0x0b, 0x06, 0x19, 0x8e, 0x89, + 0xf3, 0x83, 0xe4, 0xf0, 0xc9, 0x0a, 0xfb, 0xe5, 0x22, 0x65, 0x7c, 0x26, 0x65, 0x7c, 0xe5, 0xcf, + 0x19, 0x58, 0x95, 0xb1, 0x9d, 0xd7, 0xae, 0x07, 0x13, 0xd8, 0x96, 0x11, 0xd5, 0xb6, 0x39, 0x2b, + 0x33, 0x13, 0xcc, 0x16, 0x4f, 0xf9, 0x52, 0x12, 0x92, 0x2d, 0xbc, 0x24, 0x12, 0x56, 0x4c, 0x75, + 0xc5, 0x07, 0x50, 0x8c, 0x97, 0xaf, 0x98, 0xc2, 0x2a, 0x2e, 0xc4, 0xaa, 0x17, 0x1d, 0xc2, 0x66, + 0x5c, 0xc4, 0xe0, 0x48, 0xc9, 0xb2, 0xbd, 0xa0, 0xee, 0xee, 0xc6, 0x44, 0x2f, 0x7c, 0x56, 0xb7, + 0xbd, 0xdb, 0x27, 0xee, 0x6f, 0x0a, 0xac, 0xa7, 0x2e, 0xc3, 0x84, 0xdb, 0x4a, 0xb2, 0xd2, 0xff, + 0x87, 0x30, 0xe5, 0x13, 0x58, 0x96, 0xf5, 0x1d, 0x60, 0x94, 0xd9, 0xb9, 0x0a, 0x64, 0x2a, 0x7f, + 0xcc, 0x00, 0xc4, 0x5c, 0x48, 0x67, 0xfe, 0x19, 0x14, 0x63, 0x98, 0x80, 0x06, 0xe0, 0xe2, 0x1a, + 0x50, 0x50, 0x98, 0x80, 0x02, 0x8a, 0x9e, 0x24, 0x12, 0x5e, 0x99, 0x65, 0xcc, 0x4c, 0x48, 0xf0, + 0x5f, 0xdd, 0xc7, 0xb7, 0xcf, 0xeb, 0x09, 0xdc, 0xe5, 0x47, 0xd4, 0x86, 0xc3, 0x66, 0x9d, 0xe2, + 0x19, 0xf5, 0xac, 0x24, 0xeb, 0x79, 0x1b, 0x56, 0xc2, 0x22, 0x93, 0xba, 0x96, 0x5d, 0x51, 0x59, + 0x95, 0x4d, 0x40, 0x71, 0x45, 0x74, 0xe4, 0x3a, 0x94, 0x54, 0xfe, 0xad, 0x40, 0xb9, 0x3b, 0xe2, + 0x23, 0x39, 0x4a, 0x1f, 0xb7, 0x33, 0x3c, 0x28, 0x5d, 0xe2, 0xca, 0x74, 0x89, 0x6b, 0xbc, 0x17, + 0x47, 0x43, 0xb3, 0x47, 0x82, 0x7b, 0x33, 0x5c, 0xa2, 0x46, 0x22, 0xd2, 0xd5, 0x64, 0xa4, 0xe7, + 0x1f, 0x3a, 0x15, 0xf9, 0x87, 0x50, 0xb0, 0xc8, 0x90, 0x30, 0x62, 0x44, 0x8f, 0x27, 0x95, 0x4f, + 0x19, 0x4e, 0xe2, 0xb2, 0xb7, 0x0f, 0xee, 0xdf, 0x15, 0xd8, 0x8e, 0x9b, 0x10, 0x87, 0x08, 0x2f, + 0x81, 0xe3, 0x5a, 0xdf, 0xf6, 0x82, 0x63, 0xe5, 0xe4, 0x7b, 0x32, 0xa7, 0xe6, 0x93, 0x9b, 0x0f, + 0xb0, 0xdc, 0x39, 0xf1, 0xa4, 0xe0, 0x4d, 0x28, 0xfc, 0xde, 0xa3, 0xaf, 0xed, 0x91, 0x31, 0xf2, + 0x48, 0xdf, 0xfe, 0x3d, 0xa1, 0xc1, 0x23, 0xb2, 0xc8, 0x89, 0xdf, 0x05, 0xb4, 0xf2, 0xb7, 0x50, + 0x4a, 0x6b, 0xb9, 0x91, 0x6f, 0x7f, 0xcd, 0xc4, 0xde, 0xbf, 0x81, 0x79, 0xa8, 0x05, 0xc0, 0xcc, + 0x81, 0xd1, 0x73, 0x7d, 0x87, 0x85, 0x2e, 0x3d, 0x5a, 0xec, 0x12, 0x4f, 0xc7, 0xb1, 0x90, 0x97, + 0x9e, 0xa8, 0x2c, 0x5c, 0xa3, 0x97, 0xb0, 0x1e, 0xa2, 0xe4, 0x50, 0xa5, 0xec, 0xc7, 0xc7, 0xd7, + 0xa8, 0x0c, 0x90, 0x60, 0x5c, 0xed, 0xaa, 0x1f, 0xa7, 0x95, 0xbf, 0x86, 0xb5, 0xa4, 0xc0, 0x75, + 0xbe, 0xe7, 0xe2, 0x78, 0xf1, 0x19, 0xa0, 0xe9, 0x23, 0x6e, 0xa2, 0xa1, 0xf2, 0x14, 0xee, 0xd5, + 0x45, 0x81, 0x4d, 0xfd, 0x84, 0x70, 0x7d, 0x4b, 0x54, 0xfe, 0x99, 0x81, 0x62, 0xf8, 0xc0, 0xe1, + 0xb8, 0x75, 0x6a, 0x8a, 0x69, 0xb0, 0xf2, 0x96, 0x78, 0x62, 0x26, 0xca, 0xbc, 0x85, 0x4b, 0x6e, + 0x63, 0x6f, 0xe4, 0x8b, 0x01, 0xab, 0x60, 0xfe, 0xc9, 0x29, 0x9e, 0x79, 0x25, 0x26, 0x8e, 0x82, + 0xf9, 0x27, 0xa7, 0x0c, 0x46, 0xbe, 0x18, 0x32, 0x39, 0xcc, 0x3f, 0xd1, 0x23, 0xc8, 0xf1, 0x80, + 0x9b, 0xe2, 0xa9, 0xb2, 0x96, 0xc6, 0x5e, 0x67, 0x9c, 0x25, 0xd0, 0x89, 0x94, 0x42, 0xbb, 0xbc, + 0xa1, 0x68, 0xcf, 0xb3, 0x47, 0xe2, 0xe9, 0xb8, 0x12, 0x7a, 0x10, 0x91, 0x10, 0x82, 0x25, 0xc7, + 0xbc, 0x92, 0xb8, 0x47, 0xc5, 0xe2, 0x1b, 0x3d, 0x87, 0x82, 0xc8, 0x76, 0xdf, 0x26, 0x43, 0x8b, + 0x6a, 0xaa, 0xc8, 0xf4, 0xfe, 0xec, 0x67, 0x1d, 0xf7, 0x5a, 0x64, 0xb9, 0x21, 0x84, 0x65, 0x8a, + 0xc1, 0x8f, 0x08, 0xe5, 0x6f, 0x60, 0x3d, 0xc5, 0xbe, 0x51, 0x71, 0x9f, 0x4e, 0x02, 0x2c, 0x40, + 0xca, 0x97, 0xa0, 0x46, 0x6f, 0x95, 0xa0, 0xac, 0xcb, 0xf3, 0x2d, 0xc3, 0x13, 0xe1, 0xfd, 0x9f, + 0x14, 0x58, 0x4b, 0x5e, 0x77, 0x48, 0x83, 0xcd, 0xba, 0xde, 0xd1, 0x8f, 0x3b, 0xcd, 0x8b, 0x73, + 0xa3, 0xdd, 0xa9, 0x9d, 0xe8, 0xc6, 0xf9, 0xc5, 0xb9, 0x5e, 0xba, 0x83, 0xca, 0x70, 0x2f, 0xcd, + 0xf9, 0xbe, 0xab, 0x77, 0xf5, 0x7a, 0x49, 0x41, 0x3b, 0xb0, 0x9d, 0xe6, 0x1d, 0xb7, 0x6a, 0xcd, + 0x33, 0xbd, 0x5e, 0xca, 0xa0, 0xf7, 0x40, 0x4b, 0x33, 0x1b, 0xcd, 0xf3, 0x66, 0xfb, 0x54, 0xaf, + 0x97, 0xb2, 0xfb, 0x97, 0xb0, 0x9e, 0xba, 0x3c, 0xd1, 0x7d, 0xd8, 0x4a, 0x6c, 0xe8, 0x74, 0xdb, + 0xa1, 0x11, 0x69, 0x5d, 0x9c, 0xd5, 0xee, 0x1e, 0x1f, 0xeb, 0xed, 0x76, 0x49, 0x99, 0xc9, 0x6d, + 0xd4, 0x9a, 0xad, 0x2e, 0xd6, 0x4b, 0x99, 0xfd, 0x03, 0xf9, 0xbb, 0xdc, 0x73, 0x32, 0x46, 0x2a, + 0xe4, 0xda, 0xc7, 0x17, 0x98, 0x6b, 0xcc, 0xc3, 0xd2, 0x99, 0xde, 0xa9, 0x95, 0x14, 0xb4, 0x06, + 0xc0, 0xbf, 0xb8, 0x57, 0xf8, 0x65, 0x29, 0xb3, 0xff, 0x5b, 0xd8, 0x98, 0x81, 0x72, 0xd1, 0x36, + 0x6c, 0x34, 0xba, 0x6d, 0x7e, 0xc2, 0xf9, 0x85, 0xd1, 0x39, 0xc5, 0x7a, 0xfb, 0xf4, 0xa2, 0x55, + 0x2f, 0xdd, 0x89, 0x31, 0x5a, 0x9d, 0x18, 0x43, 0x89, 0x31, 0x4e, 0xe2, 0x8c, 0xcc, 0xbe, 0xce, + 0x9f, 0x76, 0x41, 0x7d, 0x72, 0x9b, 0x9a, 0x67, 0xb5, 0x13, 0x6e, 0x93, 0x0a, 0xb9, 0x17, 0xcd, + 0xba, 0x7e, 0x51, 0x52, 0x50, 0x09, 0x8a, 0xc1, 0x5e, 0xc9, 0xcc, 0xc4, 0x28, 0x52, 0x26, 0xbb, + 0xff, 0x6b, 0xde, 0xaf, 0xb3, 0x1e, 0x42, 0xc9, 0x80, 0xbc, 0xd0, 0xf1, 0xd1, 0x45, 0xbb, 0xd9, + 0x79, 0x69, 0x34, 0xba, 0xad, 0x56, 0xe9, 0x0e, 0x7a, 0x08, 0x3b, 0xb3, 0xb8, 0x67, 0xcd, 0xf3, + 0xe6, 0x59, 0xad, 0x55, 0x52, 0xaa, 0x7f, 0x5a, 0x86, 0xfc, 0x77, 0xc1, 0xef, 0xa3, 0x48, 0x87, + 0x65, 0x79, 0x0a, 0x7a, 0x7f, 0xf1, 0x4f, 0x66, 0xe5, 0x45, 0x08, 0x19, 0xb5, 0xa1, 0x74, 0x42, + 0x58, 0x92, 0x56, 0x59, 0x04, 0xa9, 0x6f, 0xa1, 0x54, 0xb4, 0x45, 0xe5, 0xfa, 0xb7, 0xde, 0x5c, + 0xa5, 0x42, 0x41, 0x8b, 0x57, 0x66, 0x62, 0x0c, 0xa2, 0xa9, 0xe7, 0xe7, 0xac, 0x29, 0x59, 0xde, + 0x48, 0x4a, 0xe9, 0x57, 0x23, 0x36, 0x46, 0xdf, 0xc0, 0x12, 0x87, 0x20, 0x68, 0x67, 0x01, 0xca, + 0x2e, 0x6b, 0xf3, 0x10, 0x19, 0xaa, 0x41, 0x9e, 0x6f, 0x3f, 0x1a, 0x37, 0xeb, 0xb7, 0x55, 0x71, + 0x21, 0xc0, 0x65, 0x00, 0x82, 0xd0, 0xc3, 0x69, 0xd8, 0x98, 0xc0, 0x59, 0xe5, 0xdd, 0xf9, 0x02, + 0x12, 0x3f, 0xa1, 0x1f, 0x60, 0x63, 0x06, 0x92, 0x41, 0x7b, 0xef, 0x0a, 0x76, 0x16, 0xe7, 0xf4, + 0x07, 0xd8, 0x88, 0xe7, 0x34, 0xbc, 0xc5, 0x3f, 0x7a, 0x27, 0x10, 0x52, 0x7e, 0x7f, 0xb1, 0x18, + 0x3a, 0x82, 0xf5, 0x13, 0xc2, 0x12, 0x17, 0xd5, 0xac, 0xb4, 0x95, 0xe7, 0x4c, 0x52, 0x5e, 0x20, + 0x47, 0x9f, 0xfd, 0xa6, 0x3a, 0xb0, 0xd9, 0xa5, 0xff, 0xea, 0xa0, 0xe7, 0x5e, 0x1d, 0x8a, 0xeb, + 0xa5, 0xef, 0x7a, 0xc4, 0xa1, 0x76, 0x8f, 0x1e, 0x86, 0xff, 0x1e, 0x18, 0xbd, 0x1e, 0x1c, 0xc6, + 0x55, 0xbc, 0x5a, 0x16, 0x7f, 0x7e, 0xf9, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x41, 0xde, + 0x94, 0x85, 0x18, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/pkg/mediforproto/provenance.pb.go b/pkg/mediforproto/provenance.pb.go index 67078a9..f48b747 100644 --- a/pkg/mediforproto/provenance.pb.go +++ b/pkg/mediforproto/provenance.pb.go @@ -490,44 +490,46 @@ func init() { func init() { proto.RegisterFile("medifor/v1/provenance.proto", fileDescriptor_77e2b3056807758b) } var fileDescriptor_77e2b3056807758b = []byte{ - // 593 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x94, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0xc7, 0x71, 0xbe, 0x33, 0x4e, 0xd3, 0x68, 0x41, 0xad, 0x5b, 0x54, 0x29, 0x58, 0x1c, 0xac, - 0x82, 0x5a, 0x11, 0x0e, 0x9c, 0x2a, 0xe4, 0x46, 0x06, 0x45, 0xa4, 0x49, 0xb4, 0xad, 0x38, 0x36, - 0x72, 0xed, 0x6d, 0xba, 0xc2, 0xf6, 0x9a, 0xf5, 0xba, 0xa2, 0x12, 0x8f, 0xc0, 0x8d, 0x27, 0xe0, - 0xc2, 0xd3, 0xf0, 0x50, 0xc8, 0xbb, 0x69, 0xfd, 0x21, 0x4a, 0xb9, 0x70, 0xcb, 0x4c, 0x7e, 0xb3, - 0xf3, 0x9f, 0xff, 0xac, 0x17, 0x9e, 0x86, 0xc4, 0xa7, 0x97, 0x8c, 0x1f, 0x5e, 0xbf, 0x3a, 0x8c, - 0x39, 0xbb, 0x26, 0x91, 0x1b, 0x79, 0xe4, 0x20, 0xe6, 0x4c, 0x30, 0xd4, 0x5b, 0xff, 0x29, 0xa3, - 0xdd, 0x9d, 0x02, 0xea, 0x46, 0x6e, 0x70, 0x23, 0xa8, 0xa7, 0x40, 0xf3, 0x9b, 0x06, 0xbb, 0x8b, - 0xbb, 0xea, 0x77, 0x34, 0x10, 0x84, 0xd3, 0x68, 0x85, 0xc9, 0xe7, 0x94, 0x24, 0x02, 0xed, 0x01, - 0x70, 0xf5, 0x73, 0x49, 0x7d, 0x43, 0x1b, 0x6a, 0x56, 0x17, 0x77, 0xd7, 0x99, 0x89, 0x8f, 0x5e, - 0x42, 0x93, 0x86, 0xee, 0x8a, 0x18, 0xb5, 0xa1, 0x66, 0xe9, 0xa3, 0xad, 0x83, 0x62, 0xdb, 0x03, - 0x4c, 0x12, 0x96, 0x72, 0x8f, 0x60, 0x05, 0xa1, 0x67, 0xd0, 0xe3, 0x24, 0x49, 0x03, 0xb1, 0x0c, - 0x68, 0x48, 0x85, 0x51, 0x1f, 0x6a, 0x56, 0x13, 0xeb, 0x2a, 0x37, 0xcd, 0x52, 0xe6, 0x57, 0x80, - 0x49, 0xc6, 0x9e, 0xb8, 0xc2, 0xbb, 0x42, 0x3b, 0xd0, 0x91, 0x95, 0x79, 0xef, 0xb6, 0x8c, 0x27, - 0x3e, 0x3a, 0x82, 0x7e, 0x98, 0x31, 0x34, 0x5a, 0x2d, 0xff, 0x45, 0xc2, 0xc6, 0x2d, 0x2d, 0x8f, - 0x47, 0x4f, 0xa0, 0x99, 0x78, 0x8c, 0x13, 0xa9, 0xa1, 0x86, 0x55, 0x60, 0x26, 0xb0, 0x59, 0x70, - 0x20, 0x53, 0x85, 0x46, 0xd0, 0x96, 0x95, 0x24, 0x31, 0xb4, 0x61, 0xdd, 0xd2, 0x47, 0x46, 0xb9, - 0x41, 0xae, 0x16, 0xdf, 0x82, 0x99, 0x2b, 0x31, 0x67, 0x17, 0x0f, 0xba, 0x22, 0x21, 0xf3, 0xa7, - 0x06, 0x5b, 0xf9, 0x06, 0xde, 0x73, 0x37, 0xbe, 0xfa, 0x2f, 0xee, 0xbf, 0x85, 0xfe, 0xa5, 0x1c, - 0x6e, 0xa9, 0x0c, 0x4f, 0x8c, 0xfa, 0x03, 0x03, 0x6d, 0x28, 0x5e, 0x39, 0x91, 0x98, 0x3f, 0x34, - 0xd0, 0xed, 0x24, 0x61, 0x1e, 0x75, 0x05, 0x65, 0x11, 0xda, 0x87, 0x86, 0xb8, 0x89, 0x89, 0xd4, - 0xd5, 0xaf, 0x76, 0x9f, 0xd2, 0xe8, 0xd3, 0xd9, 0x4d, 0x4c, 0xb0, 0x64, 0xd0, 0x16, 0xb4, 0x94, - 0x1a, 0xa9, 0xb5, 0x8b, 0xd7, 0x51, 0x96, 0x17, 0x2e, 0x5f, 0x11, 0x75, 0x19, 0xba, 0x78, 0x1d, - 0xe5, 0xfb, 0x69, 0x14, 0xf6, 0x83, 0x86, 0xa0, 0x93, 0x2f, 0x71, 0xe0, 0x46, 0x52, 0x80, 0xd1, - 0x94, 0x25, 0xc5, 0x94, 0xf9, 0x06, 0x1a, 0x33, 0xe6, 0x93, 0xbf, 0xdd, 0x9c, 0xbb, 0xa3, 0x6b, - 0xc5, 0xd5, 0x7f, 0xd7, 0x60, 0xb3, 0xb2, 0x05, 0x64, 0x41, 0x33, 0x62, 0xfe, 0xdd, 0xe6, 0x51, - 0x79, 0xc2, 0xac, 0x0f, 0x56, 0x00, 0x3a, 0x82, 0x9e, 0x9b, 0x3b, 0x93, 0x18, 0x35, 0x59, 0xb0, - 0x53, 0x2e, 0x28, 0x78, 0x87, 0x4b, 0x38, 0xda, 0x86, 0x36, 0x8b, 0xc5, 0x92, 0xa5, 0xca, 0x86, - 0x0e, 0x6e, 0xb1, 0x58, 0xcc, 0x53, 0xb1, 0x7f, 0x02, 0x9d, 0x5b, 0x23, 0x11, 0x40, 0xeb, 0x74, - 0x31, 0x9d, 0x8c, 0x9d, 0xc1, 0x23, 0xd4, 0x07, 0x58, 0xe0, 0xf9, 0x47, 0x67, 0x66, 0xcf, 0xc6, - 0xce, 0x40, 0x43, 0x3a, 0xb4, 0x4f, 0x17, 0x8e, 0xfd, 0xc1, 0xc1, 0x83, 0x5a, 0x06, 0x8e, 0xed, - 0x13, 0x07, 0xdb, 0x83, 0x3a, 0xea, 0x41, 0x67, 0x3a, 0x1f, 0xdb, 0x67, 0x93, 0xf9, 0x6c, 0xd0, - 0x18, 0xfd, 0xd2, 0x00, 0xf2, 0x21, 0xd1, 0x39, 0x3c, 0xfe, 0xc3, 0xa7, 0x8f, 0xac, 0xb2, 0xec, - 0xfb, 0x5f, 0x87, 0xdd, 0xbd, 0x32, 0x59, 0xfd, 0x76, 0xce, 0x61, 0xbb, 0x62, 0xe9, 0x71, 0x4a, - 0x03, 0x3f, 0xeb, 0xf1, 0xfc, 0xbe, 0x1e, 0xc5, 0xfb, 0x5f, 0x3d, 0xbf, 0x7a, 0xd8, 0x0b, 0x30, - 0x3c, 0x16, 0x16, 0x98, 0x15, 0x77, 0x43, 0xf5, 0xae, 0x1d, 0x17, 0x96, 0xb9, 0xc8, 0x12, 0x17, - 0x2d, 0x99, 0x7f, 0xfd, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x0c, 0xfb, 0x98, 0xff, 0x37, 0x05, 0x00, + // 625 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xcd, 0x6e, 0xd3, 0x4c, + 0x14, 0xfd, 0x9c, 0xff, 0xdc, 0xa4, 0x69, 0x34, 0x1f, 0x6a, 0xdd, 0xa2, 0x4a, 0x21, 0x62, 0x11, + 0x55, 0x28, 0x11, 0x61, 0xc1, 0xaa, 0x42, 0x69, 0x14, 0x50, 0x44, 0x9a, 0x44, 0xd3, 0x8a, 0x05, + 0x8b, 0x46, 0x53, 0x7b, 0xea, 0x8e, 0x1a, 0x7b, 0xcc, 0xcc, 0xb8, 0xa2, 0x12, 0x8f, 0xc0, 0x8e, + 0x27, 0x60, 0xc3, 0xd3, 0xf0, 0x50, 0xc8, 0x33, 0xf9, 0xb1, 0x2d, 0x4a, 0xd9, 0xb0, 0x4a, 0xee, + 0xf5, 0xb9, 0xf7, 0x9c, 0x7b, 0xee, 0xcc, 0xc0, 0x53, 0x9f, 0xba, 0xec, 0x9a, 0x8b, 0xde, 0xdd, + 0xcb, 0x5e, 0x28, 0xf8, 0x1d, 0x0d, 0x48, 0xe0, 0xd0, 0x6e, 0x28, 0xb8, 0xe2, 0xa8, 0xbe, 0xfa, + 0xa8, 0xa3, 0xc3, 0x83, 0x04, 0x94, 0x04, 0x64, 0x79, 0xaf, 0x98, 0x63, 0x80, 0xed, 0xaf, 0x16, + 0x1c, 0xce, 0x37, 0xd5, 0x6f, 0xd9, 0x52, 0x51, 0xc1, 0x02, 0x0f, 0xd3, 0x4f, 0x11, 0x95, 0x0a, + 0x1d, 0x01, 0x08, 0xf3, 0x77, 0xc1, 0x5c, 0xdb, 0x6a, 0x59, 0x9d, 0x2a, 0xae, 0xae, 0x32, 0x63, + 0x17, 0xbd, 0x80, 0x22, 0xf3, 0x89, 0x47, 0xed, 0x5c, 0xcb, 0xea, 0xd4, 0xfa, 0x7b, 0xdd, 0x24, + 0x6d, 0x17, 0x53, 0xc9, 0x23, 0xe1, 0x50, 0x6c, 0x40, 0xe8, 0x19, 0xd4, 0x05, 0x95, 0xd1, 0x52, + 0x2d, 0x96, 0xcc, 0x67, 0xca, 0xce, 0xb7, 0xac, 0x4e, 0x11, 0xd7, 0x4c, 0x6e, 0x12, 0xa7, 0xda, + 0x5f, 0x00, 0xc6, 0x31, 0xf6, 0x8c, 0x28, 0xe7, 0x06, 0x1d, 0x40, 0x45, 0x57, 0x6e, 0xb9, 0xcb, + 0x3a, 0x1e, 0xbb, 0xe8, 0x04, 0x1a, 0x7e, 0x8c, 0x61, 0x81, 0xb7, 0xf8, 0x1b, 0x09, 0x3b, 0x6b, + 0xb4, 0x6e, 0x8f, 0x9e, 0x40, 0x51, 0x3a, 0x5c, 0x50, 0xad, 0x21, 0x87, 0x4d, 0xd0, 0x96, 0xb0, + 0x9b, 0x70, 0x20, 0x56, 0x85, 0xfa, 0x50, 0xd6, 0x95, 0x54, 0xda, 0x56, 0x2b, 0xdf, 0xa9, 0xf5, + 0xed, 0x34, 0xc1, 0x56, 0x2d, 0x5e, 0x03, 0x63, 0x57, 0x42, 0xc1, 0xaf, 0x1e, 0x75, 0x45, 0x83, + 0xda, 0x3f, 0x2c, 0xd8, 0xdb, 0x6e, 0xe0, 0x9d, 0x20, 0xe1, 0xcd, 0x3f, 0x71, 0xff, 0x0d, 0x34, + 0xae, 0xf5, 0x70, 0x0b, 0x63, 0xb8, 0xb4, 0xf3, 0x8f, 0x0c, 0xb4, 0x63, 0xf0, 0xc6, 0x09, 0xd9, + 0xfe, 0x6e, 0x41, 0x6d, 0x20, 0x25, 0x77, 0x18, 0x51, 0x8c, 0x07, 0xe8, 0x18, 0x0a, 0xea, 0x3e, + 0xa4, 0x5a, 0x57, 0x23, 0xcb, 0x3e, 0x61, 0xc1, 0xed, 0xc5, 0x7d, 0x48, 0xb1, 0xc6, 0xa0, 0x3d, + 0x28, 0x19, 0x35, 0x5a, 0x6b, 0x15, 0xaf, 0xa2, 0x38, 0xaf, 0x88, 0xf0, 0xa8, 0x39, 0x0c, 0x55, + 0xbc, 0x8a, 0xb6, 0xfb, 0x29, 0x24, 0xf6, 0x83, 0x5a, 0x50, 0xa3, 0x9f, 0xc3, 0x25, 0x09, 0xb4, + 0x00, 0xbb, 0xa8, 0x4b, 0x92, 0xa9, 0xf6, 0x6b, 0x28, 0x4c, 0xb9, 0x4b, 0xff, 0x74, 0x72, 0x36, + 0xad, 0x73, 0xc9, 0xd5, 0x7f, 0xb3, 0x60, 0x37, 0xb3, 0x05, 0xd4, 0x81, 0x62, 0xc0, 0xdd, 0xcd, + 0xe6, 0x51, 0x7a, 0xc2, 0x98, 0x07, 0x1b, 0x00, 0x3a, 0x81, 0x3a, 0xd9, 0x3a, 0x23, 0xed, 0x9c, + 0x2e, 0x38, 0x48, 0x17, 0x24, 0xbc, 0xc3, 0x29, 0x38, 0xda, 0x87, 0x32, 0x0f, 0xd5, 0x82, 0x47, + 0xc6, 0x86, 0x0a, 0x2e, 0xf1, 0x50, 0xcd, 0x22, 0x75, 0x7c, 0x06, 0x95, 0xb5, 0x91, 0x08, 0xa0, + 0x74, 0x3e, 0x9f, 0x8c, 0x87, 0xa3, 0xe6, 0x7f, 0xa8, 0x01, 0x30, 0xc7, 0xb3, 0x0f, 0xa3, 0xe9, + 0x60, 0x3a, 0x1c, 0x35, 0x2d, 0x54, 0x83, 0xf2, 0xf9, 0x7c, 0x34, 0x78, 0x3f, 0xc2, 0xcd, 0x5c, + 0x0c, 0x1c, 0x0e, 0xce, 0x46, 0x78, 0xd0, 0xcc, 0xa3, 0x3a, 0x54, 0x26, 0xb3, 0xe1, 0xe0, 0x62, + 0x3c, 0x9b, 0x36, 0x0b, 0xfd, 0x9f, 0x16, 0xc0, 0x76, 0x48, 0x74, 0x09, 0xff, 0xff, 0xe6, 0xea, + 0xa3, 0x4e, 0x5a, 0xf6, 0xc3, 0xaf, 0xc3, 0xe1, 0x51, 0x1a, 0x99, 0xbd, 0x3b, 0x97, 0xb0, 0x9f, + 0xb1, 0xf4, 0x34, 0x62, 0x4b, 0x37, 0xe6, 0x78, 0xfe, 0x10, 0x47, 0xf2, 0xfc, 0x67, 0xfb, 0x67, + 0x9b, 0x2d, 0xc0, 0x76, 0xb8, 0x9f, 0xc0, 0x78, 0x82, 0xf8, 0xe6, 0x5d, 0x3b, 0x4d, 0x2c, 0x73, + 0x1e, 0x27, 0x3e, 0xf6, 0x3d, 0xa6, 0x6e, 0xa2, 0xab, 0xae, 0xc3, 0xfd, 0x5e, 0x5c, 0x41, 0xae, + 0xb9, 0xa0, 0x81, 0x64, 0x8e, 0xec, 0xad, 0x5f, 0xc7, 0xf0, 0xd6, 0xeb, 0x25, 0x09, 0xaf, 0x4a, + 0xfa, 0xe7, 0xd5, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1b, 0xf4, 0xcb, 0xd8, 0x6b, 0x05, 0x00, 0x00, } diff --git a/pkg/mediforproto/streamingproxy.pb.go b/pkg/mediforproto/streamingproxy.pb.go index 544cb29..c00c48c 100644 --- a/pkg/mediforproto/streamingproxy.pb.go +++ b/pkg/mediforproto/streamingproxy.pb.go @@ -193,25 +193,27 @@ func init() { func init() { proto.RegisterFile("medifor/v1/streamingproxy.proto", fileDescriptor_1c83d807c84235b2) } var fileDescriptor_1c83d807c84235b2 = []byte{ - // 285 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x50, 0xcd, 0x4e, 0x83, 0x40, - 0x10, 0x76, 0xed, 0x8f, 0x32, 0x25, 0x3d, 0x6c, 0x8c, 0x62, 0x35, 0x29, 0xe9, 0x89, 0x13, 0xd5, - 0x7a, 0xd0, 0x73, 0x35, 0xc6, 0x93, 0x31, 0xe8, 0x1d, 0xb7, 0x74, 0xd0, 0x8d, 0xc0, 0x12, 0x98, - 0x36, 0xf2, 0x0c, 0xfa, 0xd0, 0x86, 0x5d, 0xa8, 0x4d, 0x8c, 0xbd, 0xed, 0xf7, 0x37, 0xfb, 0xcd, - 0xc0, 0x38, 0xc5, 0xa5, 0x8c, 0x55, 0x31, 0x5d, 0x5f, 0x4e, 0x4b, 0x2a, 0x50, 0xa4, 0x32, 0x7b, - 0xcb, 0x0b, 0xf5, 0x59, 0xf9, 0x79, 0xa1, 0x48, 0x71, 0xbb, 0x31, 0x68, 0x34, 0x3a, 0xdd, 0xb2, - 0x8b, 0x4c, 0x24, 0x15, 0xc9, 0xc8, 0x18, 0x27, 0x5f, 0x0c, 0xac, 0x7b, 0x99, 0xe0, 0xed, 0xfb, - 0x2a, 0xfb, 0xe0, 0x1c, 0xba, 0x99, 0x48, 0xd1, 0x61, 0x2e, 0xf3, 0xac, 0x40, 0xbf, 0xf9, 0x19, - 0x58, 0xa9, 0x4c, 0x31, 0xa4, 0x2a, 0x47, 0x67, 0x5f, 0x0b, 0x87, 0x35, 0xf1, 0x52, 0xe5, 0xc8, - 0x8f, 0xa1, 0xaf, 0xe2, 0xb8, 0x44, 0x72, 0x3a, 0x2e, 0xf3, 0x3a, 0x41, 0x83, 0xf8, 0x18, 0x06, - 0xa4, 0x48, 0x24, 0xe1, 0xa2, 0x22, 0x2c, 0x9d, 0xae, 0x16, 0x41, 0x53, 0xf3, 0x9a, 0xe1, 0x47, - 0xd0, 0x5b, 0x8b, 0x64, 0x85, 0x4e, 0xcf, 0x65, 0x9e, 0x1d, 0x18, 0x30, 0xf9, 0x66, 0x30, 0xbc, - 0x43, 0xc2, 0x88, 0xa4, 0xca, 0x4c, 0xa5, 0x6b, 0xb0, 0x96, 0x2d, 0xa3, 0x7b, 0x0d, 0x66, 0x27, - 0xfe, 0xf6, 0x76, 0xfe, 0x26, 0xf0, 0xb0, 0x17, 0xfc, 0x7a, 0xf9, 0x0d, 0x40, 0x2c, 0x13, 0x0c, - 0xa3, 0x7a, 0x8c, 0x2e, 0xfe, 0x27, 0xb9, 0x59, 0xbc, 0x4e, 0xc6, 0x2d, 0x98, 0x1f, 0x34, 0xdd, - 0x66, 0xaf, 0x30, 0x7c, 0x6e, 0xaf, 0xfb, 0x54, 0x5f, 0x97, 0x3f, 0x82, 0x6d, 0xbe, 0x33, 0x3c, - 0x3f, 0xff, 0xa7, 0x8a, 0x1e, 0x34, 0xda, 0xa9, 0x7a, 0xec, 0x82, 0x2d, 0xfa, 0x5a, 0xb9, 0xfa, - 0x09, 0x00, 0x00, 0xff, 0xff, 0xea, 0x5d, 0xc7, 0x32, 0xd1, 0x01, 0x00, 0x00, + // 319 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x51, 0x3d, 0x4f, 0xc3, 0x30, + 0x10, 0xc5, 0xf4, 0x03, 0x72, 0xad, 0x3a, 0x58, 0x08, 0x42, 0x41, 0x6a, 0xd5, 0x29, 0x53, 0x02, + 0x05, 0x09, 0xe6, 0x82, 0x10, 0x13, 0x42, 0x81, 0x89, 0xa5, 0xb8, 0xe9, 0xa5, 0xb5, 0x1a, 0xdb, + 0x51, 0xe2, 0x56, 0xe4, 0x37, 0xc0, 0x8f, 0x46, 0x76, 0x9a, 0x12, 0x09, 0xc1, 0x64, 0xbf, 0x77, + 0xef, 0x9e, 0xdf, 0x9d, 0x61, 0x20, 0x70, 0xce, 0x63, 0x95, 0x05, 0x9b, 0xcb, 0x20, 0xd7, 0x19, + 0x32, 0xc1, 0xe5, 0x22, 0xcd, 0xd4, 0x47, 0xe1, 0xa7, 0x99, 0xd2, 0x8a, 0x76, 0xb7, 0x02, 0x8b, + 0xfa, 0xa7, 0x35, 0x39, 0x93, 0x2c, 0x29, 0x34, 0x8f, 0x4a, 0xe1, 0xe8, 0x93, 0x80, 0xf3, 0xc0, + 0x13, 0xbc, 0x5b, 0xae, 0xe5, 0x8a, 0x52, 0x68, 0x4a, 0x26, 0xd0, 0x25, 0x43, 0xe2, 0x39, 0xa1, + 0xbd, 0xd3, 0x33, 0x70, 0x04, 0x17, 0x38, 0xd5, 0x45, 0x8a, 0xee, 0xbe, 0x2d, 0x1c, 0x1a, 0xe2, + 0xb5, 0x48, 0x91, 0x1e, 0x43, 0x5b, 0xc5, 0x71, 0x8e, 0xda, 0x6d, 0x0c, 0x89, 0xd7, 0x08, 0xb7, + 0x88, 0x0e, 0xa0, 0xa3, 0x95, 0x66, 0xc9, 0x74, 0x56, 0x68, 0xcc, 0xdd, 0xa6, 0x2d, 0x82, 0xa5, + 0x26, 0x86, 0xa1, 0x47, 0xd0, 0xda, 0xb0, 0x64, 0x8d, 0x6e, 0x6b, 0x48, 0xbc, 0x6e, 0x58, 0x82, + 0xd1, 0x17, 0x81, 0xde, 0x3d, 0x6a, 0x8c, 0x34, 0x57, 0xb2, 0x8c, 0x74, 0x03, 0xce, 0xbc, 0x62, + 0x6c, 0xae, 0xce, 0xf8, 0xc4, 0xaf, 0x4f, 0xe7, 0xef, 0x1a, 0x1e, 0xf7, 0xc2, 0x1f, 0x2d, 0xbd, + 0x05, 0x88, 0x79, 0x82, 0xd3, 0xc8, 0xd8, 0xd8, 0xe0, 0xbf, 0x3a, 0x77, 0x83, 0x9b, 0xce, 0xb8, + 0x02, 0x93, 0x83, 0x6d, 0xb6, 0xf1, 0x3b, 0xf4, 0x5e, 0xaa, 0xed, 0x3e, 0x9b, 0xed, 0xd2, 0x27, + 0xe8, 0x96, 0xcf, 0x95, 0x3c, 0x3d, 0xff, 0x23, 0x8a, 0x35, 0xea, 0xff, 0x5b, 0xf5, 0xc8, 0x05, + 0x99, 0x5c, 0xbf, 0x8d, 0x17, 0x5c, 0x2f, 0xd7, 0x33, 0x3f, 0x52, 0x22, 0x30, 0x6a, 0x16, 0xab, + 0x0c, 0x65, 0xce, 0xa3, 0x3c, 0xa8, 0x7e, 0x2d, 0x5d, 0x2d, 0x82, 0xba, 0xd1, 0xac, 0x6d, 0x8f, + 0xab, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf4, 0x9f, 0x68, 0x49, 0x07, 0x02, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/pkg/mediforproto/task.pb.go b/pkg/mediforproto/task.pb.go index 36a688e..0aa767d 100644 --- a/pkg/mediforproto/task.pb.go +++ b/pkg/mediforproto/task.pb.go @@ -254,32 +254,35 @@ func init() { func init() { proto.RegisterFile("medifor/v1/task.proto", fileDescriptor_fe6fd396ef9e302f) } var fileDescriptor_fe6fd396ef9e302f = []byte{ - // 429 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0x4d, 0x6f, 0xd3, 0x40, - 0x10, 0x95, 0xed, 0x34, 0xc9, 0x4e, 0x5a, 0x84, 0x56, 0x41, 0xdd, 0x1a, 0x21, 0x4c, 0x24, 0x24, - 0x23, 0x21, 0x17, 0x8a, 0xa0, 0x7c, 0x5c, 0xa1, 0x52, 0x0e, 0x1c, 0x30, 0xe1, 0x6c, 0x2d, 0xde, - 0x49, 0xb5, 0x4a, 0x63, 0x83, 0x77, 0xb7, 0x52, 0xfe, 0x25, 0x37, 0xfe, 0x0e, 0xda, 0xf5, 0x47, - 0x63, 0x54, 0x88, 0xd2, 0x9b, 0xe7, 0xbd, 0x79, 0xe3, 0x37, 0x3b, 0x0f, 0x1e, 0xac, 0x51, 0xc8, - 0x65, 0x59, 0x9d, 0x5e, 0xbf, 0x3c, 0xd5, 0x5c, 0xad, 0x92, 0x1f, 0x55, 0xa9, 0x4b, 0x7a, 0xd8, - 0xc0, 0xae, 0x0a, 0x4f, 0xb6, 0x9a, 0x78, 0xc1, 0xaf, 0x36, 0x5a, 0xe6, 0x75, 0x63, 0x78, 0xbc, - 0x45, 0x2d, 0x8d, 0x92, 0x65, 0x51, 0x13, 0xb3, 0x5f, 0x03, 0x38, 0xfa, 0x88, 0x1a, 0x73, 0x2d, - 0xcb, 0x62, 0xc1, 0xd5, 0x8a, 0xde, 0x03, 0x5f, 0x0a, 0xe6, 0x45, 0x5e, 0x4c, 0x52, 0x5f, 0x0a, - 0xfa, 0x18, 0x26, 0xed, 0xb0, 0x4c, 0x0a, 0xe6, 0x47, 0x41, 0x4c, 0x52, 0x68, 0xa1, 0xb9, 0xa0, - 0x27, 0x30, 0x5e, 0x1a, 0x85, 0x95, 0x65, 0x89, 0x63, 0x47, 0xae, 0x9e, 0x0b, 0xfa, 0x1a, 0x88, - 0x68, 0x87, 0xb3, 0x20, 0xf2, 0xe2, 0xc9, 0xd9, 0x71, 0xb2, 0xed, 0x39, 0xe9, 0xfe, 0x9d, 0xde, - 0x74, 0xd2, 0x47, 0x00, 0xa2, 0x2c, 0x30, 0xfb, 0x69, 0xd0, 0x20, 0x1b, 0x38, 0x2b, 0xc4, 0x22, - 0x5f, 0x2c, 0x40, 0xdf, 0xc1, 0x40, 0xf3, 0x4b, 0xc5, 0x0e, 0xa2, 0x20, 0x9e, 0x9c, 0x3d, 0xfd, - 0xc7, 0x40, 0xbb, 0x4c, 0xb2, 0xe0, 0x97, 0xea, 0x53, 0xa1, 0xab, 0x4d, 0xea, 0x24, 0xf4, 0x02, - 0x88, 0xb3, 0xea, 0xf4, 0x23, 0xa7, 0x7f, 0xf6, 0x3f, 0xfd, 0x37, 0x85, 0xd5, 0xcd, 0x8c, 0xb1, - 0x69, 0x4a, 0x6b, 0x61, 0x8d, 0x9a, 0xb3, 0xf1, 0x6e, 0x0b, 0x9f, 0x51, 0xf3, 0xc6, 0x82, 0x95, - 0xd0, 0x17, 0x30, 0xed, 0xde, 0x53, 0xcb, 0x35, 0x96, 0x46, 0x67, 0x0a, 0x73, 0x36, 0x8c, 0xbc, - 0x38, 0x48, 0x69, 0xcb, 0x2d, 0x6a, 0xea, 0x2b, 0xe6, 0xe1, 0x39, 0x90, 0xce, 0x03, 0xbd, 0x0f, - 0xc1, 0x0a, 0x37, 0xcd, 0x7d, 0xec, 0x27, 0x9d, 0xc2, 0xc1, 0x35, 0xbf, 0x32, 0xc8, 0x7c, 0x87, - 0xd5, 0xc5, 0x7b, 0xff, 0xad, 0x17, 0x7e, 0x80, 0xa3, 0xde, 0x02, 0x7b, 0x89, 0xcf, 0x81, 0x74, - 0xd6, 0xf7, 0x11, 0xce, 0x7e, 0xfb, 0x00, 0x17, 0x2e, 0x63, 0x2e, 0x4f, 0x0f, 0x81, 0x98, 0xc2, - 0x28, 0x14, 0x59, 0x17, 0xab, 0x71, 0x0d, 0xfc, 0x95, 0x1d, 0xbf, 0x9f, 0x9d, 0xe7, 0x30, 0xac, - 0x93, 0xda, 0x04, 0x67, 0xda, 0x7f, 0xe4, 0xfa, 0x0f, 0x69, 0xd3, 0xb3, 0x2b, 0x32, 0x6f, 0x7a, - 0x91, 0x99, 0xdd, 0x36, 0xea, 0xd6, 0xbc, 0xec, 0x7d, 0x2c, 0xfa, 0x04, 0x0e, 0xbb, 0x20, 0xdb, - 0xad, 0x46, 0xce, 0xca, 0xa4, 0xc3, 0xe6, 0xe2, 0xce, 0xf7, 0xfc, 0x3e, 0x74, 0x7e, 0x5f, 0xfd, - 0x09, 0x00, 0x00, 0xff, 0xff, 0x38, 0xa4, 0x12, 0xbf, 0x0e, 0x04, 0x00, 0x00, + // 465 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x53, 0xdd, 0x6f, 0xd3, 0x3e, + 0x14, 0x55, 0x92, 0xae, 0xad, 0x6f, 0xb7, 0x9f, 0x7e, 0xb2, 0x8a, 0x96, 0x15, 0x21, 0x42, 0x25, + 0xa4, 0x20, 0xa1, 0x04, 0xca, 0xc7, 0xf8, 0x78, 0x43, 0x30, 0xa9, 0x0f, 0x3c, 0x10, 0xca, 0x0b, + 0x2f, 0x95, 0x17, 0xdf, 0x16, 0xab, 0x6b, 0x3c, 0x62, 0x7b, 0x52, 0xff, 0x4b, 0xde, 0xf8, 0x77, + 0x90, 0x9d, 0x8f, 0xb5, 0x68, 0x30, 0x95, 0xa7, 0xf6, 0x9e, 0x73, 0xcf, 0xf5, 0xb9, 0xf6, 0x09, + 0xdc, 0x59, 0x23, 0x17, 0x0b, 0x59, 0xa6, 0x57, 0x4f, 0x53, 0xcd, 0xd4, 0x2a, 0xb9, 0x2c, 0xa5, + 0x96, 0xf4, 0xb0, 0x86, 0x5d, 0x35, 0x3a, 0xd9, 0x6a, 0x62, 0x05, 0xbb, 0xd8, 0x68, 0x91, 0x57, + 0x8d, 0xa3, 0xe3, 0x2d, 0x6a, 0x61, 0x94, 0x90, 0x45, 0x45, 0x8c, 0x7f, 0x74, 0xe0, 0xe8, 0x3d, + 0x6a, 0xcc, 0xb5, 0x90, 0xc5, 0x8c, 0xa9, 0x15, 0xfd, 0x0f, 0x7c, 0xc1, 0x43, 0x2f, 0xf2, 0x62, + 0x92, 0xf9, 0x82, 0xd3, 0xfb, 0x30, 0x68, 0x86, 0xcd, 0x05, 0x0f, 0xfd, 0x28, 0x88, 0x49, 0x06, + 0x0d, 0x34, 0xe5, 0xf4, 0x04, 0xfa, 0x0b, 0xa3, 0xb0, 0xb4, 0x2c, 0x71, 0x6c, 0xcf, 0xd5, 0x53, + 0x4e, 0x5f, 0x00, 0xe1, 0xcd, 0xf0, 0x30, 0x88, 0xbc, 0x78, 0x30, 0x39, 0x4e, 0xb6, 0x3d, 0x27, + 0xed, 0xd9, 0xd9, 0x75, 0x27, 0xbd, 0x07, 0xc0, 0x65, 0x81, 0xf3, 0xef, 0x06, 0x0d, 0x86, 0x1d, + 0x67, 0x85, 0x58, 0xe4, 0x93, 0x05, 0xe8, 0x6b, 0xe8, 0x68, 0xb6, 0x54, 0xe1, 0x41, 0x14, 0xc4, + 0x83, 0xc9, 0xc3, 0x3f, 0x0c, 0xb4, 0xcb, 0x24, 0x33, 0xb6, 0x54, 0x1f, 0x0a, 0x5d, 0x6e, 0x32, + 0x27, 0xa1, 0x67, 0x40, 0x9c, 0x55, 0xa7, 0xef, 0x39, 0xfd, 0xa3, 0xbf, 0xe9, 0xbf, 0x28, 0x2c, + 0xaf, 0x67, 0xf4, 0x4d, 0x5d, 0x5a, 0x0b, 0x6b, 0xd4, 0x2c, 0xec, 0xdf, 0x6e, 0xe1, 0x23, 0x6a, + 0x56, 0x5b, 0xb0, 0x12, 0xfa, 0x04, 0x86, 0xed, 0x7d, 0x6a, 0xb1, 0x46, 0x69, 0xf4, 0x5c, 0x61, + 0x1e, 0x76, 0x23, 0x2f, 0x0e, 0x32, 0xda, 0x70, 0xb3, 0x8a, 0xfa, 0x8c, 0xf9, 0xe8, 0x14, 0x48, + 0xeb, 0x81, 0xfe, 0x0f, 0xc1, 0x0a, 0x37, 0xf5, 0xfb, 0xd8, 0xbf, 0x74, 0x08, 0x07, 0x57, 0xec, + 0xc2, 0x60, 0xe8, 0x3b, 0xac, 0x2a, 0xde, 0xf8, 0xaf, 0xbc, 0xd1, 0x5b, 0x38, 0xda, 0x59, 0x60, + 0x2f, 0xf1, 0x29, 0x90, 0xd6, 0xfa, 0x3e, 0xc2, 0xf1, 0x4f, 0x1f, 0xe0, 0xcc, 0x65, 0xcc, 0xe5, + 0xe9, 0x2e, 0x10, 0x53, 0x18, 0x85, 0x7c, 0xde, 0xc6, 0xaa, 0x5f, 0x01, 0xbf, 0x65, 0xc7, 0xdf, + 0xcd, 0xce, 0x63, 0xe8, 0x56, 0x49, 0xad, 0x83, 0x33, 0xdc, 0xbd, 0xe4, 0xea, 0x84, 0xac, 0xee, + 0xb9, 0x2d, 0x32, 0x2f, 0x77, 0x22, 0x33, 0xbe, 0x69, 0xd4, 0x8d, 0x79, 0xd9, 0xfb, 0xb1, 0xe8, + 0x03, 0x38, 0x6c, 0x83, 0x6c, 0xb7, 0xea, 0x39, 0x2b, 0x83, 0x16, 0x9b, 0xf2, 0x7f, 0x7e, 0xcf, + 0x77, 0xcf, 0xbf, 0x4e, 0x96, 0x42, 0x7f, 0x33, 0xe7, 0x49, 0x2e, 0xd7, 0xa9, 0xdd, 0x81, 0x2d, + 0x64, 0x89, 0x85, 0x12, 0xb9, 0x4a, 0x9b, 0x2f, 0xfc, 0x72, 0xb5, 0x4c, 0xb7, 0xd7, 0x3b, 0xef, + 0xba, 0x9f, 0x67, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x73, 0x91, 0x14, 0x39, 0x44, 0x04, 0x00, + 0x00, } diff --git a/proto/medifor/v1/analytic.proto b/proto/medifor/v1/analytic.proto index f8607bd..1cc41ea 100644 --- a/proto/medifor/v1/analytic.proto +++ b/proto/medifor/v1/analytic.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package mediforproto; +option go_package = "github.com/mediaforensics/medifor/pkg/mediforproto"; + import "google/rpc/status.proto"; @@ -36,7 +38,7 @@ enum ManipulationType { enum SpecificityType { SPEC_GLOBAL = 0; - SPEC_FRAME = 1; + SPEC_FRAM = 1; SPEC_PIXEL = 2; SPEC_METADATA = 3; } diff --git a/proto/medifor/v1/fusion.proto b/proto/medifor/v1/fusion.proto index 145a9a7..cc8a40e 100644 --- a/proto/medifor/v1/fusion.proto +++ b/proto/medifor/v1/fusion.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package mediforproto; +option go_package = "github.com/mediaforensics/medifor/pkg/mediforproto"; + import "google/rpc/status.proto"; import "medifor/v1/analytic.proto"; diff --git a/proto/medifor/v1/kill.proto b/proto/medifor/v1/kill.proto index 790f4c6..f0560b0 100644 --- a/proto/medifor/v1/kill.proto +++ b/proto/medifor/v1/kill.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package mediforproto; +option go_package = "github.com/mediaforensics/medifor/pkg/mediforproto"; + option java_package = "com.mediforprogram.proto"; option java_outer_classname = "KillProto"; diff --git a/proto/medifor/v1/pipeline.proto b/proto/medifor/v1/pipeline.proto index e280728..58699d2 100644 --- a/proto/medifor/v1/pipeline.proto +++ b/proto/medifor/v1/pipeline.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package mediforproto; +option go_package = "github.com/mediaforensics/medifor/pkg/mediforproto"; + import "medifor/v1/analytic.proto"; import "medifor/v1/fusion.proto"; @@ -66,7 +68,7 @@ message DetectionRequest { string id = 3; // A Detection proto with just the important request parts filled out. - mediforproto.Detection request = 1; + Detection request = 1; // The analytics to run. repeated string analytic_id = 2; @@ -105,7 +107,7 @@ message AnalyticDetectionInfo { // The Detection with the result and status filled out (and the request). // If the response and status are empty (default), then it is not finished. - mediforproto.Detection detection = 4; + Detection detection = 4; } // DetectionInfo provides details on a given detection event specified by the id. @@ -117,7 +119,7 @@ message DetectionInfo { // A list of input resources for this detection. Usually a singleton, but can // contain multiple if multiple are accepted for this particular kind of // request - repeated mediforproto.Resource req_resources = 11; + repeated Resource req_resources = 11; // Results for individual analytics. repeated AnalyticDetectionInfo analytic_info = 2; @@ -230,7 +232,7 @@ message FusionRequest{ // A Fusion Proto containing the original probe as well as the detection objects from // each analytic that ran over that probe. - mediforproto.Fusion request = 2; + Fusion request = 2; // IDs for the fusion analytics repeated string fuser_id = 4; @@ -262,7 +264,7 @@ message FuserFusionInfo { // The Fusion with the result and status filled out (and the request). // If the response and status are empty (default), then it is not finished. - mediforproto.Fusion fusion = 4; + Fusion fusion = 4; } // FusionInfo provides details on a given fusion event specified by the ID. diff --git a/proto/medifor/v1/provenance.proto b/proto/medifor/v1/provenance.proto index b6b7a52..464abfe 100644 --- a/proto/medifor/v1/provenance.proto +++ b/proto/medifor/v1/provenance.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package mediforproto; +option go_package = "github.com/mediaforensics/medifor/pkg/mediforproto"; option java_package = "com.mediforprogram.proto"; option java_outer_classname = "ProvenanceProto"; diff --git a/proto/medifor/v1/streamingproxy.proto b/proto/medifor/v1/streamingproxy.proto index 452de2f..c68cd73 100644 --- a/proto/medifor/v1/streamingproxy.proto +++ b/proto/medifor/v1/streamingproxy.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package mediforproto; +option go_package = "github.com/mediaforensics/medifor/pkg/mediforproto"; import "medifor/v1/analytic.proto"; // FileChunk contains a single chunk of a file. It is intended to be part of a diff --git a/proto/medifor/v1/task.proto b/proto/medifor/v1/task.proto index 00bf74e..b966d22 100644 --- a/proto/medifor/v1/task.proto +++ b/proto/medifor/v1/task.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package mediforproto; +option go_package = "github.com/mediaforensics/medifor/pkg/mediforproto"; import "medifor/v1/analytic.proto"; // -I gitlab.mediforprogram.com/medifor/medifor-proto/proto import "medifor/v1/fusion.proto"; // -I gitlab.mediforprogram.com/medifor/medifor-proto/proto From 698103623f5f4058fb67c1348a52109ef43e5219 Mon Sep 17 00:00:00 2001 From: Chris Monson Date: Fri, 2 Apr 2021 14:24:46 -0600 Subject: [PATCH 3/4] Simplify interface for resource finding, make more strongly typed. --- cmd/analyticworkflow/cmd/root.go | 12 ++++++------ go.mod | 4 ++-- go.sum | 24 +++++++++++++++--------- pkg/analytic/analytic.go | 22 ++++++++++++++++++---- pkg/analytic/analytic_test.go | 32 ++++++++++++++++++++------------ 5 files changed, 61 insertions(+), 33 deletions(-) diff --git a/cmd/analyticworkflow/cmd/root.go b/cmd/analyticworkflow/cmd/root.go index 06d8337..62c3915 100644 --- a/cmd/analyticworkflow/cmd/root.go +++ b/cmd/analyticworkflow/cmd/root.go @@ -21,18 +21,18 @@ import ( "github.com/golang/protobuf/jsonpb" "github.com/google/uuid" "github.com/lib/pq" - homedir "github.com/mitchellh/go-homedir" - "github.com/pkg/errors" - "github.com/spf13/cobra" - "github.com/spf13/viper" "github.com/mediaforensics/medifor/pkg/analytic" "github.com/mediaforensics/medifor/pkg/configlist" "github.com/mediaforensics/medifor/pkg/fanoutworker" "github.com/mediaforensics/medifor/pkg/fusionfanoutworker" "github.com/mediaforensics/medifor/pkg/fusiongenworker" + "github.com/mediaforensics/medifor/pkg/medifor" "github.com/mediaforensics/medifor/pkg/outboxworker" "github.com/mediaforensics/medifor/pkg/pg" - "github.com/mediaforensics/medifor/pkg/medifor" + homedir "github.com/mitchellh/go-homedir" + "github.com/pkg/errors" + "github.com/spf13/cobra" + "github.com/spf13/viper" "golang.org/x/sync/errgroup" "google.golang.org/grpc" "google.golang.org/grpc/codes" @@ -734,7 +734,7 @@ func (t pageToken) Encode() string { // If there are no analytics in it, this is a no-op. func annotateDetectionInfoResources(dInfo *pb.DetectionInfo) error { if len(dInfo.GetAnalyticInfo()) != 0 { - resources, err := analytic.FindResources(dInfo.GetAnalyticInfo()[0].GetDetection().GetRequest()) + resources, err := analytic.FindDetectionRequestResources(dInfo.GetAnalyticInfo()[0].GetDetection()) if err != nil { return errors.Wrap(err, "find resources in analytic list") } diff --git a/go.mod b/go.mod index 19a23f5..c7e4d84 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require ( entrogo.com/entroq v0.3.19 github.com/go-ini/ini v1.52.0 // indirect github.com/golang/protobuf v1.4.1 + github.com/google/go-cmp v0.5.0 github.com/google/uuid v1.1.1 github.com/h2non/filetype v1.0.12 github.com/lib/pq v1.8.0 @@ -15,11 +16,10 @@ require ( github.com/prometheus/client_golang v0.9.3 github.com/spf13/cobra v0.0.6 github.com/spf13/viper v1.6.2 - golang.org/x/net v0.0.0-20200301022130-244492dfa37a + golang.org/x/net v0.0.0-20200301022130-244492dfa37a // indirect golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 google.golang.org/grpc v1.27.1 - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.1 // indirect google.golang.org/protobuf v1.25.0 // indirect gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 ) diff --git a/go.sum b/go.sum index 3bb6b56..9e2fe19 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= entrogo.com/entroq v0.3.19 h1:CC6TLJqQXFHBNyiUxJ8utKUuKsU8s6FjhwrNHx0Cypc= entrogo.com/entroq v0.3.19/go.mod h1:hFQDSR576YMu/1O+edUltWvkBu8D+KsJZZN9aZvQKSc= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -19,6 +20,7 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= @@ -35,15 +37,13 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4 h1:87PNWwrRvUSnqS4dlcBU/ftvOIBep4sYuBLlh6rX2wk= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -56,10 +56,12 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -69,16 +71,20 @@ github.com/h2non/filetype v1.0.12 h1:yHCsIe0y2cvbDARtJhGBTD2ecvqMSTvlIcph9En/Zao github.com/h2non/filetype v1.0.12/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.8.0 h1:9xohqzkUwzR4Ga4ivdTcawVS89YSDVxXMa3xJX3cGzg= @@ -102,6 +108,7 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3 h1:9iH4JKXLzFbOAdtqv/a+j8aewx2Y8lAjAydhbaScPF8= @@ -121,7 +128,9 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -141,6 +150,7 @@ github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/y github.com/spf13/viper v1.6.2 h1:7aKfF+e8/k68gda3LOjo5RxiUqddoFxVq4BKBPrxk5E= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= @@ -194,13 +204,12 @@ golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200305110556-506484158171 h1:xes2Q2k+d/+YNXVw0FpZkIDJiaux4OVrRKXRAzH6A0U= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.18.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -210,21 +219,18 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.1 h1:DGeFlSan2f+WEtCERJ4J9GJWk15TxUi8QGagfI87Xyc= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.1 h1:M8spwkmx0pHrPq+uMdl22w5CvJ/Y+oAJTIs9oGoCpOE= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.1/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= diff --git a/pkg/analytic/analytic.go b/pkg/analytic/analytic.go index 8ffbcb5..11f2674 100644 --- a/pkg/analytic/analytic.go +++ b/pkg/analytic/analytic.go @@ -9,7 +9,6 @@ import ( "sort" "github.com/golang/protobuf/jsonpb" - "github.com/golang/protobuf/proto" "github.com/mediaforensics/medifor/pkg/medifor" pb "github.com/mediaforensics/medifor/pkg/mediforproto" "github.com/pkg/errors" @@ -42,7 +41,12 @@ func reflectResources(v reflect.Value, handler ResourceHandler, seenPtrs map[uin resourceType := reflect.TypeOf(pb.Resource{}) switch v.Kind() { - case reflect.Ptr, reflect.Interface: + case reflect.Interface: + if v.IsNil() { + return nil + } + return errors.Wrap(reflectResources(v.Elem(), handler, seenPtrs), "reflect interface") + case reflect.Ptr: if v.IsNil() { return nil } @@ -75,8 +79,18 @@ func reflectResources(v reflect.Value, handler ResourceHandler, seenPtrs map[uin } } -// FindResources finds all Resource types in a proto and calls the given handler for each. -func FindResources(val proto.Message) ([]*pb.Resource, error) { +// FindDetectionRequestResources finds all Resource types in a detection proto's request field. +func FindDetectionRequestResources(det *pb.Detection) ([]*pb.Resource, error) { + return findResourcesImpl(det.GetRequest()) +} + +// FindDetectionResources finds all Resource types in a detection proto. +func FindDetectionResources(det *pb.Detection) ([]*pb.Resource, error) { + return findResourcesImpl(det) +} + +// findResourcesImpl finds all Resource types in a proto and calls the given handler for each. +func findResourcesImpl(val interface{}) ([]*pb.Resource, error) { var resources []*pb.Resource handler := func(r *pb.Resource) { resources = append(resources, r) diff --git a/pkg/analytic/analytic_test.go b/pkg/analytic/analytic_test.go index 25bf170..7626c0e 100644 --- a/pkg/analytic/analytic_test.go +++ b/pkg/analytic/analytic_test.go @@ -9,9 +9,10 @@ import ( func TestFindResources(t *testing.T) { cases := []struct { - name string - detection interface{} - want []*pb.Resource + name string + detection *pb.Detection + want []*pb.Resource + onlyRequest bool }{ { name: "image manip", @@ -75,25 +76,32 @@ func TestFindResources(t *testing.T) { }, { name: "request only", - detection: &pb.Detection_ImgManipReq{ - ImgManipReq: &pb.ImageManipulationRequest{ - OutDir: "blah", - Image: &pb.Resource{ - Uri: "something.jpg", + detection: &pb.Detection{ + Request: &pb.Detection_ImgManipReq{ + ImgManipReq: &pb.ImageManipulationRequest{ + OutDir: "blah", + Image: &pb.Resource{ + Uri: "something.jpg", + }, }, }, }, - want: []*pb.Resource{{Uri: "something.jpg"}}, + onlyRequest: true, + want: []*pb.Resource{{Uri: "something.jpg"}}, }, } for _, c := range cases { - res, err := FindResources(c.detection) + find := FindDetectionResources + if c.onlyRequest { + find = FindDetectionRequestResources + } + res, err := find(c.detection) if err != nil { - t.Fatalf("FindResources failed on %q: %v", c.name, err) + t.Fatalf("FindDetectionResources failed on %q: %v", c.name, err) } if diff := cmp.Diff(c.want, res); diff != "" { - t.Errorf("FindResources unexpected diff (-want +got):\n%v", diff) + t.Errorf("FindDetectionResources unexpected diff (-want +got):\n%v", diff) } } } From a20e71d1f0e7473a29c4ed5323c7d9368458d5ba Mon Sep 17 00:00:00 2001 From: Juston Moore Date: Sat, 10 Apr 2021 11:17:30 -0600 Subject: [PATCH 4/4] Incorporating LANL changes to support the Geppetto UI --- .dockerignore | 2 + Dockerfile | 26 +- NOTICE | 18 +- README.md | 2 + cmd/.DS_Store | Bin 6148 -> 0 bytes cmd/analyticworkflow/cmd/analytics.go | 166 + cmd/analyticworkflow/cmd/detections.go | 371 ++ cmd/analyticworkflow/cmd/histogram.go | 78 + cmd/analyticworkflow/cmd/stats.go | 223 ++ cmd/medifor/.DS_Store | Bin 6148 -> 0 bytes cmd/medifor/cmd/.DS_Store | Bin 6148 -> 0 bytes go.mod | 43 +- go.sum | 525 ++- pkg/.DS_Store | Bin 8196 -> 0 bytes pkg/mediforproto/analytic.pb.go | 3670 ++++++++++++------- pkg/mediforproto/fusion.pb.go | 1602 +++++--- pkg/mediforproto/kill.pb.go | 105 +- pkg/mediforproto/pipeline.pb.go | 4464 ++++++++++++++++++----- pkg/mediforproto/provenance.pb.go | 897 +++-- pkg/mediforproto/streamingproxy.pb.go | 367 +- pkg/mediforproto/task.pb.go | 431 ++- pkg/protoc.sh | 8 +- proto/medifor/v1/analytic.proto | 2 +- proto/medifor/v1/pipeline.proto | 185 +- python/Makefile | 6 +- python/medifor/v1/analytic_pb2.py | 5 +- python/medifor/v1/fusion_pb2.py | 5 +- python/medifor/v1/kill_pb2.py | 4 +- python/medifor/v1/pipeline_pb2.py | 2125 +++++++++-- python/medifor/v1/pipeline_pb2_grpc.py | 133 +- python/medifor/v1/provenance_pb2.py | 4 +- python/medifor/v1/streamingproxy_pb2.py | 5 +- python/medifor/v1/task_pb2.py | 404 ++ python/medifor/v1/task_pb2_grpc.py | 3 + 34 files changed, 11901 insertions(+), 3978 deletions(-) delete mode 100644 cmd/.DS_Store create mode 100644 cmd/analyticworkflow/cmd/analytics.go create mode 100644 cmd/analyticworkflow/cmd/detections.go create mode 100644 cmd/analyticworkflow/cmd/histogram.go create mode 100644 cmd/analyticworkflow/cmd/stats.go delete mode 100644 cmd/medifor/.DS_Store delete mode 100644 cmd/medifor/cmd/.DS_Store delete mode 100644 pkg/.DS_Store create mode 100644 python/medifor/v1/task_pb2.py create mode 100644 python/medifor/v1/task_pb2_grpc.py diff --git a/.dockerignore b/.dockerignore index d97d288..e183d07 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,4 @@ Dockerfile +.dockerignore +.git/ testfiles diff --git a/Dockerfile b/Dockerfile index a293580..d5f9099 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,19 @@ FROM golang:1.14-buster as gobuild -WORKDIR /go +WORKDIR /go/src/github.com/mediaforensics/medifor/ +COPY . ./ -ENV GOPATH "" +RUN apt-get update && apt-get upgrade -y && apt-get install -y protobuf-compiler +RUN go get -u github.com/golang/protobuf/protoc-gen-go +RUN cd pkg && ./protoc.sh -COPY . ./ -RUN cd cmd/analyticproxy && go build; cd -; \ - cd cmd/medifor && go build; cd - \ - cd cmd/analyticworker && go build; cd - \ - cd cmd/analyticworkflow && go build; cd - \ - cd cmd/fusionworker && go build; cd - +#ENV GOPATH "" + +RUN mkdir -p /app/bin/ +RUN for cmdname in `ls cmd/`; \ + do \ + cd cmd/$cmdname && go build && cp $cmdname /app/bin/ && cd -; \ + done FROM python:3.8-slim-buster as pybuild @@ -28,11 +32,7 @@ RUN mkdir -p /app/bin \ && apt-get update \ && apt-get install -y libmagic1 -COPY --from=gobuild /go/cmd/analyticproxy/analyticproxy /app/bin/ -COPY --from=gobuild /go/cmd/medifor/medifor /app/bin/ -COPY --from=gobuild /go/cmd/analyticworker/analyticworker /app/bin -COPY --from=gobuild /go/cmd/analyticworkflow/analyticworkflow /app/bin -COPY --from=gobuild /go/cmd/fusionworker/fusionworker /app/bin +COPY --from=gobuild /app/bin/ /app/bin/ COPY --from=pybuild /usr/local/lib/python3.8/ /usr/local/lib/python3.8/ ENV PATH ${PATH}:/app/bin diff --git a/NOTICE b/NOTICE index 8e2fb39..bb780fa 100644 --- a/NOTICE +++ b/NOTICE @@ -1,2 +1,16 @@ -This research was developed with funding from the Defense Advanced Research Projects Agency (DARPA). -Distribution Statement "A" (Approved for Public Release, Distribution Unlimited). +This tool was originally developed with funding from the Defense Advanced +Research Projects Agency (DARPA). Distribution Statement "A" (Approved for +Public Release, Distribution Unlimited). + +Modifications to support the Geppetto User Interface are Copyright (2020). Triad +National Security, LLC. All rights reserved. + +This program was produced under U.S. Government contract 89233218CNA000001 for +Los Alamos National Laboratory (LANL), which is operated by Triad National +Security, LLC for the U.S. Department of Energy/National Nuclear Security +Administration. All rights in the program are reserved by Triad National +Security, LLC, and the U.S. Department of Energy/National Nuclear Security +Administration. The Government is granted for itself and others acting on its +behalf a nonexclusive, paid-up, irrevocable worldwide license in this material +to reproduce, prepare derivative works, distribute copies to the public, perform +publicly and display publicly, and to permit others to do so. diff --git a/README.md b/README.md index af0936b..ca895db 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # MediaForensics Protocol Buffer and Analytic Service Code +This repository extends the [MediaForensics Protocol](https://github.com/mediaforensics/medifor) to support the API and analysis capabilities of the [Geppetto User Interface](https://github.com/lanl/geppetto-ui). + This repository is intended to provide all of the tools necessary to build and test media forensic analytics for use as microservices within a distributed system. Currently the repository contains the analytic wrapper which is used to provide a diff --git a/cmd/.DS_Store b/cmd/.DS_Store deleted file mode 100644 index f7c608de0651ab8675c453d266637af6add36b28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK&2HL25S}HpEJRf~R0_wv=xBKlyUCmpqMqTZ_Yb_RK zxwG5+&>NipyqN!5{Jt~`0f8T_k=G8FaD~P{r2O#5X`<6pj4Z2`*^JBpGr$aN90P76 zliM5j%|'status'->>'code', '0') = '0'"). + Where(sq.Or{ + sq.And{ + sq.Expr("detection ?? 'imgManip'"), + sq.Expr("coalesce(detection->'imgManip'->>'optOut', 'OPT_OUT_NONE') NOT IN ('OPT_OUT_ALL', 'OPT_OUT_DETECTION')"), + }, + sq.And{ + sq.Expr("detection ?? 'vidManip'"), + sq.Expr("NOT (coalesce(detection->'vidManip'->'optOut', '[]'::jsonb) ?? 'VIDEO_OPT_OUT_DETECTION')"), + }, + }) + + if req.Tags != nil { + tags, err := json.Marshal(req.Tags) + + if err != nil { + return nil, err + } + + query = query.Where("(tags || user_tags) @> ?", tags) + } + + if req.ExcludeTags != nil { + excludeTags, err := json.Marshal(req.ExcludeTags) + + if err != nil { + return nil, err + } + + query = query.Where("NOT (user_tags ??| array(SELECT jsonb_object_keys(?)))", excludeTags) + } + + rows, err := query.PlaceholderFormat(sq.Dollar). + RunWith(s.pgdb). + QueryContext(ctx) + + if err != nil { + return nil, err + } + + defer rows.Close() + + for rows.Next() { + var analyticId string + + if err := rows.Scan(&analyticId); err != nil { + return nil, err + } + + analyticIds = append(analyticIds, analyticId) + } + + if err := rows.Err(); err != nil { + return nil, err + } + + return analyticIds, nil +} + +func (s *apiService) getFusersWithScores(ctx context.Context, req *pb.GetAnalyticsWithScoresRequest) ([]string, error) { + fuserIds := []string{} + + query := sq.Select("fuser_id"). + Distinct(). + From("fusion"). + LeftJoin("detectionTag USING (detection_id)"). + Where(sq.NotEq{"finished": nil}). + Where("coalesce(fusion->'status'->>'code', '0') = '0'"). + Where(sq.Or{ + sq.And{ + sq.Expr("fusion ?? 'imgManip'"), + sq.Expr("coalesce(fusion->'imgManip'->>'optOut', 'OPT_OUT_NONE') NOT IN ('OPT_OUT_ALL', 'OPT_OUT_DETECTION')"), + }, + sq.And{ + sq.Expr("fusion ?? 'vidManip'"), + sq.Expr("NOT (coalesce(fusion->'vidManip'->'optOut', '[]'::jsonb) ?? 'VIDEO_OPT_OUT_DETECTION')"), + }, + }) + + if req.Tags != nil { + tags, err := json.Marshal(req.Tags) + + if err != nil { + return nil, err + } + + query = query.Where("(tags || user_tags) @> ?", tags) + } + + if req.ExcludeTags != nil { + excludeTags, err := json.Marshal(req.ExcludeTags) + + if err != nil { + return nil, err + } + + query = query.Where("NOT ((tags || user_tags) @> ?)", excludeTags) + } + + rows, err := query.PlaceholderFormat(sq.Dollar). + RunWith(s.pgdb). + QueryContext(ctx) + + if err != nil { + return nil, err + } + + defer rows.Close() + + for rows.Next() { + var fuserId string + + if err := rows.Scan(&fuserId); err != nil { + return nil, err + } + + fuserIds = append(fuserIds, fuserId) + } + + if err := rows.Err(); err != nil { + return nil, err + } + + return fuserIds, nil +} diff --git a/cmd/analyticworkflow/cmd/detections.go b/cmd/analyticworkflow/cmd/detections.go new file mode 100644 index 0000000..9c6b1e4 --- /dev/null +++ b/cmd/analyticworkflow/cmd/detections.go @@ -0,0 +1,371 @@ +package cmd + +import ( + "context" + "database/sql" + "encoding/json" + "log" + + sq "github.com/Masterminds/squirrel" + "github.com/pkg/errors" + + pb "github.com/mediaforensics/medifor/pkg/mediforproto" +) + +func (s *apiService) ListDetections(ctx context.Context, req *pb.ListDetectionsRequest) (*pb.DetectionList, error) { + scores := selectScores(req.AnalyticId, req.FuserId) + + analyticStats := sq.Select(). + Column("detection_id"). + Column(sq.Alias(sq.Expr("count(*)"), "analytics_total")). + Column(sq.Alias(sq.Expr("count(finished)"), "analytics_finished")). + From("detection"). + GroupBy("detection_id") + + detections := sq.Select(). + Column("detection_id"). + Column("tags"). + Column("user_tags"). + Column("meta"). + Column("fused_score"). + Column("analytics_total"). + Column("analytics_finished"). + From("detectionTag"). + JoinClause(sq.ConcatExpr("LEFT JOIN ", sq.Alias(scores, "scores"), " USING (detection_id)")). + JoinClause(sq.ConcatExpr("LEFT JOIN ", sq.Alias(analyticStats, "analytic_stats"), " USING (detection_id)")) + + detections = applyFilters(detections, req.ScoreFilter, req.MetaFilters, req.Tags, req.ExcludeTags, req.MetaQuery) + detections = applyOrderBy(detections, req.OrderBy, req.MetaQuery) + + pageSize := req.PageSize + + if pageSize < 1 { + pageSize = DefaultPageSize + } else if pageSize > MaxPageSize { + pageSize = MaxPageSize + } + + detections = detections.Limit(uint64(pageSize)) + var offset int32 + + if req.PageToken != "" { + token, err := DecodePageToken(req.PageToken) + + if err != nil { + return nil, errors.Wrap(err, "list detections") + } + + offset = token.Offset + detections = detections.Offset(uint64(offset)) + } + + rows, err := detections.PlaceholderFormat(sq.Dollar). + RunWith(s.pgdb). + QueryContext(ctx) + + if err != nil { + return nil, errors.Wrap(err, "list detections") + } + + defer rows.Close() + resp := &pb.DetectionList{} + + for rows.Next() { + var ( + id string + tags []byte + userTags []byte + meta []byte + fusedScore sql.NullFloat64 + analyticsTotal int32 + analyticsFinished int32 + ) + + if err := rows.Scan(&id, &tags, &userTags, &meta, &fusedScore, &analyticsTotal, &analyticsFinished); err != nil { + return nil, errors.Wrap(err, "list detections") + } + + detection := &pb.DetectionInfo{ + Id: id, + HasFused: fusedScore.Valid, + FusedScore: fusedScore.Float64, + AnalyticsTotal: analyticsTotal, + AnalyticsFinished: analyticsFinished, + } + + if err := json.Unmarshal(tags, &detection.Tags); err != nil { + return nil, errors.Wrap(err, "list detections") + } + + if err := json.Unmarshal(userTags, &detection.UserTags); err != nil { + return nil, errors.Wrap(err, "list detections") + } + + if err := json.Unmarshal(meta, &detection.Meta); err != nil { + return nil, errors.Wrap(err, "list detections") + } + + resp.Detections = append(resp.Detections, detection) + } + + if err := rows.Err(); err != nil { + return nil, errors.Wrap(err, "list detections") + } + + count := int32(len(resp.Detections)) + + if count == pageSize { + resp.PageToken = pageToken{Offset: offset + count}.Encode() + } + + detectionCount := sq.Select(). + Column(sq.Alias(sq.Expr("count(*)"), "total")). + From("detectionTag"). + JoinClause(sq.ConcatExpr("LEFT JOIN ", sq.Alias(scores, "scores"), " USING (detection_id)")) + + detectionCount = applyFilters(detectionCount, req.ScoreFilter, req.MetaFilters, req.Tags, req.ExcludeTags, req.MetaQuery) + + err = detectionCount.PlaceholderFormat(sq.Dollar). + RunWith(s.pgdb). + QueryRowContext(ctx). + Scan(&resp.Total) + + if err != nil { + return nil, errors.Wrap(err, "list detections") + } + + return resp, nil +} + +func selectScores(analyticId string, fuserId string) sq.SelectBuilder { + var scores sq.SelectBuilder + + if analyticId != "" { + scores = sq.Select(). + Column("detection_id"). + Column(sq.Alias(sq.Case(). + When( + sq.And{ + sq.NotEq{"detection": nil}, + sq.Expr("detection ?? 'imgManip'"), + sq.Expr("coalesce(detection->'imgManip'->>'optOut', 'OPT_OUT_NONE') NOT IN ('OPT_OUT_ALL', 'OPT_OUT_DETECTION')"), + }, + "coalesce(detection->'imgManip'->>'score', '0')::float", + ). + When( + sq.And{ + sq.NotEq{"detection": nil}, + sq.Expr("detection ?? 'vidManip'"), + sq.Expr("NOT (coalesce(detection->'vidManip'->'optOut', '[]'::jsonb) ?? 'VIDEO_OPT_OUT_DETECTION')"), + }, + "coalesce(detection->'vidManip'->>'score', '0')::float", + ). + Else("NULL"), + "fused_score", + )). + From("detection"). + Where(sq.NotEq{"finished": nil}). + Where(sq.Expr("coalesce(detection->'status'->>'code', '0') = '0'")). + Where(sq.Eq{"analytic_id": analyticId}) + } else { + bestFusions := sq.Select(). + Column("detection_id"). + Column(sq.Alias(sq.Expr("(array_agg(fusion ORDER BY array_length(analytic_ids, 1) DESC))[1]"), "best_fusion")). + From("fusion"). + Where(sq.NotEq{"finished": nil}). + Where(sq.Expr("coalesce(fusion->'status'->>'code', '0') = '0'")). + Where(sq.Eq{"fuser_id": fuserId}). + GroupBy("detection_id") + + scores = sq.Select(). + Column("detection_id"). + Column(sq.Alias(sq.Case(). + When( + sq.And{ + sq.NotEq{"best_fusion": nil}, + sq.Expr("best_fusion ?? 'imgManip'"), + sq.Expr("coalesce(best_fusion->'imgManip'->>'optOut', 'OPT_OUT_NONE') NOT IN ('OPT_OUT_ALL', 'OPT_OUT_DETECTION')"), + }, + "coalesce(best_fusion->'imgManip'->>'score', '0')::float", + ). + When( + sq.And{ + sq.NotEq{"best_fusion": nil}, + sq.Expr("best_fusion ?? 'vidManip'"), + sq.Expr("NOT (coalesce(best_fusion->'vidManip'->'optOut', '[]'::jsonb) ?? 'VIDEO_OPT_OUT_DETECTION')"), + }, + "coalesce(best_fusion->'vidManip'->>'score', '0')::float", + ). + Else("NULL"), + "fused_score", + )). + FromSelect(bestFusions, "best_fusions") + } + + return scores +} + +func applyFilters(detections sq.SelectBuilder, scoreFilter *pb.ScoreFilter, metaFilters []*pb.MetaFilter, tags map[string]string, excludeTags map[string]string, metaQuery string) sq.SelectBuilder { + if scoreFilter != nil { + if scoreFilter.HasMin && scoreFilter.HasMax { + detections = detections.Where("fused_score BETWEEN ? AND ?", scoreFilter.Min, scoreFilter.Max) + } else if scoreFilter.HasMin { + detections = detections.Where("fused_score >= ?", scoreFilter.Min) + } else if scoreFilter.HasMax { + detections = detections.Where("fused_score <= ?", scoreFilter.Max) + } + } + + for _, f := range metaFilters { + if f.HasMin && f.HasMax { + detections = detections.Where("meta->>? BETWEEN ? AND ?", f.MetaKey, f.Min, f.Max) + } else if f.HasMin { + detections = detections.Where("meta->>? >= ?", f.MetaKey, f.Min) + } else if f.HasMax { + detections = detections.Where("meta->>? <= ?", f.MetaKey, f.Max) + } + } + + if tags != nil { + tagsJSON, err := json.Marshal(tags) + + if err != nil { + log.Printf("Ignoring tags: %v", err) + } else { + detections = detections.Where("(tags || user_tags) @> ?", tagsJSON) + } + } + + if excludeTags != nil { + excludeTagsJSON, err := json.Marshal(excludeTags) + + if err != nil { + log.Printf("Ignoring exclude_tags: %v", err) + } else { + detections = detections.Where("NOT (user_tags ??| array(SELECT jsonb_object_keys(?)))", excludeTagsJSON) + } + } + + if metaQuery != "" { + detections = detections.Where("to_tsvector('english', meta) @@ plainto_tsquery('english', ?)", metaQuery) + } + + return detections +} + +func applyOrderBy(detections sq.SelectBuilder, orderBy []*pb.SortCol, metaQuery string) sq.SelectBuilder { + for _, o := range orderBy { + switch o.Key { + case pb.SortKey_SCORE: + if o.IsAsc { + detections = detections.OrderBy("fused_score ASC NULLS LAST") + } else { + detections = detections.OrderBy("fused_score DESC NULLS LAST") + } + + case pb.SortKey_META: + if o.IsAsc { + detections = detections.OrderByClause("meta->>? ASC NULLS LAST", o.MetaKey) + } else { + detections = detections.OrderByClause("meta->>? DESC NULLS LAST", o.MetaKey) + } + + case pb.SortKey_META_QUERY: + if o.IsAsc { + detections = detections.OrderByClause("ts_rank_cd(to_tsvector('english', meta), plainto_tsquery('english', ?)) ASC NULLS LAST", metaQuery) + } else { + detections = detections.OrderByClause("ts_rank_cd(to_tsvector('english', meta), plainto_tsquery('english', ?)) DESC NULLS LAST", metaQuery) + } + + default: + log.Printf("Ignoring unsupported sort key: %v", o.Key.String()) + } + } + + return detections +} + +func (s *apiService) UpdateDetectionMetadata(ctx context.Context, req *pb.UpdateDetectionMetadataRequest) (*pb.DetectionInfo, error) { + if req.Metadata != nil { + metadata, err := json.Marshal(req.Metadata) + + if err != nil { + return nil, errors.Wrap(err, "update detection metadata") + } + + _, err = sq.Update("detectionTag"). + Set("meta", sq.Expr("meta || ?::jsonb", metadata)). + Where(sq.Eq{"detection_id": req.DetectionId}). + PlaceholderFormat(sq.Dollar). + RunWith(s.pgdb). + ExecContext(ctx) + + if err != nil { + return nil, errors.Wrap(err, "update detection metadata") + } + } + + return s.GetDetectionInfo(ctx, &pb.DetectionInfoRequest{Id: req.DetectionId}) +} + +func (s *apiService) DeleteFailedAnalytics(ctx context.Context, req *pb.DeleteFailedAnalyticsRequest) (*pb.DeleteFailedAnalyticsResponse, error) { + sql, args, err := sq.Delete("detection"). + Where(sq.NotEq{"finished": nil}). + Where("coalesce(detection->'status'->>'code', '0') <> '0'"). + Suffix("RETURNING detection_id, analytic_id"). + PlaceholderFormat(sq.Dollar). + ToSql() + + if err != nil { + return nil, errors.Wrap(err, "delete failed analytics") + } + + rows, err := s.pgdb.QueryContext(ctx, sql, args...) + + if err != nil { + return nil, errors.Wrap(err, "delete failed analytics") + } + + defer rows.Close() + deletedAnalytics := make(map[string][]string) + + for rows.Next() { + var ( + detectionId string + analyticId string + ) + + if err := rows.Scan(&detectionId, &analyticId); err != nil { + return nil, errors.Wrap(err, "delete failed analytics") + } + + _, err := sq.Delete("fusion"). + Where(sq.Eq{"detection_id": detectionId}). + Where("? = ANY(analytic_ids)", analyticId). + PlaceholderFormat(sq.Dollar). + RunWith(s.pgdb). + ExecContext(ctx) + + if err != nil { + return nil, errors.Wrap(err, "delete failed analytics") + } + + deletedAnalytics[detectionId] = append(deletedAnalytics[detectionId], analyticId) + } + + if err := rows.Err(); err != nil { + return nil, errors.Wrap(err, "delete failed analytics") + } + + resp := &pb.DeleteFailedAnalyticsResponse{ + DeletedAnalytics: make(map[string]*pb.DeletedAnalytics), + } + + for detectionId, analyticIds := range deletedAnalytics { + resp.DeletedAnalytics[detectionId] = &pb.DeletedAnalytics{ + DeletedAnalyticIds: analyticIds, + } + } + + return resp, nil; +} diff --git a/cmd/analyticworkflow/cmd/histogram.go b/cmd/analyticworkflow/cmd/histogram.go new file mode 100644 index 0000000..006d39e --- /dev/null +++ b/cmd/analyticworkflow/cmd/histogram.go @@ -0,0 +1,78 @@ +package cmd + +import ( + "context" + + sq "github.com/Masterminds/squirrel" + "github.com/pkg/errors" + + pb "github.com/mediaforensics/medifor/pkg/mediforproto" +) + +func (s *apiService) GetHistogram(ctx context.Context, req *pb.GetHistogramRequest) (*pb.GetHistogramResponse, error) { + numBuckets := int(req.NumBuckets) + + if numBuckets == 0 { + numBuckets = 10 + } + + scores := selectScores(req.AnalyticId, req.FuserId). + LeftJoin("detectionTag USING (detection_id)") + + scores = applyFilters(scores, nil, nil, req.Tags, req.ExcludeTags, "") + + rows, err := sq.Select(). + Column(sq.Alias(sq.Expr("width_bucket(fused_score, 0, 1, ?)", numBuckets), "bucket")). + Column(sq.Alias(sq.Expr("count(*)"), "frequency")). + Column(sq.Alias(sq.Expr("min(fused_score)"), "min")). + Column(sq.Alias(sq.Expr("max(fused_score)"), "max")). + FromSelect(scores, "scores"). + Where(sq.NotEq{"fused_score": nil}). + GroupBy("bucket"). + OrderBy("bucket"). + PlaceholderFormat(sq.Dollar). + RunWith(s.pgdb). + QueryContext(ctx) + + if err != nil { + return nil, errors.Wrap(err, "histogram") + } + + defer rows.Close() + + buckets := make([]*pb.Bucket, numBuckets + 2) + + for i := 0; i < numBuckets + 2; i++ { + buckets[i] = &pb.Bucket{} + } + + for rows.Next() { + var ( + bucketIndex int32 + frequency int32 + min float64 + max float64 + ) + + if err := rows.Scan(&bucketIndex, &frequency, &min, &max); err != nil { + return nil, errors.Wrap(err, "histogram") + } + + buckets[bucketIndex].Frequency = frequency; + buckets[bucketIndex].Min = min; + buckets[bucketIndex].Max = max; + } + + if err := rows.Err(); err != nil { + return nil, errors.Wrap(err, "histogram") + } + + buckets[numBuckets].Frequency += buckets[numBuckets + 1].Frequency + buckets[numBuckets].Max = buckets[numBuckets + 1].Max; + + resp := &pb.GetHistogramResponse{ + Buckets: buckets[1:(numBuckets + 1)], + } + + return resp, nil +} diff --git a/cmd/analyticworkflow/cmd/stats.go b/cmd/analyticworkflow/cmd/stats.go new file mode 100644 index 0000000..e41d025 --- /dev/null +++ b/cmd/analyticworkflow/cmd/stats.go @@ -0,0 +1,223 @@ +package cmd + +import ( + "context" + + "entrogo.com/entroq" + sq "github.com/Masterminds/squirrel" + "github.com/lib/pq" + "github.com/pkg/errors" + + pb "github.com/mediaforensics/medifor/pkg/mediforproto" +) + +func (s *apiService) GetAnalyticStats(ctx context.Context, req *pb.GetAnalyticStatsRequest) (*pb.GetAnalyticStatsResponse, error) { + analyticStats, err := s.getAnalyticStats(ctx, req.AnalyticIds) + + if err != nil { + return nil, errors.Wrap(err, "analytic stats") + } + + fuserStats, err := s.getFuserStats(ctx, req.FuserIds) + + if err != nil { + return nil, errors.Wrap(err, "analytic stats") + } + + resp := &pb.GetAnalyticStatsResponse{ + AnalyticStats: analyticStats, + FuserStats: fuserStats, + } + + return resp, nil +} + +func (s *apiService) getAnalyticStats(ctx context.Context, analyticIds []string) ([]*pb.AnalyticStats, error) { + query := sq.Select(). + Column("analytic_id"). + Column(sq.Alias(filter("count(*)", + sq.And{ + sq.NotEq{"finished": nil}, + sq.Expr("coalesce(detection->'status'->>'code', '0') = '0'"), + sq.And{ + sq.Expr("coalesce(detection->'imgManip'->>'optOut', 'OPT_OUT_NONE') NOT IN ('OPT_OUT_ALL', 'OPT_OUT_DETECTION')"), + sq.Expr("NOT (coalesce(detection->'vidManip'->'optOut', '[]'::jsonb) ?? 'VIDEO_OPT_OUT_DETECTION')"), + }, + }), + "succeeded")). + Column(sq.Alias(filter("count(*)", + sq.And{ + sq.NotEq{"finished": nil}, + sq.Expr("coalesce(detection->'status'->>'code', '0') = '0'"), + sq.Or{ + sq.Expr("coalesce(detection->'imgManip'->>'optOut', 'OPT_OUT_NONE') IN ('OPT_OUT_ALL', 'OPT_OUT_DETECTION')"), + sq.Expr("coalesce(detection->'vidManip'->'optOut', '[]'::jsonb) ?? 'VIDEO_OPT_OUT_DETECTION'"), + }, + }), + "opted_out")). + Column(sq.Alias(filter("count(*)", + sq.And{ + sq.NotEq{"finished": nil}, + sq.Expr("coalesce(detection->'status'->>'code', '0') <> '0'"), + }), + "failed")). + From("detection"). + GroupBy("analytic_id") + + if len(analyticIds) > 0 { + query = query.Where("analytic_id = any(?)", pq.StringArray(analyticIds)) + } + + rows, err := query.PlaceholderFormat(sq.Dollar). + RunWith(s.pgdb). + QueryContext(ctx) + + if err != nil { + return nil, err + } + + defer rows.Close() + queueStats, err := s.eqc.QueueStats(ctx, entroq.MatchPrefix("/task/detection/analytic/")) + + if err != nil { + return nil, err + } + + analyticStats := []*pb.AnalyticStats{} + + for rows.Next() { + var ( + id string + pending int32 + running int32 + succeeded int32 + optedOut int32 + failed int32 + ) + + if err := rows.Scan(&id, &succeeded, &optedOut, &failed); err != nil { + return nil, err + } + + qs, ok := queueStats[queueConf.AnalyticInbox(id)] + + if ok { + pending = int32(qs.Available) + running = int32(qs.Claimed) + } + + stats := &pb.AnalyticStats{ + Id: id, + Pending: pending, + Running: running, + Succeeded: succeeded, + OptedOut: optedOut, + Failed: failed, + } + + analyticStats = append(analyticStats, stats) + } + + if err := rows.Err(); err != nil { + return nil, err + } + + return analyticStats, nil +} + +func (s *apiService) getFuserStats(ctx context.Context, fuserIds []string) ([]*pb.AnalyticStats, error) { + query := sq.Select(). + Column("fuser_id"). + Column(sq.Alias(filter("count(*)", + sq.And{ + sq.NotEq{"finished": nil}, + sq.Expr("coalesce(fusion->'status'->>'code', '0') = '0'"), + sq.And{ + sq.Expr("coalesce(fusion->'imgManip'->>'optOut', 'OPT_OUT_NONE') NOT IN ('OPT_OUT_ALL', 'OPT_OUT_DETECTION')"), + sq.Expr("NOT (coalesce(fusion->'vidManip'->'optOut', '[]'::jsonb) ?? 'VIDEO_OPT_OUT_DETECTION')"), + }, + }), + "succeeded")). + Column(sq.Alias(filter("count(*)", + sq.And{ + sq.NotEq{"finished": nil}, + sq.Expr("coalesce(fusion->'status'->>'code', '0') = '0'"), + sq.Or{ + sq.Expr("coalesce(fusion->'imgManip'->>'optOut', 'OPT_OUT_NONE') IN ('OPT_OUT_ALL', 'OPT_OUT_DETECTION')"), + sq.Expr("coalesce(fusion->'vidManip'->'optOut', '[]'::jsonb) ?? 'VIDEO_OPT_OUT_DETECTION'"), + }, + }), + "opted_out")). + Column(sq.Alias(filter("count(*)", + sq.And{ + sq.NotEq{"finished": nil}, + sq.Expr("coalesce(fusion->'status'->>'code', '0') <> '0'"), + }), + "failed")). + From("fusion"). + GroupBy("fuser_id") + + if len(fuserIds) > 0 { + query = query.Where("fuser_id = any(?)", pq.StringArray(fuserIds)) + } + + rows, err := query.PlaceholderFormat(sq.Dollar). + RunWith(s.pgdb). + QueryContext(ctx) + + if err != nil { + return nil, err + } + + defer rows.Close() + queueStats, err := s.eqc.QueueStats(ctx, entroq.MatchPrefix("/task/fusion/fuser/")) + + if err != nil { + return nil, err + } + + fuserStats := []*pb.AnalyticStats{} + + for rows.Next() { + var ( + id string + pending int32 + running int32 + succeeded int32 + optedOut int32 + failed int32 + ) + + if err := rows.Scan(&id, &succeeded, &optedOut, &failed); err != nil { + return nil, err + } + + qs, ok := queueStats[queueConf.FuserInbox(id)] + + if ok { + pending = int32(qs.Available) + running = int32(qs.Claimed) + } + + stats := &pb.AnalyticStats{ + Id: id, + Pending: pending, + Running: running, + Succeeded: succeeded, + OptedOut: optedOut, + Failed: failed, + } + + fuserStats = append(fuserStats, stats) + } + + if err := rows.Err(); err != nil { + return nil, err + } + + return fuserStats, nil +} + +func filter(aggregateExpr interface{}, filterClause interface{}) sq.Sqlizer { + return sq.ConcatExpr(aggregateExpr, " FILTER (WHERE ", filterClause, ")") +} diff --git a/cmd/medifor/.DS_Store b/cmd/medifor/.DS_Store deleted file mode 100644 index 2c72a15b3401b7cd6d0fc3a4601d0e198d8aabf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK-A)rh6g~r0wnb$5sX+8%BQYU?81N5?A=CoVh8QX(SOQpf+of#S&NRDQD%6_Z z_yAsN;xl;Rr7xgQ;Fa+a^wujq^HZTzFEwKJBs1TcGv}O{`F3Y#2LMR2QkVkJ0YJmT zF%rY-7sC5_X_F3RIg3bm4wkoEW?_q`3ngSAWZ++CfbZQ-$U_MVDYs?+-oc)+??S{P zl$TZY%W9W@u*$CE2a}T@Nk?bo%-JqYi)pc**j8qjRWpGZRQ#mrZSYpw40bK0uQKNT z)J<#6v8y?KaGue?bg1o#V5eZC%jP487FadODzxB>JQ>-cX;Cej(}!!d+cQ%W#klOZgNCex!u-Dr~|lRMhgE{JvTqdD~px zXI*bDFdFMV*K@vC@9Q7v8|;h6;}?eF!y_XXbNYZ~=J$#opXxkwnU{1c_D0cj3YoH* zcW5yi*iV9tb7<%E{u8b%cH!}nY4xCtK7&UFk?x*n+f?LR-r4c(Ae+;B{k+FqH_dz} za2Q=b*1NvxBk8HYE~V%W!x8t9$ElU2&79gU7A(#oj8INXH?um*c@ z2ru9@yn%P{9zMYr_(rM~kH3-|8AH{1jVC|rdiu-12-457#IcRdO#u!!?pz!@%LMBDBl&rd{P^VErAQR_Z+ zGY=;mG7vKGry1bi2LlVogu;eI@#(-yTmcXxXcmIH`1waPxB)StuptpGC`5)L%21-N z7)0G2hz!U6gz|4ll;J?c$e2fsOw{vI2H;&iifcX!9Ig4hzW%a TiD*Fye*^>#VHGm)R~h&L_~h*a diff --git a/cmd/medifor/cmd/.DS_Store b/cmd/medifor/cmd/.DS_Store deleted file mode 100644 index 064c753e3817c3f58a5294ca00c65233221336dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}&BV5S~>MKw^S;kYkUYOgwvO2p&B900?bGl46a3@z{&+;4AoMzJ-1>yTNT) zh$myn4B7q4c4l_w+rKUmnZYW(BJ(3sLrr>2qB!>C$BWcn-t+4+Fd*snDEpIe>Ywb}b zgBcabKFA;EUh&cOeAv<488K(Q)&7?mSM1xEDH%A*F>8WzMk0RovTkCY75LdRsy-^5 z->0Vyg7;W(X0x<97PVFelmTU6%>eHY5ej4Mu(T*!2P(M&02^o)!83m>uubGJc34`( z8;G%{Kx=B;6~kC_v`0=ac34`p=49OE!?>P}yP+8A9sVOxClg!LS{YCVstg?3zg<56 zueaa-t48`y8BhlHiUHFY-VO&y$(^km$?;hmq1>UcuwH3VOi;PwSRVK&?xTp{UBnN- U*kNfAEfD<>5E`^n2L63`L(Rdtf@0=@f&haGbY=JG8EK ztW<>)Q{lw)m6^^^n7lgTZ0Sy{uGG|qfFY12AaeKXD|7^C9^f4k zrznYyy-Q(Bc`q2WKQ{ML!%QK&nnXrjihwRAo`feKMDS3Y-k^$FxKDsYwr^Ynabo5;%PU@J|zS7e9@i zmB6wJD2e=kXZHU8S-Umm4s=e1 diff --git a/pkg/mediforproto/analytic.pb.go b/pkg/mediforproto/analytic.pb.go index c06a97a..82d8e5a 100644 --- a/pkg/mediforproto/analytic.pb.go +++ b/pkg/mediforproto/analytic.pb.go @@ -1,29 +1,29 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 // source: medifor/v1/analytic.proto package mediforproto import ( context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" status "google.golang.org/genproto/googleapis/rpc/status" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status1 "google.golang.org/grpc/status" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type ManipulationType int32 @@ -56,101 +56,143 @@ const ( ManipulationType_MANIP_OTHER ManipulationType = 25 ) -var ManipulationType_name = map[int32]string{ - 0: "MANIP_UNKNOWN", - 1: "MANIP_FILTER", - 2: "MANIP_ADJUST_COLOR", - 3: "MANIP_REMOVE", - 4: "MANIP_CONTENT_AWARE_FILL", - 5: "MANIP_PAINTBRUSH_TOOL", - 6: "MANIP_PATCH_TOOL", - 7: "MANIP_BLUR", - 8: "MANIP_SPLICE", - 9: "MANIP_CLONE", - 10: "MANIP_CROP", - 11: "MANIP_FLIP", - 12: "MANIP_RESIZE", - 13: "MANIP_SEAM_CARVING", - 14: "MANIP_ROTATE", - 15: "MANIP_SKEW", - 16: "MANIP_WARP", - 17: "MANIP_METADATA", - 18: "MANIP_ANTIFORENSICS", - 19: "MANIP_IMAGE_RECAPTURE", - 20: "MANIP_CGI", - 21: "MANIP_FRAME_INSERTION", - 22: "MANIP_FRAME_DROP", - 23: "MANIP_AUDIO", - 24: "MANIP_DOUBLE_JPG", - 25: "MANIP_OTHER", -} - -var ManipulationType_value = map[string]int32{ - "MANIP_UNKNOWN": 0, - "MANIP_FILTER": 1, - "MANIP_ADJUST_COLOR": 2, - "MANIP_REMOVE": 3, - "MANIP_CONTENT_AWARE_FILL": 4, - "MANIP_PAINTBRUSH_TOOL": 5, - "MANIP_PATCH_TOOL": 6, - "MANIP_BLUR": 7, - "MANIP_SPLICE": 8, - "MANIP_CLONE": 9, - "MANIP_CROP": 10, - "MANIP_FLIP": 11, - "MANIP_RESIZE": 12, - "MANIP_SEAM_CARVING": 13, - "MANIP_ROTATE": 14, - "MANIP_SKEW": 15, - "MANIP_WARP": 16, - "MANIP_METADATA": 17, - "MANIP_ANTIFORENSICS": 18, - "MANIP_IMAGE_RECAPTURE": 19, - "MANIP_CGI": 20, - "MANIP_FRAME_INSERTION": 21, - "MANIP_FRAME_DROP": 22, - "MANIP_AUDIO": 23, - "MANIP_DOUBLE_JPG": 24, - "MANIP_OTHER": 25, +// Enum value maps for ManipulationType. +var ( + ManipulationType_name = map[int32]string{ + 0: "MANIP_UNKNOWN", + 1: "MANIP_FILTER", + 2: "MANIP_ADJUST_COLOR", + 3: "MANIP_REMOVE", + 4: "MANIP_CONTENT_AWARE_FILL", + 5: "MANIP_PAINTBRUSH_TOOL", + 6: "MANIP_PATCH_TOOL", + 7: "MANIP_BLUR", + 8: "MANIP_SPLICE", + 9: "MANIP_CLONE", + 10: "MANIP_CROP", + 11: "MANIP_FLIP", + 12: "MANIP_RESIZE", + 13: "MANIP_SEAM_CARVING", + 14: "MANIP_ROTATE", + 15: "MANIP_SKEW", + 16: "MANIP_WARP", + 17: "MANIP_METADATA", + 18: "MANIP_ANTIFORENSICS", + 19: "MANIP_IMAGE_RECAPTURE", + 20: "MANIP_CGI", + 21: "MANIP_FRAME_INSERTION", + 22: "MANIP_FRAME_DROP", + 23: "MANIP_AUDIO", + 24: "MANIP_DOUBLE_JPG", + 25: "MANIP_OTHER", + } + ManipulationType_value = map[string]int32{ + "MANIP_UNKNOWN": 0, + "MANIP_FILTER": 1, + "MANIP_ADJUST_COLOR": 2, + "MANIP_REMOVE": 3, + "MANIP_CONTENT_AWARE_FILL": 4, + "MANIP_PAINTBRUSH_TOOL": 5, + "MANIP_PATCH_TOOL": 6, + "MANIP_BLUR": 7, + "MANIP_SPLICE": 8, + "MANIP_CLONE": 9, + "MANIP_CROP": 10, + "MANIP_FLIP": 11, + "MANIP_RESIZE": 12, + "MANIP_SEAM_CARVING": 13, + "MANIP_ROTATE": 14, + "MANIP_SKEW": 15, + "MANIP_WARP": 16, + "MANIP_METADATA": 17, + "MANIP_ANTIFORENSICS": 18, + "MANIP_IMAGE_RECAPTURE": 19, + "MANIP_CGI": 20, + "MANIP_FRAME_INSERTION": 21, + "MANIP_FRAME_DROP": 22, + "MANIP_AUDIO": 23, + "MANIP_DOUBLE_JPG": 24, + "MANIP_OTHER": 25, + } +) + +func (x ManipulationType) Enum() *ManipulationType { + p := new(ManipulationType) + *p = x + return p } func (x ManipulationType) String() string { - return proto.EnumName(ManipulationType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ManipulationType) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_analytic_proto_enumTypes[0].Descriptor() +} + +func (ManipulationType) Type() protoreflect.EnumType { + return &file_medifor_v1_analytic_proto_enumTypes[0] +} + +func (x ManipulationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } +// Deprecated: Use ManipulationType.Descriptor instead. func (ManipulationType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{0} + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{0} } type SpecificityType int32 const ( SpecificityType_SPEC_GLOBAL SpecificityType = 0 - SpecificityType_SPEC_FRAM SpecificityType = 1 + SpecificityType_SPEC_FRAME SpecificityType = 1 SpecificityType_SPEC_PIXEL SpecificityType = 2 SpecificityType_SPEC_METADATA SpecificityType = 3 ) -var SpecificityType_name = map[int32]string{ - 0: "SPEC_GLOBAL", - 1: "SPEC_FRAM", - 2: "SPEC_PIXEL", - 3: "SPEC_METADATA", -} +// Enum value maps for SpecificityType. +var ( + SpecificityType_name = map[int32]string{ + 0: "SPEC_GLOBAL", + 1: "SPEC_FRAME", + 2: "SPEC_PIXEL", + 3: "SPEC_METADATA", + } + SpecificityType_value = map[string]int32{ + "SPEC_GLOBAL": 0, + "SPEC_FRAME": 1, + "SPEC_PIXEL": 2, + "SPEC_METADATA": 3, + } +) -var SpecificityType_value = map[string]int32{ - "SPEC_GLOBAL": 0, - "SPEC_FRAM": 1, - "SPEC_PIXEL": 2, - "SPEC_METADATA": 3, +func (x SpecificityType) Enum() *SpecificityType { + p := new(SpecificityType) + *p = x + return p } func (x SpecificityType) String() string { - return proto.EnumName(SpecificityType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SpecificityType) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_analytic_proto_enumTypes[1].Descriptor() +} + +func (SpecificityType) Type() protoreflect.EnumType { + return &file_medifor_v1_analytic_proto_enumTypes[1] } +func (x SpecificityType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SpecificityType.Descriptor instead. func (SpecificityType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{1} + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{1} } type OptOutType int32 @@ -172,26 +214,47 @@ const ( OptOutType_OPT_OUT_LOCALIZATION OptOutType = 3 ) -var OptOutType_name = map[int32]string{ - 0: "OPT_OUT_NONE", - 1: "OPT_OUT_ALL", - 2: "OPT_OUT_DETECTION", - 3: "OPT_OUT_LOCALIZATION", -} +// Enum value maps for OptOutType. +var ( + OptOutType_name = map[int32]string{ + 0: "OPT_OUT_NONE", + 1: "OPT_OUT_ALL", + 2: "OPT_OUT_DETECTION", + 3: "OPT_OUT_LOCALIZATION", + } + OptOutType_value = map[string]int32{ + "OPT_OUT_NONE": 0, + "OPT_OUT_ALL": 1, + "OPT_OUT_DETECTION": 2, + "OPT_OUT_LOCALIZATION": 3, + } +) -var OptOutType_value = map[string]int32{ - "OPT_OUT_NONE": 0, - "OPT_OUT_ALL": 1, - "OPT_OUT_DETECTION": 2, - "OPT_OUT_LOCALIZATION": 3, +func (x OptOutType) Enum() *OptOutType { + p := new(OptOutType) + *p = x + return p } func (x OptOutType) String() string { - return proto.EnumName(OptOutType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } +func (OptOutType) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_analytic_proto_enumTypes[2].Descriptor() +} + +func (OptOutType) Type() protoreflect.EnumType { + return &file_medifor_v1_analytic_proto_enumTypes[2] +} + +func (x OptOutType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OptOutType.Descriptor instead. func (OptOutType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{2} + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{2} } type VideoOptOutType int32 @@ -205,28 +268,53 @@ const ( VideoOptOutType_VIDEO_OPT_OUT_SPATIAL VideoOptOutType = 2 ) -var VideoOptOutType_name = map[int32]string{ - 0: "VIDEO_OPT_OUT_DETECTION", - 1: "VIDEO_OPT_OUT_TEMPORAL", - 2: "VIDEO_OPT_OUT_SPATIAL", -} +// Enum value maps for VideoOptOutType. +var ( + VideoOptOutType_name = map[int32]string{ + 0: "VIDEO_OPT_OUT_DETECTION", + 1: "VIDEO_OPT_OUT_TEMPORAL", + 2: "VIDEO_OPT_OUT_SPATIAL", + } + VideoOptOutType_value = map[string]int32{ + "VIDEO_OPT_OUT_DETECTION": 0, + "VIDEO_OPT_OUT_TEMPORAL": 1, + "VIDEO_OPT_OUT_SPATIAL": 2, + } +) -var VideoOptOutType_value = map[string]int32{ - "VIDEO_OPT_OUT_DETECTION": 0, - "VIDEO_OPT_OUT_TEMPORAL": 1, - "VIDEO_OPT_OUT_SPATIAL": 2, +func (x VideoOptOutType) Enum() *VideoOptOutType { + p := new(VideoOptOutType) + *p = x + return p } func (x VideoOptOutType) String() string { - return proto.EnumName(VideoOptOutType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VideoOptOutType) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_analytic_proto_enumTypes[3].Descriptor() +} + +func (VideoOptOutType) Type() protoreflect.EnumType { + return &file_medifor_v1_analytic_proto_enumTypes[3] +} + +func (x VideoOptOutType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } +// Deprecated: Use VideoOptOutType.Descriptor instead. func (VideoOptOutType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{3} + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{3} } // Detection holds round-trip information for any of the "DetectFoo" request/response endpoints. type Detection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Standard RPC status - we stash the actual RPC error/non-error here. Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` // Round-trip request-response timings. Milliseconds since the Epoch. @@ -234,7 +322,7 @@ type Detection struct { EndTimeMillis int64 `protobuf:"varint,3,opt,name=end_time_millis,json=endTimeMillis,proto3" json:"end_time_millis,omitempty"` // The request made to the analytic. // - // Types that are valid to be assigned to Request: + // Types that are assignable to Request: // *Detection_ImgManipReq // *Detection_VidManipReq // *Detection_ImgSpliceReq @@ -244,154 +332,207 @@ type Detection struct { Request isDetection_Request `protobuf_oneof:"request"` // The response received from the analytic. // - // Types that are valid to be assigned to Response: + // Types that are assignable to Response: // *Detection_ImgManip // *Detection_VidManip // *Detection_ImgSplice // *Detection_ImgCamMatch // *Detection_ImgCams // *Detection_VidCamMatch - Response isDetection_Response `protobuf_oneof:"response"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Response isDetection_Response `protobuf_oneof:"response"` } -func (m *Detection) Reset() { *m = Detection{} } -func (m *Detection) String() string { return proto.CompactTextString(m) } -func (*Detection) ProtoMessage() {} -func (*Detection) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{0} +func (x *Detection) Reset() { + *x = Detection{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Detection) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Detection.Unmarshal(m, b) -} -func (m *Detection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Detection.Marshal(b, m, deterministic) -} -func (m *Detection) XXX_Merge(src proto.Message) { - xxx_messageInfo_Detection.Merge(m, src) +func (x *Detection) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Detection) XXX_Size() int { - return xxx_messageInfo_Detection.Size(m) -} -func (m *Detection) XXX_DiscardUnknown() { - xxx_messageInfo_Detection.DiscardUnknown(m) + +func (*Detection) ProtoMessage() {} + +func (x *Detection) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_Detection proto.InternalMessageInfo +// Deprecated: Use Detection.ProtoReflect.Descriptor instead. +func (*Detection) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{0} +} -func (m *Detection) GetStatus() *status.Status { - if m != nil { - return m.Status +func (x *Detection) GetStatus() *status.Status { + if x != nil { + return x.Status } return nil } -func (m *Detection) GetStartTimeMillis() int64 { - if m != nil { - return m.StartTimeMillis +func (x *Detection) GetStartTimeMillis() int64 { + if x != nil { + return x.StartTimeMillis } return 0 } -func (m *Detection) GetEndTimeMillis() int64 { - if m != nil { - return m.EndTimeMillis +func (x *Detection) GetEndTimeMillis() int64 { + if x != nil { + return x.EndTimeMillis } return 0 } -type isDetection_Request interface { - isDetection_Request() +func (m *Detection) GetRequest() isDetection_Request { + if m != nil { + return m.Request + } + return nil } -type Detection_ImgManipReq struct { - ImgManipReq *ImageManipulationRequest `protobuf:"bytes,11,opt,name=img_manip_req,json=imgManipReq,proto3,oneof"` +func (x *Detection) GetImgManipReq() *ImageManipulationRequest { + if x, ok := x.GetRequest().(*Detection_ImgManipReq); ok { + return x.ImgManipReq + } + return nil } -type Detection_VidManipReq struct { - VidManipReq *VideoManipulationRequest `protobuf:"bytes,12,opt,name=vid_manip_req,json=vidManipReq,proto3,oneof"` +func (x *Detection) GetVidManipReq() *VideoManipulationRequest { + if x, ok := x.GetRequest().(*Detection_VidManipReq); ok { + return x.VidManipReq + } + return nil } -type Detection_ImgSpliceReq struct { - ImgSpliceReq *ImageSpliceRequest `protobuf:"bytes,13,opt,name=img_splice_req,json=imgSpliceReq,proto3,oneof"` +func (x *Detection) GetImgSpliceReq() *ImageSpliceRequest { + if x, ok := x.GetRequest().(*Detection_ImgSpliceReq); ok { + return x.ImgSpliceReq + } + return nil } -type Detection_ImgCamMatchReq struct { - ImgCamMatchReq *ImageCameraMatchRequest `protobuf:"bytes,14,opt,name=img_cam_match_req,json=imgCamMatchReq,proto3,oneof"` +func (x *Detection) GetImgCamMatchReq() *ImageCameraMatchRequest { + if x, ok := x.GetRequest().(*Detection_ImgCamMatchReq); ok { + return x.ImgCamMatchReq + } + return nil } -type Detection_ImgCamsReq struct { - ImgCamsReq *ImageCamerasRequest `protobuf:"bytes,15,opt,name=img_cams_req,json=imgCamsReq,proto3,oneof"` +func (x *Detection) GetImgCamsReq() *ImageCamerasRequest { + if x, ok := x.GetRequest().(*Detection_ImgCamsReq); ok { + return x.ImgCamsReq + } + return nil } -type Detection_VidCamMatchReq struct { - VidCamMatchReq *VideoCameraMatchRequest `protobuf:"bytes,16,opt,name=vid_cam_match_req,json=vidCamMatchReq,proto3,oneof"` +func (x *Detection) GetVidCamMatchReq() *VideoCameraMatchRequest { + if x, ok := x.GetRequest().(*Detection_VidCamMatchReq); ok { + return x.VidCamMatchReq + } + return nil } -func (*Detection_ImgManipReq) isDetection_Request() {} - -func (*Detection_VidManipReq) isDetection_Request() {} - -func (*Detection_ImgSpliceReq) isDetection_Request() {} - -func (*Detection_ImgCamMatchReq) isDetection_Request() {} - -func (*Detection_ImgCamsReq) isDetection_Request() {} - -func (*Detection_VidCamMatchReq) isDetection_Request() {} - -func (m *Detection) GetRequest() isDetection_Request { +func (m *Detection) GetResponse() isDetection_Response { if m != nil { - return m.Request + return m.Response } return nil } -func (m *Detection) GetImgManipReq() *ImageManipulationRequest { - if x, ok := m.GetRequest().(*Detection_ImgManipReq); ok { - return x.ImgManipReq +func (x *Detection) GetImgManip() *ImageManipulation { + if x, ok := x.GetResponse().(*Detection_ImgManip); ok { + return x.ImgManip } return nil } -func (m *Detection) GetVidManipReq() *VideoManipulationRequest { - if x, ok := m.GetRequest().(*Detection_VidManipReq); ok { - return x.VidManipReq +func (x *Detection) GetVidManip() *VideoManipulation { + if x, ok := x.GetResponse().(*Detection_VidManip); ok { + return x.VidManip } return nil } -func (m *Detection) GetImgSpliceReq() *ImageSpliceRequest { - if x, ok := m.GetRequest().(*Detection_ImgSpliceReq); ok { - return x.ImgSpliceReq +func (x *Detection) GetImgSplice() *ImageSplice { + if x, ok := x.GetResponse().(*Detection_ImgSplice); ok { + return x.ImgSplice } return nil } -func (m *Detection) GetImgCamMatchReq() *ImageCameraMatchRequest { - if x, ok := m.GetRequest().(*Detection_ImgCamMatchReq); ok { - return x.ImgCamMatchReq +func (x *Detection) GetImgCamMatch() *ImageCameraMatch { + if x, ok := x.GetResponse().(*Detection_ImgCamMatch); ok { + return x.ImgCamMatch } return nil } -func (m *Detection) GetImgCamsReq() *ImageCamerasRequest { - if x, ok := m.GetRequest().(*Detection_ImgCamsReq); ok { - return x.ImgCamsReq +func (x *Detection) GetImgCams() *ImageCameras { + if x, ok := x.GetResponse().(*Detection_ImgCams); ok { + return x.ImgCams } return nil } -func (m *Detection) GetVidCamMatchReq() *VideoCameraMatchRequest { - if x, ok := m.GetRequest().(*Detection_VidCamMatchReq); ok { - return x.VidCamMatchReq +func (x *Detection) GetVidCamMatch() *VideoCameraMatch { + if x, ok := x.GetResponse().(*Detection_VidCamMatch); ok { + return x.VidCamMatch } return nil } +type isDetection_Request interface { + isDetection_Request() +} + +type Detection_ImgManipReq struct { + ImgManipReq *ImageManipulationRequest `protobuf:"bytes,11,opt,name=img_manip_req,json=imgManipReq,proto3,oneof"` +} + +type Detection_VidManipReq struct { + VidManipReq *VideoManipulationRequest `protobuf:"bytes,12,opt,name=vid_manip_req,json=vidManipReq,proto3,oneof"` +} + +type Detection_ImgSpliceReq struct { + ImgSpliceReq *ImageSpliceRequest `protobuf:"bytes,13,opt,name=img_splice_req,json=imgSpliceReq,proto3,oneof"` +} + +type Detection_ImgCamMatchReq struct { + ImgCamMatchReq *ImageCameraMatchRequest `protobuf:"bytes,14,opt,name=img_cam_match_req,json=imgCamMatchReq,proto3,oneof"` +} + +type Detection_ImgCamsReq struct { + ImgCamsReq *ImageCamerasRequest `protobuf:"bytes,15,opt,name=img_cams_req,json=imgCamsReq,proto3,oneof"` +} + +type Detection_VidCamMatchReq struct { + VidCamMatchReq *VideoCameraMatchRequest `protobuf:"bytes,16,opt,name=vid_cam_match_req,json=vidCamMatchReq,proto3,oneof"` +} + +func (*Detection_ImgManipReq) isDetection_Request() {} + +func (*Detection_VidManipReq) isDetection_Request() {} + +func (*Detection_ImgSpliceReq) isDetection_Request() {} + +func (*Detection_ImgCamMatchReq) isDetection_Request() {} + +func (*Detection_ImgCamsReq) isDetection_Request() {} + +func (*Detection_VidCamMatchReq) isDetection_Request() {} + type isDetection_Response interface { isDetection_Response() } @@ -432,135 +573,76 @@ func (*Detection_ImgCams) isDetection_Response() {} func (*Detection_VidCamMatch) isDetection_Response() {} -func (m *Detection) GetResponse() isDetection_Response { - if m != nil { - return m.Response - } - return nil -} - -func (m *Detection) GetImgManip() *ImageManipulation { - if x, ok := m.GetResponse().(*Detection_ImgManip); ok { - return x.ImgManip - } - return nil -} - -func (m *Detection) GetVidManip() *VideoManipulation { - if x, ok := m.GetResponse().(*Detection_VidManip); ok { - return x.VidManip - } - return nil -} - -func (m *Detection) GetImgSplice() *ImageSplice { - if x, ok := m.GetResponse().(*Detection_ImgSplice); ok { - return x.ImgSplice - } - return nil -} - -func (m *Detection) GetImgCamMatch() *ImageCameraMatch { - if x, ok := m.GetResponse().(*Detection_ImgCamMatch); ok { - return x.ImgCamMatch - } - return nil -} - -func (m *Detection) GetImgCams() *ImageCameras { - if x, ok := m.GetResponse().(*Detection_ImgCams); ok { - return x.ImgCams - } - return nil -} - -func (m *Detection) GetVidCamMatch() *VideoCameraMatch { - if x, ok := m.GetResponse().(*Detection_VidCamMatch); ok { - return x.VidCamMatch - } - return nil -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*Detection) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*Detection_ImgManipReq)(nil), - (*Detection_VidManipReq)(nil), - (*Detection_ImgSpliceReq)(nil), - (*Detection_ImgCamMatchReq)(nil), - (*Detection_ImgCamsReq)(nil), - (*Detection_VidCamMatchReq)(nil), - (*Detection_ImgManip)(nil), - (*Detection_VidManip)(nil), - (*Detection_ImgSplice)(nil), - (*Detection_ImgCamMatch)(nil), - (*Detection_ImgCams)(nil), - (*Detection_VidCamMatch)(nil), - } -} - // AnnotatedDetection annotates a detection with information about the analytic // that produced it. type AnnotatedDetection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` Detection *Detection `protobuf:"bytes,3,opt,name=detection,proto3" json:"detection,omitempty"` // This is not usually present. When there is no id field, check here to see if you have id_version. - AnalyticId string `protobuf:"bytes,4,opt,name=analytic_id,json=analyticId,proto3" json:"analytic_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + AnalyticId string `protobuf:"bytes,4,opt,name=analytic_id,json=analyticId,proto3" json:"analytic_id,omitempty"` } -func (m *AnnotatedDetection) Reset() { *m = AnnotatedDetection{} } -func (m *AnnotatedDetection) String() string { return proto.CompactTextString(m) } -func (*AnnotatedDetection) ProtoMessage() {} -func (*AnnotatedDetection) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{1} +func (x *AnnotatedDetection) Reset() { + *x = AnnotatedDetection{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AnnotatedDetection) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AnnotatedDetection.Unmarshal(m, b) -} -func (m *AnnotatedDetection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AnnotatedDetection.Marshal(b, m, deterministic) -} -func (m *AnnotatedDetection) XXX_Merge(src proto.Message) { - xxx_messageInfo_AnnotatedDetection.Merge(m, src) +func (x *AnnotatedDetection) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AnnotatedDetection) XXX_Size() int { - return xxx_messageInfo_AnnotatedDetection.Size(m) -} -func (m *AnnotatedDetection) XXX_DiscardUnknown() { - xxx_messageInfo_AnnotatedDetection.DiscardUnknown(m) + +func (*AnnotatedDetection) ProtoMessage() {} + +func (x *AnnotatedDetection) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[1] + 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) } -var xxx_messageInfo_AnnotatedDetection proto.InternalMessageInfo +// Deprecated: Use AnnotatedDetection.ProtoReflect.Descriptor instead. +func (*AnnotatedDetection) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{1} +} -func (m *AnnotatedDetection) GetId() string { - if m != nil { - return m.Id +func (x *AnnotatedDetection) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *AnnotatedDetection) GetVersion() string { - if m != nil { - return m.Version +func (x *AnnotatedDetection) GetVersion() string { + if x != nil { + return x.Version } return "" } -func (m *AnnotatedDetection) GetDetection() *Detection { - if m != nil { - return m.Detection +func (x *AnnotatedDetection) GetDetection() *Detection { + if x != nil { + return x.Detection } return nil } -func (m *AnnotatedDetection) GetAnalyticId() string { - if m != nil { - return m.AnalyticId +func (x *AnnotatedDetection) GetAnalyticId() string { + if x != nil { + return x.AnalyticId } return "" } @@ -568,299 +650,351 @@ func (m *AnnotatedDetection) GetAnalyticId() string { // Resource holds information about, typically, a blob of data. It references this // data by URI, which might be a file path, for example. type Resource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // The location of the media. For local files, this just looks like a file path. Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` // The mime type of this resource (file). Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // Free-form notes about this resource. - Notes string `protobuf:"bytes,3,opt,name=notes,proto3" json:"notes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Notes string `protobuf:"bytes,3,opt,name=notes,proto3" json:"notes,omitempty"` } -func (m *Resource) Reset() { *m = Resource{} } -func (m *Resource) String() string { return proto.CompactTextString(m) } -func (*Resource) ProtoMessage() {} -func (*Resource) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{2} +func (x *Resource) Reset() { + *x = Resource{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Resource) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Resource.Unmarshal(m, b) -} -func (m *Resource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Resource.Marshal(b, m, deterministic) -} -func (m *Resource) XXX_Merge(src proto.Message) { - xxx_messageInfo_Resource.Merge(m, src) -} -func (m *Resource) XXX_Size() int { - return xxx_messageInfo_Resource.Size(m) +func (x *Resource) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Resource) XXX_DiscardUnknown() { - xxx_messageInfo_Resource.DiscardUnknown(m) + +func (*Resource) ProtoMessage() {} + +func (x *Resource) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[2] + 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) } -var xxx_messageInfo_Resource proto.InternalMessageInfo +// Deprecated: Use Resource.ProtoReflect.Descriptor instead. +func (*Resource) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{2} +} -func (m *Resource) GetUri() string { - if m != nil { - return m.Uri +func (x *Resource) GetUri() string { + if x != nil { + return x.Uri } return "" } -func (m *Resource) GetType() string { - if m != nil { - return m.Type +func (x *Resource) GetType() string { + if x != nil { + return x.Type } return "" } -func (m *Resource) GetNotes() string { - if m != nil { - return m.Notes +func (x *Resource) GetNotes() string { + if x != nil { + return x.Notes } return "" } type IntRange struct { - Start int32 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` - End int32 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *IntRange) Reset() { *m = IntRange{} } -func (m *IntRange) String() string { return proto.CompactTextString(m) } -func (*IntRange) ProtoMessage() {} -func (*IntRange) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{3} + Start int32 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` + End int32 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` } -func (m *IntRange) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IntRange.Unmarshal(m, b) -} -func (m *IntRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IntRange.Marshal(b, m, deterministic) -} -func (m *IntRange) XXX_Merge(src proto.Message) { - xxx_messageInfo_IntRange.Merge(m, src) +func (x *IntRange) Reset() { + *x = IntRange{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *IntRange) XXX_Size() int { - return xxx_messageInfo_IntRange.Size(m) + +func (x *IntRange) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *IntRange) XXX_DiscardUnknown() { - xxx_messageInfo_IntRange.DiscardUnknown(m) + +func (*IntRange) ProtoMessage() {} + +func (x *IntRange) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[3] + 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) } -var xxx_messageInfo_IntRange proto.InternalMessageInfo +// Deprecated: Use IntRange.ProtoReflect.Descriptor instead. +func (*IntRange) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{3} +} -func (m *IntRange) GetStart() int32 { - if m != nil { - return m.Start +func (x *IntRange) GetStart() int32 { + if x != nil { + return x.Start } return 0 } -func (m *IntRange) GetEnd() int32 { - if m != nil { - return m.End +func (x *IntRange) GetEnd() int32 { + if x != nil { + return x.End } return 0 } type ScoredIntRange struct { - Range *IntRange `protobuf:"bytes,1,opt,name=range,proto3" json:"range,omitempty"` - Score float64 `protobuf:"fixed64,2,opt,name=score,proto3" json:"score,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *ScoredIntRange) Reset() { *m = ScoredIntRange{} } -func (m *ScoredIntRange) String() string { return proto.CompactTextString(m) } -func (*ScoredIntRange) ProtoMessage() {} -func (*ScoredIntRange) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{4} + Range *IntRange `protobuf:"bytes,1,opt,name=range,proto3" json:"range,omitempty"` + Score float64 `protobuf:"fixed64,2,opt,name=score,proto3" json:"score,omitempty"` } -func (m *ScoredIntRange) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ScoredIntRange.Unmarshal(m, b) -} -func (m *ScoredIntRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ScoredIntRange.Marshal(b, m, deterministic) -} -func (m *ScoredIntRange) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScoredIntRange.Merge(m, src) +func (x *ScoredIntRange) Reset() { + *x = ScoredIntRange{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ScoredIntRange) XXX_Size() int { - return xxx_messageInfo_ScoredIntRange.Size(m) + +func (x *ScoredIntRange) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ScoredIntRange) XXX_DiscardUnknown() { - xxx_messageInfo_ScoredIntRange.DiscardUnknown(m) + +func (*ScoredIntRange) ProtoMessage() {} + +func (x *ScoredIntRange) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[4] + 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) } -var xxx_messageInfo_ScoredIntRange proto.InternalMessageInfo +// Deprecated: Use ScoredIntRange.ProtoReflect.Descriptor instead. +func (*ScoredIntRange) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{4} +} -func (m *ScoredIntRange) GetRange() *IntRange { - if m != nil { - return m.Range +func (x *ScoredIntRange) GetRange() *IntRange { + if x != nil { + return x.Range } return nil } -func (m *ScoredIntRange) GetScore() float64 { - if m != nil { - return m.Score +func (x *ScoredIntRange) GetScore() float64 { + if x != nil { + return x.Score } return 0 } type MaskIntRange struct { - Range *IntRange `protobuf:"bytes,1,opt,name=range,proto3" json:"range,omitempty"` - Mask *Resource `protobuf:"bytes,2,opt,name=mask,proto3" json:"mask,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *MaskIntRange) Reset() { *m = MaskIntRange{} } -func (m *MaskIntRange) String() string { return proto.CompactTextString(m) } -func (*MaskIntRange) ProtoMessage() {} -func (*MaskIntRange) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{5} + Range *IntRange `protobuf:"bytes,1,opt,name=range,proto3" json:"range,omitempty"` + Mask *Resource `protobuf:"bytes,2,opt,name=mask,proto3" json:"mask,omitempty"` } -func (m *MaskIntRange) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MaskIntRange.Unmarshal(m, b) -} -func (m *MaskIntRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MaskIntRange.Marshal(b, m, deterministic) -} -func (m *MaskIntRange) XXX_Merge(src proto.Message) { - xxx_messageInfo_MaskIntRange.Merge(m, src) +func (x *MaskIntRange) Reset() { + *x = MaskIntRange{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MaskIntRange) XXX_Size() int { - return xxx_messageInfo_MaskIntRange.Size(m) + +func (x *MaskIntRange) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MaskIntRange) XXX_DiscardUnknown() { - xxx_messageInfo_MaskIntRange.DiscardUnknown(m) + +func (*MaskIntRange) ProtoMessage() {} + +func (x *MaskIntRange) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[5] + 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) } -var xxx_messageInfo_MaskIntRange proto.InternalMessageInfo +// Deprecated: Use MaskIntRange.ProtoReflect.Descriptor instead. +func (*MaskIntRange) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{5} +} -func (m *MaskIntRange) GetRange() *IntRange { - if m != nil { - return m.Range +func (x *MaskIntRange) GetRange() *IntRange { + if x != nil { + return x.Range } return nil } -func (m *MaskIntRange) GetMask() *Resource { - if m != nil { - return m.Mask +func (x *MaskIntRange) GetMask() *Resource { + if x != nil { + return x.Mask } return nil } type FloatRange struct { - Start float64 `protobuf:"fixed64,1,opt,name=start,proto3" json:"start,omitempty"` - End float64 `protobuf:"fixed64,2,opt,name=end,proto3" json:"end,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *FloatRange) Reset() { *m = FloatRange{} } -func (m *FloatRange) String() string { return proto.CompactTextString(m) } -func (*FloatRange) ProtoMessage() {} -func (*FloatRange) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{6} + Start float64 `protobuf:"fixed64,1,opt,name=start,proto3" json:"start,omitempty"` + End float64 `protobuf:"fixed64,2,opt,name=end,proto3" json:"end,omitempty"` } -func (m *FloatRange) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FloatRange.Unmarshal(m, b) -} -func (m *FloatRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FloatRange.Marshal(b, m, deterministic) -} -func (m *FloatRange) XXX_Merge(src proto.Message) { - xxx_messageInfo_FloatRange.Merge(m, src) +func (x *FloatRange) Reset() { + *x = FloatRange{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FloatRange) XXX_Size() int { - return xxx_messageInfo_FloatRange.Size(m) + +func (x *FloatRange) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FloatRange) XXX_DiscardUnknown() { - xxx_messageInfo_FloatRange.DiscardUnknown(m) + +func (*FloatRange) ProtoMessage() {} + +func (x *FloatRange) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FloatRange proto.InternalMessageInfo +// Deprecated: Use FloatRange.ProtoReflect.Descriptor instead. +func (*FloatRange) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{6} +} -func (m *FloatRange) GetStart() float64 { - if m != nil { - return m.Start +func (x *FloatRange) GetStart() float64 { + if x != nil { + return x.Start } return 0 } -func (m *FloatRange) GetEnd() float64 { - if m != nil { - return m.End +func (x *FloatRange) GetEnd() float64 { + if x != nil { + return x.End } return 0 } type ScoredFloatRange struct { - Range *FloatRange `protobuf:"bytes,1,opt,name=range,proto3" json:"range,omitempty"` - Score float64 `protobuf:"fixed64,2,opt,name=score,proto3" json:"score,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *ScoredFloatRange) Reset() { *m = ScoredFloatRange{} } -func (m *ScoredFloatRange) String() string { return proto.CompactTextString(m) } -func (*ScoredFloatRange) ProtoMessage() {} -func (*ScoredFloatRange) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{7} + Range *FloatRange `protobuf:"bytes,1,opt,name=range,proto3" json:"range,omitempty"` + Score float64 `protobuf:"fixed64,2,opt,name=score,proto3" json:"score,omitempty"` } -func (m *ScoredFloatRange) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ScoredFloatRange.Unmarshal(m, b) -} -func (m *ScoredFloatRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ScoredFloatRange.Marshal(b, m, deterministic) -} -func (m *ScoredFloatRange) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScoredFloatRange.Merge(m, src) +func (x *ScoredFloatRange) Reset() { + *x = ScoredFloatRange{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ScoredFloatRange) XXX_Size() int { - return xxx_messageInfo_ScoredFloatRange.Size(m) + +func (x *ScoredFloatRange) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ScoredFloatRange) XXX_DiscardUnknown() { - xxx_messageInfo_ScoredFloatRange.DiscardUnknown(m) + +func (*ScoredFloatRange) ProtoMessage() {} + +func (x *ScoredFloatRange) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[7] + 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) } -var xxx_messageInfo_ScoredFloatRange proto.InternalMessageInfo +// Deprecated: Use ScoredFloatRange.ProtoReflect.Descriptor instead. +func (*ScoredFloatRange) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{7} +} -func (m *ScoredFloatRange) GetRange() *FloatRange { - if m != nil { - return m.Range +func (x *ScoredFloatRange) GetRange() *FloatRange { + if x != nil { + return x.Range } return nil } -func (m *ScoredFloatRange) GetScore() float64 { - if m != nil { - return m.Score +func (x *ScoredFloatRange) GetScore() float64 { + if x != nil { + return x.Score } return 0 } type ImageLocalization struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // The grayscale image mask indicating where manipulations have been // detected. As of late January 2019, the range is [0, 255] and 0 means // "manipulated". @@ -877,60 +1011,68 @@ type ImageLocalization struct { // mask images. // // TODO: After February 2019, may become manipulated = val > threshold. - MaskThreshold float64 `protobuf:"fixed64,3,opt,name=mask_threshold,json=maskThreshold,proto3" json:"mask_threshold,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + MaskThreshold float64 `protobuf:"fixed64,3,opt,name=mask_threshold,json=maskThreshold,proto3" json:"mask_threshold,omitempty"` } -func (m *ImageLocalization) Reset() { *m = ImageLocalization{} } -func (m *ImageLocalization) String() string { return proto.CompactTextString(m) } -func (*ImageLocalization) ProtoMessage() {} -func (*ImageLocalization) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{8} +func (x *ImageLocalization) Reset() { + *x = ImageLocalization{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageLocalization) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageLocalization.Unmarshal(m, b) -} -func (m *ImageLocalization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageLocalization.Marshal(b, m, deterministic) -} -func (m *ImageLocalization) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageLocalization.Merge(m, src) +func (x *ImageLocalization) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageLocalization) XXX_Size() int { - return xxx_messageInfo_ImageLocalization.Size(m) -} -func (m *ImageLocalization) XXX_DiscardUnknown() { - xxx_messageInfo_ImageLocalization.DiscardUnknown(m) + +func (*ImageLocalization) ProtoMessage() {} + +func (x *ImageLocalization) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[8] + 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) } -var xxx_messageInfo_ImageLocalization proto.InternalMessageInfo +// Deprecated: Use ImageLocalization.ProtoReflect.Descriptor instead. +func (*ImageLocalization) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{8} +} -func (m *ImageLocalization) GetMask() *Resource { - if m != nil { - return m.Mask +func (x *ImageLocalization) GetMask() *Resource { + if x != nil { + return x.Mask } return nil } -func (m *ImageLocalization) GetMaskOptout() *Resource { - if m != nil { - return m.MaskOptout +func (x *ImageLocalization) GetMaskOptout() *Resource { + if x != nil { + return x.MaskOptout } return nil } -func (m *ImageLocalization) GetMaskThreshold() float64 { - if m != nil { - return m.MaskThreshold +func (x *ImageLocalization) GetMaskThreshold() float64 { + if x != nil { + return x.MaskThreshold } return 0 } // Next ID: 11 type ImageManipulation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // A value in [0, 1], where 1 indicates "definitely manipulated" and 0 means // "definitely not". Leave unset (default value) if not used, and indicate that // with an appropriate opt_out value. @@ -961,103 +1103,107 @@ type ImageManipulation struct { // Supplemental information, if available (e.g., depictions of reasoning). // Any kind of file can be output and referenced here, including JSON // metadata, image data with graphs, etc. - Supplement []*Resource `protobuf:"bytes,8,rep,name=supplement,proto3" json:"supplement,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Supplement []*Resource `protobuf:"bytes,8,rep,name=supplement,proto3" json:"supplement,omitempty"` } -func (m *ImageManipulation) Reset() { *m = ImageManipulation{} } -func (m *ImageManipulation) String() string { return proto.CompactTextString(m) } -func (*ImageManipulation) ProtoMessage() {} -func (*ImageManipulation) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{9} +func (x *ImageManipulation) Reset() { + *x = ImageManipulation{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageManipulation) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageManipulation.Unmarshal(m, b) -} -func (m *ImageManipulation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageManipulation.Marshal(b, m, deterministic) +func (x *ImageManipulation) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageManipulation) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageManipulation.Merge(m, src) -} -func (m *ImageManipulation) XXX_Size() int { - return xxx_messageInfo_ImageManipulation.Size(m) -} -func (m *ImageManipulation) XXX_DiscardUnknown() { - xxx_messageInfo_ImageManipulation.DiscardUnknown(m) + +func (*ImageManipulation) ProtoMessage() {} + +func (x *ImageManipulation) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[9] + 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) } -var xxx_messageInfo_ImageManipulation proto.InternalMessageInfo +// Deprecated: Use ImageManipulation.ProtoReflect.Descriptor instead. +func (*ImageManipulation) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{9} +} -func (m *ImageManipulation) GetScore() float64 { - if m != nil { - return m.Score +func (x *ImageManipulation) GetScore() float64 { + if x != nil { + return x.Score } return 0 } -func (m *ImageManipulation) GetFacets() map[string]float64 { - if m != nil { - return m.Facets +func (x *ImageManipulation) GetFacets() map[string]float64 { + if x != nil { + return x.Facets } return nil } -func (m *ImageManipulation) GetConfidence() float64 { - if m != nil { - return m.Confidence +func (x *ImageManipulation) GetConfidence() float64 { + if x != nil { + return x.Confidence } return 0 } -func (m *ImageManipulation) GetHasConfidence() bool { - if m != nil { - return m.HasConfidence +func (x *ImageManipulation) GetHasConfidence() bool { + if x != nil { + return x.HasConfidence } return false } -func (m *ImageManipulation) GetOptOut() OptOutType { - if m != nil { - return m.OptOut +func (x *ImageManipulation) GetOptOut() OptOutType { + if x != nil { + return x.OptOut } return OptOutType_OPT_OUT_NONE } -func (m *ImageManipulation) GetExplanation() string { - if m != nil { - return m.Explanation +func (x *ImageManipulation) GetExplanation() string { + if x != nil { + return x.Explanation } return "" } -func (m *ImageManipulation) GetLocalization() *ImageLocalization { - if m != nil { - return m.Localization +func (x *ImageManipulation) GetLocalization() *ImageLocalization { + if x != nil { + return x.Localization } return nil } -func (m *ImageManipulation) GetSpecificity() SpecificityType { - if m != nil { - return m.Specificity +func (x *ImageManipulation) GetSpecificity() SpecificityType { + if x != nil { + return x.Specificity } return SpecificityType_SPEC_GLOBAL } -func (m *ImageManipulation) GetManipulationType() []ManipulationType { - if m != nil { - return m.ManipulationType +func (x *ImageManipulation) GetManipulationType() []ManipulationType { + if x != nil { + return x.ManipulationType } return nil } -func (m *ImageManipulation) GetSupplement() []*Resource { - if m != nil { - return m.Supplement +func (x *ImageManipulation) GetSupplement() []*Resource { + if x != nil { + return x.Supplement } return nil } @@ -1066,6 +1212,10 @@ func (m *ImageManipulation) GetSupplement() []*Resource { // a particular image is likely to have been manipulated after capture. // NextID: 5 type ImageManipulationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // A unique ID for each request. Usually a UUID4 is used here. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // The image to check for manipulation. @@ -1080,66 +1230,74 @@ type ImageManipulationRequest struct { OutDir string `protobuf:"bytes,3,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` // The high-provenance device ID, if known, of the device that captured the // image. - HpDeviceId string `protobuf:"bytes,4,opt,name=hp_device_id,json=hpDeviceId,proto3" json:"hp_device_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + HpDeviceId string `protobuf:"bytes,4,opt,name=hp_device_id,json=hpDeviceId,proto3" json:"hp_device_id,omitempty"` } -func (m *ImageManipulationRequest) Reset() { *m = ImageManipulationRequest{} } -func (m *ImageManipulationRequest) String() string { return proto.CompactTextString(m) } -func (*ImageManipulationRequest) ProtoMessage() {} -func (*ImageManipulationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{10} +func (x *ImageManipulationRequest) Reset() { + *x = ImageManipulationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageManipulationRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageManipulationRequest.Unmarshal(m, b) -} -func (m *ImageManipulationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageManipulationRequest.Marshal(b, m, deterministic) -} -func (m *ImageManipulationRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageManipulationRequest.Merge(m, src) -} -func (m *ImageManipulationRequest) XXX_Size() int { - return xxx_messageInfo_ImageManipulationRequest.Size(m) +func (x *ImageManipulationRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageManipulationRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ImageManipulationRequest.DiscardUnknown(m) + +func (*ImageManipulationRequest) ProtoMessage() {} + +func (x *ImageManipulationRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[10] + 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) } -var xxx_messageInfo_ImageManipulationRequest proto.InternalMessageInfo +// Deprecated: Use ImageManipulationRequest.ProtoReflect.Descriptor instead. +func (*ImageManipulationRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{10} +} -func (m *ImageManipulationRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *ImageManipulationRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *ImageManipulationRequest) GetImage() *Resource { - if m != nil { - return m.Image +func (x *ImageManipulationRequest) GetImage() *Resource { + if x != nil { + return x.Image } return nil } -func (m *ImageManipulationRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *ImageManipulationRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } -func (m *ImageManipulationRequest) GetHpDeviceId() string { - if m != nil { - return m.HpDeviceId +func (x *ImageManipulationRequest) GetHpDeviceId() string { + if x != nil { + return x.HpDeviceId } return "" } type VideoLocalization struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // A list of all start/end frame indices where manipulation was detected. FrameDetection []*ScoredIntRange `protobuf:"bytes,1,rep,name=frame_detection,json=frameDetection,proto3" json:"frame_detection,omitempty"` // Only used if detection optout = OPT_OUT_LOCALIZATION. @@ -1155,88 +1313,96 @@ type VideoLocalization struct { VideoMaskOptout []*MaskIntRange `protobuf:"bytes,6,rep,name=video_mask_optout,json=videoMaskOptout,proto3" json:"video_mask_optout,omitempty"` // A threshold in [0, 255] indicating how to interpret manipulation mask frames. // See the similar mask_threshold for images for more details. - VideoMaskThreshold float64 `protobuf:"fixed64,7,opt,name=video_mask_threshold,json=videoMaskThreshold,proto3" json:"video_mask_threshold,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + VideoMaskThreshold float64 `protobuf:"fixed64,7,opt,name=video_mask_threshold,json=videoMaskThreshold,proto3" json:"video_mask_threshold,omitempty"` } -func (m *VideoLocalization) Reset() { *m = VideoLocalization{} } -func (m *VideoLocalization) String() string { return proto.CompactTextString(m) } -func (*VideoLocalization) ProtoMessage() {} -func (*VideoLocalization) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{11} +func (x *VideoLocalization) Reset() { + *x = VideoLocalization{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *VideoLocalization) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_VideoLocalization.Unmarshal(m, b) +func (x *VideoLocalization) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *VideoLocalization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_VideoLocalization.Marshal(b, m, deterministic) -} -func (m *VideoLocalization) XXX_Merge(src proto.Message) { - xxx_messageInfo_VideoLocalization.Merge(m, src) -} -func (m *VideoLocalization) XXX_Size() int { - return xxx_messageInfo_VideoLocalization.Size(m) -} -func (m *VideoLocalization) XXX_DiscardUnknown() { - xxx_messageInfo_VideoLocalization.DiscardUnknown(m) + +func (*VideoLocalization) ProtoMessage() {} + +func (x *VideoLocalization) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[11] + 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) } -var xxx_messageInfo_VideoLocalization proto.InternalMessageInfo +// Deprecated: Use VideoLocalization.ProtoReflect.Descriptor instead. +func (*VideoLocalization) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{11} +} -func (m *VideoLocalization) GetFrameDetection() []*ScoredIntRange { - if m != nil { - return m.FrameDetection +func (x *VideoLocalization) GetFrameDetection() []*ScoredIntRange { + if x != nil { + return x.FrameDetection } return nil } -func (m *VideoLocalization) GetFrameOptout() []*IntRange { - if m != nil { - return m.FrameOptout +func (x *VideoLocalization) GetFrameOptout() []*IntRange { + if x != nil { + return x.FrameOptout } return nil } -func (m *VideoLocalization) GetAudioDetection() []*ScoredFloatRange { - if m != nil { - return m.AudioDetection +func (x *VideoLocalization) GetAudioDetection() []*ScoredFloatRange { + if x != nil { + return x.AudioDetection } return nil } -func (m *VideoLocalization) GetAudioOptout() []*FloatRange { - if m != nil { - return m.AudioOptout +func (x *VideoLocalization) GetAudioOptout() []*FloatRange { + if x != nil { + return x.AudioOptout } return nil } -func (m *VideoLocalization) GetVideoMask() []*MaskIntRange { - if m != nil { - return m.VideoMask +func (x *VideoLocalization) GetVideoMask() []*MaskIntRange { + if x != nil { + return x.VideoMask } return nil } -func (m *VideoLocalization) GetVideoMaskOptout() []*MaskIntRange { - if m != nil { - return m.VideoMaskOptout +func (x *VideoLocalization) GetVideoMaskOptout() []*MaskIntRange { + if x != nil { + return x.VideoMaskOptout } return nil } -func (m *VideoLocalization) GetVideoMaskThreshold() float64 { - if m != nil { - return m.VideoMaskThreshold +func (x *VideoLocalization) GetVideoMaskThreshold() float64 { + if x != nil { + return x.VideoMaskThreshold } return 0 } // Next ID: 11 type VideoManipulation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // A value in [0, 1] where 1 indicates "definitely manipulated". // Leave as the default if detection is opted out. Score float64 `protobuf:"fixed64,1,opt,name=score,proto3" json:"score,omitempty"` @@ -1259,109 +1425,117 @@ type VideoManipulation struct { // What kinds of manipulation were detected. ManipulationType []ManipulationType `protobuf:"varint,7,rep,packed,name=manipulation_type,json=manipulationType,proto3,enum=mediforproto.ManipulationType" json:"manipulation_type,omitempty"` // Supplemental information, if available (e.g., depictions of reasoning). - Supplement []*Resource `protobuf:"bytes,8,rep,name=supplement,proto3" json:"supplement,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Supplement []*Resource `protobuf:"bytes,8,rep,name=supplement,proto3" json:"supplement,omitempty"` } -func (m *VideoManipulation) Reset() { *m = VideoManipulation{} } -func (m *VideoManipulation) String() string { return proto.CompactTextString(m) } -func (*VideoManipulation) ProtoMessage() {} -func (*VideoManipulation) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{12} +func (x *VideoManipulation) Reset() { + *x = VideoManipulation{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *VideoManipulation) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_VideoManipulation.Unmarshal(m, b) -} -func (m *VideoManipulation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_VideoManipulation.Marshal(b, m, deterministic) -} -func (m *VideoManipulation) XXX_Merge(src proto.Message) { - xxx_messageInfo_VideoManipulation.Merge(m, src) +func (x *VideoManipulation) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *VideoManipulation) XXX_Size() int { - return xxx_messageInfo_VideoManipulation.Size(m) -} -func (m *VideoManipulation) XXX_DiscardUnknown() { - xxx_messageInfo_VideoManipulation.DiscardUnknown(m) + +func (*VideoManipulation) ProtoMessage() {} + +func (x *VideoManipulation) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[12] + 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) } -var xxx_messageInfo_VideoManipulation proto.InternalMessageInfo +// Deprecated: Use VideoManipulation.ProtoReflect.Descriptor instead. +func (*VideoManipulation) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{12} +} -func (m *VideoManipulation) GetScore() float64 { - if m != nil { - return m.Score +func (x *VideoManipulation) GetScore() float64 { + if x != nil { + return x.Score } return 0 } -func (m *VideoManipulation) GetFacets() map[string]float64 { - if m != nil { - return m.Facets +func (x *VideoManipulation) GetFacets() map[string]float64 { + if x != nil { + return x.Facets } return nil } -func (m *VideoManipulation) GetConfidence() float64 { - if m != nil { - return m.Confidence +func (x *VideoManipulation) GetConfidence() float64 { + if x != nil { + return x.Confidence } return 0 } -func (m *VideoManipulation) GetHasConfidence() bool { - if m != nil { - return m.HasConfidence +func (x *VideoManipulation) GetHasConfidence() bool { + if x != nil { + return x.HasConfidence } return false } -func (m *VideoManipulation) GetOptOut() []VideoOptOutType { - if m != nil { - return m.OptOut +func (x *VideoManipulation) GetOptOut() []VideoOptOutType { + if x != nil { + return x.OptOut } return nil } -func (m *VideoManipulation) GetExplanation() string { - if m != nil { - return m.Explanation +func (x *VideoManipulation) GetExplanation() string { + if x != nil { + return x.Explanation } return "" } -func (m *VideoManipulation) GetLocalization() *VideoLocalization { - if m != nil { - return m.Localization +func (x *VideoManipulation) GetLocalization() *VideoLocalization { + if x != nil { + return x.Localization } return nil } -func (m *VideoManipulation) GetSpecificity() SpecificityType { - if m != nil { - return m.Specificity +func (x *VideoManipulation) GetSpecificity() SpecificityType { + if x != nil { + return x.Specificity } return SpecificityType_SPEC_GLOBAL } -func (m *VideoManipulation) GetManipulationType() []ManipulationType { - if m != nil { - return m.ManipulationType +func (x *VideoManipulation) GetManipulationType() []ManipulationType { + if x != nil { + return x.ManipulationType } return nil } -func (m *VideoManipulation) GetSupplement() []*Resource { - if m != nil { - return m.Supplement +func (x *VideoManipulation) GetSupplement() []*Resource { + if x != nil { + return x.Supplement } return nil } // Next ID: 10 type VideoManipulationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // An ID unique to each request. Often a UUID4. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Pointer to the file URI, with type information. @@ -1371,107 +1545,115 @@ type VideoManipulationRequest struct { OutDir string `protobuf:"bytes,3,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` // The high-provenance device ID, if known, of the device that captured the // video. - HpDeviceId string `protobuf:"bytes,9,opt,name=hp_device_id,json=hpDeviceId,proto3" json:"hp_device_id,omitempty"` - KeepWorkspace bool `protobuf:"varint,4,opt,name=keep_workspace,json=keepWorkspace,proto3" json:"keep_workspace,omitempty"` - SkipAudio bool `protobuf:"varint,5,opt,name=skip_audio,json=skipAudio,proto3" json:"skip_audio,omitempty"` - SkipVisual bool `protobuf:"varint,6,opt,name=skip_visual,json=skipVisual,proto3" json:"skip_visual,omitempty"` - DebugResources bool `protobuf:"varint,7,opt,name=debug_resources,json=debugResources,proto3" json:"debug_resources,omitempty"` - GpuOrd int32 `protobuf:"varint,8,opt,name=gpu_ord,json=gpuOrd,proto3" json:"gpu_ord,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *VideoManipulationRequest) Reset() { *m = VideoManipulationRequest{} } -func (m *VideoManipulationRequest) String() string { return proto.CompactTextString(m) } -func (*VideoManipulationRequest) ProtoMessage() {} -func (*VideoManipulationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{13} + HpDeviceId string `protobuf:"bytes,9,opt,name=hp_device_id,json=hpDeviceId,proto3" json:"hp_device_id,omitempty"` + KeepWorkspace bool `protobuf:"varint,4,opt,name=keep_workspace,json=keepWorkspace,proto3" json:"keep_workspace,omitempty"` + SkipAudio bool `protobuf:"varint,5,opt,name=skip_audio,json=skipAudio,proto3" json:"skip_audio,omitempty"` + SkipVisual bool `protobuf:"varint,6,opt,name=skip_visual,json=skipVisual,proto3" json:"skip_visual,omitempty"` + DebugResources bool `protobuf:"varint,7,opt,name=debug_resources,json=debugResources,proto3" json:"debug_resources,omitempty"` + GpuOrd int32 `protobuf:"varint,8,opt,name=gpu_ord,json=gpuOrd,proto3" json:"gpu_ord,omitempty"` } -func (m *VideoManipulationRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_VideoManipulationRequest.Unmarshal(m, b) -} -func (m *VideoManipulationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_VideoManipulationRequest.Marshal(b, m, deterministic) -} -func (m *VideoManipulationRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_VideoManipulationRequest.Merge(m, src) +func (x *VideoManipulationRequest) Reset() { + *x = VideoManipulationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *VideoManipulationRequest) XXX_Size() int { - return xxx_messageInfo_VideoManipulationRequest.Size(m) + +func (x *VideoManipulationRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *VideoManipulationRequest) XXX_DiscardUnknown() { - xxx_messageInfo_VideoManipulationRequest.DiscardUnknown(m) + +func (*VideoManipulationRequest) ProtoMessage() {} + +func (x *VideoManipulationRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[13] + 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) } -var xxx_messageInfo_VideoManipulationRequest proto.InternalMessageInfo +// Deprecated: Use VideoManipulationRequest.ProtoReflect.Descriptor instead. +func (*VideoManipulationRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{13} +} -func (m *VideoManipulationRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *VideoManipulationRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *VideoManipulationRequest) GetVideo() *Resource { - if m != nil { - return m.Video +func (x *VideoManipulationRequest) GetVideo() *Resource { + if x != nil { + return x.Video } return nil } -func (m *VideoManipulationRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *VideoManipulationRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } -func (m *VideoManipulationRequest) GetHpDeviceId() string { - if m != nil { - return m.HpDeviceId +func (x *VideoManipulationRequest) GetHpDeviceId() string { + if x != nil { + return x.HpDeviceId } return "" } -func (m *VideoManipulationRequest) GetKeepWorkspace() bool { - if m != nil { - return m.KeepWorkspace +func (x *VideoManipulationRequest) GetKeepWorkspace() bool { + if x != nil { + return x.KeepWorkspace } return false } -func (m *VideoManipulationRequest) GetSkipAudio() bool { - if m != nil { - return m.SkipAudio +func (x *VideoManipulationRequest) GetSkipAudio() bool { + if x != nil { + return x.SkipAudio } return false } -func (m *VideoManipulationRequest) GetSkipVisual() bool { - if m != nil { - return m.SkipVisual +func (x *VideoManipulationRequest) GetSkipVisual() bool { + if x != nil { + return x.SkipVisual } return false } -func (m *VideoManipulationRequest) GetDebugResources() bool { - if m != nil { - return m.DebugResources +func (x *VideoManipulationRequest) GetDebugResources() bool { + if x != nil { + return x.DebugResources } return false } -func (m *VideoManipulationRequest) GetGpuOrd() int32 { - if m != nil { - return m.GpuOrd +func (x *VideoManipulationRequest) GetGpuOrd() int32 { + if x != nil { + return x.GpuOrd } return 0 } // Next ID: 10 type Link struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // For provenance: source and target image URIs. FromUri string `protobuf:"bytes,1,opt,name=from_uri,json=fromUri,proto3" json:"from_uri,omitempty"` ToUri string `protobuf:"bytes,2,opt,name=to_uri,json=toUri,proto3" json:"to_uri,omitempty"` @@ -1487,149 +1669,165 @@ type Link struct { // Mask showing where the source part was placed into the destination media. ToMask *ImageLocalization `protobuf:"bytes,6,opt,name=to_mask,json=toMask,proto3" json:"to_mask,omitempty"` // Optional explanation for why this link is believed to exist. - Explanation string `protobuf:"bytes,7,opt,name=explanation,proto3" json:"explanation,omitempty"` - ManipulationType []ManipulationType `protobuf:"varint,8,rep,packed,name=manipulation_type,json=manipulationType,proto3,enum=mediforproto.ManipulationType" json:"manipulation_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Explanation string `protobuf:"bytes,7,opt,name=explanation,proto3" json:"explanation,omitempty"` + ManipulationType []ManipulationType `protobuf:"varint,8,rep,packed,name=manipulation_type,json=manipulationType,proto3,enum=mediforproto.ManipulationType" json:"manipulation_type,omitempty"` } -func (m *Link) Reset() { *m = Link{} } -func (m *Link) String() string { return proto.CompactTextString(m) } -func (*Link) ProtoMessage() {} -func (*Link) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{14} +func (x *Link) Reset() { + *x = Link{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Link) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Link.Unmarshal(m, b) -} -func (m *Link) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Link.Marshal(b, m, deterministic) +func (x *Link) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Link) XXX_Merge(src proto.Message) { - xxx_messageInfo_Link.Merge(m, src) -} -func (m *Link) XXX_Size() int { - return xxx_messageInfo_Link.Size(m) -} -func (m *Link) XXX_DiscardUnknown() { - xxx_messageInfo_Link.DiscardUnknown(m) + +func (*Link) ProtoMessage() {} + +func (x *Link) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_Link proto.InternalMessageInfo +// Deprecated: Use Link.ProtoReflect.Descriptor instead. +func (*Link) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{14} +} -func (m *Link) GetFromUri() string { - if m != nil { - return m.FromUri +func (x *Link) GetFromUri() string { + if x != nil { + return x.FromUri } return "" } -func (m *Link) GetToUri() string { - if m != nil { - return m.ToUri +func (x *Link) GetToUri() string { + if x != nil { + return x.ToUri } return "" } -func (m *Link) GetScore() float64 { - if m != nil { - return m.Score +func (x *Link) GetScore() float64 { + if x != nil { + return x.Score } return 0 } -func (m *Link) GetConfidence() float64 { - if m != nil { - return m.Confidence +func (x *Link) GetConfidence() float64 { + if x != nil { + return x.Confidence } return 0 } -func (m *Link) GetHasConfidence() bool { - if m != nil { - return m.HasConfidence +func (x *Link) GetHasConfidence() bool { + if x != nil { + return x.HasConfidence } return false } -func (m *Link) GetFromMask() *ImageLocalization { - if m != nil { - return m.FromMask +func (x *Link) GetFromMask() *ImageLocalization { + if x != nil { + return x.FromMask } return nil } -func (m *Link) GetToMask() *ImageLocalization { - if m != nil { - return m.ToMask +func (x *Link) GetToMask() *ImageLocalization { + if x != nil { + return x.ToMask } return nil } -func (m *Link) GetExplanation() string { - if m != nil { - return m.Explanation +func (x *Link) GetExplanation() string { + if x != nil { + return x.Explanation } return "" } -func (m *Link) GetManipulationType() []ManipulationType { - if m != nil { - return m.ManipulationType +func (x *Link) GetManipulationType() []ManipulationType { + if x != nil { + return x.ManipulationType } return nil } type ImageSplice struct { - OptOut OptOutType `protobuf:"varint,1,opt,name=opt_out,json=optOut,proto3,enum=mediforproto.OptOutType" json:"opt_out,omitempty"` - Link *Link `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *ImageSplice) Reset() { *m = ImageSplice{} } -func (m *ImageSplice) String() string { return proto.CompactTextString(m) } -func (*ImageSplice) ProtoMessage() {} -func (*ImageSplice) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{15} + OptOut OptOutType `protobuf:"varint,1,opt,name=opt_out,json=optOut,proto3,enum=mediforproto.OptOutType" json:"opt_out,omitempty"` + Link *Link `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` } -func (m *ImageSplice) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageSplice.Unmarshal(m, b) -} -func (m *ImageSplice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageSplice.Marshal(b, m, deterministic) -} -func (m *ImageSplice) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageSplice.Merge(m, src) +func (x *ImageSplice) Reset() { + *x = ImageSplice{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageSplice) XXX_Size() int { - return xxx_messageInfo_ImageSplice.Size(m) + +func (x *ImageSplice) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageSplice) XXX_DiscardUnknown() { - xxx_messageInfo_ImageSplice.DiscardUnknown(m) + +func (*ImageSplice) ProtoMessage() {} + +func (x *ImageSplice) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_ImageSplice proto.InternalMessageInfo +// Deprecated: Use ImageSplice.ProtoReflect.Descriptor instead. +func (*ImageSplice) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{15} +} -func (m *ImageSplice) GetOptOut() OptOutType { - if m != nil { - return m.OptOut +func (x *ImageSplice) GetOptOut() OptOutType { + if x != nil { + return x.OptOut } return OptOutType_OPT_OUT_NONE } -func (m *ImageSplice) GetLink() *Link { - if m != nil { - return m.Link +func (x *ImageSplice) GetLink() *Link { + if x != nil { + return x.Link } return nil } type ImageSpliceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // An ID unique to each request. Often a UUID4. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // The "main" image. @@ -1639,66 +1837,74 @@ type ImageSpliceRequest struct { DonorImage *Resource `protobuf:"bytes,3,opt,name=donor_image,json=donorImage,proto3" json:"donor_image,omitempty"` // Location where files should be written. See ImageManipulationRequest's // out_dir for details. - OutDir string `protobuf:"bytes,4,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + OutDir string `protobuf:"bytes,4,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` } -func (m *ImageSpliceRequest) Reset() { *m = ImageSpliceRequest{} } -func (m *ImageSpliceRequest) String() string { return proto.CompactTextString(m) } -func (*ImageSpliceRequest) ProtoMessage() {} -func (*ImageSpliceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{16} +func (x *ImageSpliceRequest) Reset() { + *x = ImageSpliceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageSpliceRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageSpliceRequest.Unmarshal(m, b) +func (x *ImageSpliceRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageSpliceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageSpliceRequest.Marshal(b, m, deterministic) -} -func (m *ImageSpliceRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageSpliceRequest.Merge(m, src) -} -func (m *ImageSpliceRequest) XXX_Size() int { - return xxx_messageInfo_ImageSpliceRequest.Size(m) -} -func (m *ImageSpliceRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ImageSpliceRequest.DiscardUnknown(m) + +func (*ImageSpliceRequest) ProtoMessage() {} + +func (x *ImageSpliceRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_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) } -var xxx_messageInfo_ImageSpliceRequest proto.InternalMessageInfo +// Deprecated: Use ImageSpliceRequest.ProtoReflect.Descriptor instead. +func (*ImageSpliceRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{16} +} -func (m *ImageSpliceRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *ImageSpliceRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *ImageSpliceRequest) GetProbeImage() *Resource { - if m != nil { - return m.ProbeImage +func (x *ImageSpliceRequest) GetProbeImage() *Resource { + if x != nil { + return x.ProbeImage } return nil } -func (m *ImageSpliceRequest) GetDonorImage() *Resource { - if m != nil { - return m.DonorImage +func (x *ImageSpliceRequest) GetDonorImage() *Resource { + if x != nil { + return x.DonorImage } return nil } -func (m *ImageSpliceRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *ImageSpliceRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } type ImageCameraMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // A value in [0, 1][ where 1 indicates "definitely this camera" and 0 menas "definitely not". Score float64 `protobuf:"fixed64,1,opt,name=score,proto3" json:"score,omitempty"` // Set to true if a score can be set. Leaving it default means "opting out of producing a score". @@ -1713,80 +1919,88 @@ type ImageCameraMatch struct { // no localization info is provided. HasLocalization bool `protobuf:"varint,5,opt,name=has_localization,json=hasLocalization,proto3" json:"has_localization,omitempty"` // Supplemental information, output any type of file, may be surfaced to a user. - Supplement []*Resource `protobuf:"bytes,6,rep,name=supplement,proto3" json:"supplement,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Supplement []*Resource `protobuf:"bytes,6,rep,name=supplement,proto3" json:"supplement,omitempty"` } -func (m *ImageCameraMatch) Reset() { *m = ImageCameraMatch{} } -func (m *ImageCameraMatch) String() string { return proto.CompactTextString(m) } -func (*ImageCameraMatch) ProtoMessage() {} -func (*ImageCameraMatch) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{17} +func (x *ImageCameraMatch) Reset() { + *x = ImageCameraMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageCameraMatch) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageCameraMatch.Unmarshal(m, b) -} -func (m *ImageCameraMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageCameraMatch.Marshal(b, m, deterministic) +func (x *ImageCameraMatch) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageCameraMatch) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageCameraMatch.Merge(m, src) -} -func (m *ImageCameraMatch) XXX_Size() int { - return xxx_messageInfo_ImageCameraMatch.Size(m) -} -func (m *ImageCameraMatch) XXX_DiscardUnknown() { - xxx_messageInfo_ImageCameraMatch.DiscardUnknown(m) + +func (*ImageCameraMatch) ProtoMessage() {} + +func (x *ImageCameraMatch) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[17] + 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) } -var xxx_messageInfo_ImageCameraMatch proto.InternalMessageInfo +// Deprecated: Use ImageCameraMatch.ProtoReflect.Descriptor instead. +func (*ImageCameraMatch) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{17} +} -func (m *ImageCameraMatch) GetScore() float64 { - if m != nil { - return m.Score +func (x *ImageCameraMatch) GetScore() float64 { + if x != nil { + return x.Score } return 0 } -func (m *ImageCameraMatch) GetHasScore() bool { - if m != nil { - return m.HasScore +func (x *ImageCameraMatch) GetHasScore() bool { + if x != nil { + return x.HasScore } return false } -func (m *ImageCameraMatch) GetExplanation() string { - if m != nil { - return m.Explanation +func (x *ImageCameraMatch) GetExplanation() string { + if x != nil { + return x.Explanation } return "" } -func (m *ImageCameraMatch) GetLocalization() *ImageLocalization { - if m != nil { - return m.Localization +func (x *ImageCameraMatch) GetLocalization() *ImageLocalization { + if x != nil { + return x.Localization } return nil } -func (m *ImageCameraMatch) GetHasLocalization() bool { - if m != nil { - return m.HasLocalization +func (x *ImageCameraMatch) GetHasLocalization() bool { + if x != nil { + return x.HasLocalization } return false } -func (m *ImageCameraMatch) GetSupplement() []*Resource { - if m != nil { - return m.Supplement +func (x *ImageCameraMatch) GetSupplement() []*Resource { + if x != nil { + return x.Supplement } return nil } type ImageCameraMatchRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // An ID unique to each request. Often a UUID4. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Location where data should be written by the analytic. See @@ -1795,66 +2009,74 @@ type ImageCameraMatchRequest struct { // The image to check. Image *Resource `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` // The camera ID this image is assumed to have. - CameraId string `protobuf:"bytes,4,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CameraId string `protobuf:"bytes,4,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"` } -func (m *ImageCameraMatchRequest) Reset() { *m = ImageCameraMatchRequest{} } -func (m *ImageCameraMatchRequest) String() string { return proto.CompactTextString(m) } -func (*ImageCameraMatchRequest) ProtoMessage() {} -func (*ImageCameraMatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{18} +func (x *ImageCameraMatchRequest) Reset() { + *x = ImageCameraMatchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageCameraMatchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageCameraMatchRequest.Unmarshal(m, b) +func (x *ImageCameraMatchRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageCameraMatchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageCameraMatchRequest.Marshal(b, m, deterministic) -} -func (m *ImageCameraMatchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageCameraMatchRequest.Merge(m, src) -} -func (m *ImageCameraMatchRequest) XXX_Size() int { - return xxx_messageInfo_ImageCameraMatchRequest.Size(m) -} -func (m *ImageCameraMatchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ImageCameraMatchRequest.DiscardUnknown(m) + +func (*ImageCameraMatchRequest) ProtoMessage() {} + +func (x *ImageCameraMatchRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[18] + 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) } -var xxx_messageInfo_ImageCameraMatchRequest proto.InternalMessageInfo +// Deprecated: Use ImageCameraMatchRequest.ProtoReflect.Descriptor instead. +func (*ImageCameraMatchRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{18} +} -func (m *ImageCameraMatchRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *ImageCameraMatchRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *ImageCameraMatchRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *ImageCameraMatchRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } -func (m *ImageCameraMatchRequest) GetImage() *Resource { - if m != nil { - return m.Image +func (x *ImageCameraMatchRequest) GetImage() *Resource { + if x != nil { + return x.Image } return nil } -func (m *ImageCameraMatchRequest) GetCameraId() string { - if m != nil { - return m.CameraId +func (x *ImageCameraMatchRequest) GetCameraId() string { + if x != nil { + return x.CameraId } return "" } type VideoCameraMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // A value in [0, 1][ where 1 indicates "definitely this camera" and 0 menas "definitely not". Score float64 `protobuf:"fixed64,1,opt,name=score,proto3" json:"score,omitempty"` // Set to true if a score can be set. Leaving it default means "opting out of producing a score". @@ -1869,80 +2091,88 @@ type VideoCameraMatch struct { // no localization info is provided. HasLocalization bool `protobuf:"varint,5,opt,name=has_localization,json=hasLocalization,proto3" json:"has_localization,omitempty"` // Supplemental information, output any type of file, may be surfaced to a user. - Supplement []*Resource `protobuf:"bytes,6,rep,name=supplement,proto3" json:"supplement,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Supplement []*Resource `protobuf:"bytes,6,rep,name=supplement,proto3" json:"supplement,omitempty"` } -func (m *VideoCameraMatch) Reset() { *m = VideoCameraMatch{} } -func (m *VideoCameraMatch) String() string { return proto.CompactTextString(m) } -func (*VideoCameraMatch) ProtoMessage() {} -func (*VideoCameraMatch) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{19} +func (x *VideoCameraMatch) Reset() { + *x = VideoCameraMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *VideoCameraMatch) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_VideoCameraMatch.Unmarshal(m, b) -} -func (m *VideoCameraMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_VideoCameraMatch.Marshal(b, m, deterministic) +func (x *VideoCameraMatch) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *VideoCameraMatch) XXX_Merge(src proto.Message) { - xxx_messageInfo_VideoCameraMatch.Merge(m, src) -} -func (m *VideoCameraMatch) XXX_Size() int { - return xxx_messageInfo_VideoCameraMatch.Size(m) -} -func (m *VideoCameraMatch) XXX_DiscardUnknown() { - xxx_messageInfo_VideoCameraMatch.DiscardUnknown(m) + +func (*VideoCameraMatch) ProtoMessage() {} + +func (x *VideoCameraMatch) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[19] + 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) } -var xxx_messageInfo_VideoCameraMatch proto.InternalMessageInfo +// Deprecated: Use VideoCameraMatch.ProtoReflect.Descriptor instead. +func (*VideoCameraMatch) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{19} +} -func (m *VideoCameraMatch) GetScore() float64 { - if m != nil { - return m.Score +func (x *VideoCameraMatch) GetScore() float64 { + if x != nil { + return x.Score } return 0 } -func (m *VideoCameraMatch) GetHasScore() bool { - if m != nil { - return m.HasScore +func (x *VideoCameraMatch) GetHasScore() bool { + if x != nil { + return x.HasScore } return false } -func (m *VideoCameraMatch) GetExplanation() string { - if m != nil { - return m.Explanation +func (x *VideoCameraMatch) GetExplanation() string { + if x != nil { + return x.Explanation } return "" } -func (m *VideoCameraMatch) GetLocalization() *VideoLocalization { - if m != nil { - return m.Localization +func (x *VideoCameraMatch) GetLocalization() *VideoLocalization { + if x != nil { + return x.Localization } return nil } -func (m *VideoCameraMatch) GetHasLocalization() bool { - if m != nil { - return m.HasLocalization +func (x *VideoCameraMatch) GetHasLocalization() bool { + if x != nil { + return x.HasLocalization } return false } -func (m *VideoCameraMatch) GetSupplement() []*Resource { - if m != nil { - return m.Supplement +func (x *VideoCameraMatch) GetSupplement() []*Resource { + if x != nil { + return x.Supplement } return nil } type VideoCameraMatchRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // An ID unique to each request. Often a UUID4. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Location where data should be written by the analytic. See @@ -1951,452 +2181,1240 @@ type VideoCameraMatchRequest struct { // The image to check. Image *Resource `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` // The camera ID this image is assumed to have. - CameraId string `protobuf:"bytes,4,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CameraId string `protobuf:"bytes,4,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"` } -func (m *VideoCameraMatchRequest) Reset() { *m = VideoCameraMatchRequest{} } -func (m *VideoCameraMatchRequest) String() string { return proto.CompactTextString(m) } -func (*VideoCameraMatchRequest) ProtoMessage() {} -func (*VideoCameraMatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{20} +func (x *VideoCameraMatchRequest) Reset() { + *x = VideoCameraMatchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *VideoCameraMatchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_VideoCameraMatchRequest.Unmarshal(m, b) +func (x *VideoCameraMatchRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *VideoCameraMatchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_VideoCameraMatchRequest.Marshal(b, m, deterministic) -} -func (m *VideoCameraMatchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_VideoCameraMatchRequest.Merge(m, src) -} -func (m *VideoCameraMatchRequest) XXX_Size() int { - return xxx_messageInfo_VideoCameraMatchRequest.Size(m) -} -func (m *VideoCameraMatchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_VideoCameraMatchRequest.DiscardUnknown(m) + +func (*VideoCameraMatchRequest) ProtoMessage() {} + +func (x *VideoCameraMatchRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[20] + 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) } -var xxx_messageInfo_VideoCameraMatchRequest proto.InternalMessageInfo +// Deprecated: Use VideoCameraMatchRequest.ProtoReflect.Descriptor instead. +func (*VideoCameraMatchRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{20} +} -func (m *VideoCameraMatchRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *VideoCameraMatchRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *VideoCameraMatchRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *VideoCameraMatchRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } -func (m *VideoCameraMatchRequest) GetImage() *Resource { - if m != nil { - return m.Image +func (x *VideoCameraMatchRequest) GetImage() *Resource { + if x != nil { + return x.Image } return nil } -func (m *VideoCameraMatchRequest) GetCameraId() string { - if m != nil { - return m.CameraId +func (x *VideoCameraMatchRequest) GetCameraId() string { + if x != nil { + return x.CameraId } return "" } type CameraScore struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + CameraId string `protobuf:"bytes,1,opt,name=camera_id,json=cameraId,proto3" json:"camera_id,omitempty"` // A value in [0, 1] where 1 indicates "came from this camera". Score float64 `protobuf:"fixed64,2,opt,name=score,proto3" json:"score,omitempty"` // A human-readable explanation for the score given for this camera. // Example: "PRNU match likelihood high". - Explanation string `protobuf:"bytes,3,opt,name=explanation,proto3" json:"explanation,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Explanation string `protobuf:"bytes,3,opt,name=explanation,proto3" json:"explanation,omitempty"` } -func (m *CameraScore) Reset() { *m = CameraScore{} } -func (m *CameraScore) String() string { return proto.CompactTextString(m) } -func (*CameraScore) ProtoMessage() {} -func (*CameraScore) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{21} +func (x *CameraScore) Reset() { + *x = CameraScore{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CameraScore) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CameraScore.Unmarshal(m, b) +func (x *CameraScore) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CameraScore) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CameraScore.Marshal(b, m, deterministic) -} -func (m *CameraScore) XXX_Merge(src proto.Message) { - xxx_messageInfo_CameraScore.Merge(m, src) -} -func (m *CameraScore) XXX_Size() int { - return xxx_messageInfo_CameraScore.Size(m) -} -func (m *CameraScore) XXX_DiscardUnknown() { - xxx_messageInfo_CameraScore.DiscardUnknown(m) + +func (*CameraScore) ProtoMessage() {} + +func (x *CameraScore) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CameraScore proto.InternalMessageInfo +// Deprecated: Use CameraScore.ProtoReflect.Descriptor instead. +func (*CameraScore) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{21} +} -func (m *CameraScore) GetCameraId() string { - if m != nil { - return m.CameraId +func (x *CameraScore) GetCameraId() string { + if x != nil { + return x.CameraId } return "" } -func (m *CameraScore) GetScore() float64 { - if m != nil { - return m.Score +func (x *CameraScore) GetScore() float64 { + if x != nil { + return x.Score } return 0 } -func (m *CameraScore) GetExplanation() string { - if m != nil { - return m.Explanation +func (x *CameraScore) GetExplanation() string { + if x != nil { + return x.Explanation } return "" } type ImageCameras struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Camera score messages. If empty, assumed opted out (or an error occurred). Scores []*CameraScore `protobuf:"bytes,1,rep,name=scores,proto3" json:"scores,omitempty"` // An explanation for why scores were or were not produced. Human-readable. // Example: "Could not score, unknown image type ." - Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Explanation string `protobuf:"bytes,2,opt,name=explanation,proto3" json:"explanation,omitempty"` } -func (m *ImageCameras) Reset() { *m = ImageCameras{} } -func (m *ImageCameras) String() string { return proto.CompactTextString(m) } -func (*ImageCameras) ProtoMessage() {} -func (*ImageCameras) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{22} +func (x *ImageCameras) Reset() { + *x = ImageCameras{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageCameras) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageCameras.Unmarshal(m, b) -} -func (m *ImageCameras) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageCameras.Marshal(b, m, deterministic) -} -func (m *ImageCameras) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageCameras.Merge(m, src) +func (x *ImageCameras) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageCameras) XXX_Size() int { - return xxx_messageInfo_ImageCameras.Size(m) -} -func (m *ImageCameras) XXX_DiscardUnknown() { - xxx_messageInfo_ImageCameras.DiscardUnknown(m) + +func (*ImageCameras) ProtoMessage() {} + +func (x *ImageCameras) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_ImageCameras proto.InternalMessageInfo +// Deprecated: Use ImageCameras.ProtoReflect.Descriptor instead. +func (*ImageCameras) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{22} +} -func (m *ImageCameras) GetScores() []*CameraScore { - if m != nil { - return m.Scores +func (x *ImageCameras) GetScores() []*CameraScore { + if x != nil { + return x.Scores } return nil } -func (m *ImageCameras) GetExplanation() string { - if m != nil { - return m.Explanation +func (x *ImageCameras) GetExplanation() string { + if x != nil { + return x.Explanation } return "" } type ImageCamerasRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // An ID unique to each request. Often a UUID4. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Currently unused, but here for future use and consistency with other detection requests. OutDir string `protobuf:"bytes,2,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` // The image to find a camera ID for. - Image *Resource `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Image *Resource `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` } -func (m *ImageCamerasRequest) Reset() { *m = ImageCamerasRequest{} } -func (m *ImageCamerasRequest) String() string { return proto.CompactTextString(m) } -func (*ImageCamerasRequest) ProtoMessage() {} -func (*ImageCamerasRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{23} +func (x *ImageCamerasRequest) Reset() { + *x = ImageCamerasRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageCamerasRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageCamerasRequest.Unmarshal(m, b) +func (x *ImageCamerasRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageCamerasRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageCamerasRequest.Marshal(b, m, deterministic) -} -func (m *ImageCamerasRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageCamerasRequest.Merge(m, src) -} -func (m *ImageCamerasRequest) XXX_Size() int { - return xxx_messageInfo_ImageCamerasRequest.Size(m) -} -func (m *ImageCamerasRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ImageCamerasRequest.DiscardUnknown(m) + +func (*ImageCamerasRequest) ProtoMessage() {} + +func (x *ImageCamerasRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_ImageCamerasRequest proto.InternalMessageInfo +// Deprecated: Use ImageCamerasRequest.ProtoReflect.Descriptor instead. +func (*ImageCamerasRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{23} +} -func (m *ImageCamerasRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *ImageCamerasRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *ImageCamerasRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *ImageCamerasRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } -func (m *ImageCamerasRequest) GetImage() *Resource { - if m != nil { - return m.Image +func (x *ImageCamerasRequest) GetImage() *Resource { + if x != nil { + return x.Image } return nil } type Empty struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Empty) Reset() { + *x = Empty{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_analytic_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Empty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Empty) ProtoMessage() {} + +func (x *Empty) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_analytic_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *Empty) Reset() { *m = Empty{} } -func (m *Empty) String() string { return proto.CompactTextString(m) } -func (*Empty) ProtoMessage() {} +// Deprecated: Use Empty.ProtoReflect.Descriptor instead. func (*Empty) Descriptor() ([]byte, []int) { - return fileDescriptor_c1a55dc3b08de1d4, []int{24} -} - -func (m *Empty) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Empty.Unmarshal(m, b) -} -func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Empty.Marshal(b, m, deterministic) -} -func (m *Empty) XXX_Merge(src proto.Message) { - xxx_messageInfo_Empty.Merge(m, src) -} -func (m *Empty) XXX_Size() int { - return xxx_messageInfo_Empty.Size(m) -} -func (m *Empty) XXX_DiscardUnknown() { - xxx_messageInfo_Empty.DiscardUnknown(m) -} - -var xxx_messageInfo_Empty proto.InternalMessageInfo - -func init() { - proto.RegisterEnum("mediforproto.ManipulationType", ManipulationType_name, ManipulationType_value) - proto.RegisterEnum("mediforproto.SpecificityType", SpecificityType_name, SpecificityType_value) - proto.RegisterEnum("mediforproto.OptOutType", OptOutType_name, OptOutType_value) - proto.RegisterEnum("mediforproto.VideoOptOutType", VideoOptOutType_name, VideoOptOutType_value) - proto.RegisterType((*Detection)(nil), "mediforproto.Detection") - proto.RegisterType((*AnnotatedDetection)(nil), "mediforproto.AnnotatedDetection") - proto.RegisterType((*Resource)(nil), "mediforproto.Resource") - proto.RegisterType((*IntRange)(nil), "mediforproto.IntRange") - proto.RegisterType((*ScoredIntRange)(nil), "mediforproto.ScoredIntRange") - proto.RegisterType((*MaskIntRange)(nil), "mediforproto.MaskIntRange") - proto.RegisterType((*FloatRange)(nil), "mediforproto.FloatRange") - proto.RegisterType((*ScoredFloatRange)(nil), "mediforproto.ScoredFloatRange") - proto.RegisterType((*ImageLocalization)(nil), "mediforproto.ImageLocalization") - proto.RegisterType((*ImageManipulation)(nil), "mediforproto.ImageManipulation") - proto.RegisterMapType((map[string]float64)(nil), "mediforproto.ImageManipulation.FacetsEntry") - proto.RegisterType((*ImageManipulationRequest)(nil), "mediforproto.ImageManipulationRequest") - proto.RegisterType((*VideoLocalization)(nil), "mediforproto.VideoLocalization") - proto.RegisterType((*VideoManipulation)(nil), "mediforproto.VideoManipulation") - proto.RegisterMapType((map[string]float64)(nil), "mediforproto.VideoManipulation.FacetsEntry") - proto.RegisterType((*VideoManipulationRequest)(nil), "mediforproto.VideoManipulationRequest") - proto.RegisterType((*Link)(nil), "mediforproto.Link") - proto.RegisterType((*ImageSplice)(nil), "mediforproto.ImageSplice") - proto.RegisterType((*ImageSpliceRequest)(nil), "mediforproto.ImageSpliceRequest") - proto.RegisterType((*ImageCameraMatch)(nil), "mediforproto.ImageCameraMatch") - proto.RegisterType((*ImageCameraMatchRequest)(nil), "mediforproto.ImageCameraMatchRequest") - proto.RegisterType((*VideoCameraMatch)(nil), "mediforproto.VideoCameraMatch") - proto.RegisterType((*VideoCameraMatchRequest)(nil), "mediforproto.VideoCameraMatchRequest") - proto.RegisterType((*CameraScore)(nil), "mediforproto.CameraScore") - proto.RegisterType((*ImageCameras)(nil), "mediforproto.ImageCameras") - proto.RegisterType((*ImageCamerasRequest)(nil), "mediforproto.ImageCamerasRequest") - proto.RegisterType((*Empty)(nil), "mediforproto.Empty") -} - -func init() { proto.RegisterFile("medifor/v1/analytic.proto", fileDescriptor_c1a55dc3b08de1d4) } - -var fileDescriptor_c1a55dc3b08de1d4 = []byte{ - // 2275 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x72, 0xdb, 0xc8, - 0x11, 0x36, 0x48, 0x8a, 0x3f, 0x4d, 0x8a, 0x84, 0xc6, 0x96, 0x44, 0xd1, 0xfb, 0xa3, 0xb0, 0x6a, - 0x1d, 0x47, 0x49, 0x49, 0x6b, 0x65, 0xb3, 0x5e, 0x6f, 0x52, 0x49, 0x41, 0x14, 0x24, 0x61, 0x4d, - 0x11, 0xac, 0x21, 0x64, 0x6f, 0xf9, 0x82, 0x40, 0xc4, 0x88, 0x44, 0x89, 0x24, 0x60, 0x00, 0x54, - 0xa2, 0xe4, 0x21, 0x72, 0xcb, 0x29, 0x55, 0x5b, 0x95, 0x07, 0xc9, 0x0b, 0xe4, 0xb2, 0x97, 0x3c, - 0x46, 0xee, 0x39, 0xe4, 0x90, 0x9a, 0x06, 0x40, 0x80, 0x7f, 0x26, 0xcb, 0xa9, 0xdd, 0xe4, 0xb0, - 0x27, 0x72, 0x7a, 0xba, 0xbf, 0xe9, 0x99, 0x9e, 0xfe, 0xa6, 0x31, 0x03, 0x7b, 0x43, 0x66, 0x5a, - 0x37, 0xb6, 0x7b, 0x74, 0xf7, 0xec, 0xc8, 0x18, 0x19, 0x83, 0x7b, 0xdf, 0xea, 0x1e, 0x3a, 0xae, - 0xed, 0xdb, 0xa4, 0x14, 0x76, 0x61, 0xab, 0xb6, 0xdb, 0xb3, 0xed, 0xde, 0x80, 0x1d, 0xb9, 0x4e, - 0xf7, 0xc8, 0xf3, 0x0d, 0x7f, 0xec, 0x05, 0x6a, 0xf5, 0x7f, 0xe5, 0xa0, 0x70, 0xca, 0x7c, 0xd6, - 0xf5, 0x2d, 0x7b, 0x44, 0x0e, 0x20, 0x1b, 0xf4, 0x56, 0x85, 0x7d, 0xe1, 0x69, 0xf1, 0x98, 0x1c, - 0x06, 0x76, 0x87, 0xae, 0xd3, 0x3d, 0xec, 0x60, 0x0f, 0x0d, 0x35, 0xc8, 0x01, 0x6c, 0x79, 0xbe, - 0xe1, 0xfa, 0xba, 0x6f, 0x0d, 0x99, 0x3e, 0xb4, 0x06, 0x03, 0xcb, 0xab, 0xa6, 0xf6, 0x85, 0xa7, - 0x69, 0x5a, 0xc1, 0x0e, 0xcd, 0x1a, 0xb2, 0x4b, 0x14, 0x93, 0x27, 0x50, 0x61, 0x23, 0x73, 0x4a, - 0x33, 0x8d, 0x9a, 0x9b, 0x6c, 0x64, 0x26, 0xf4, 0x9a, 0xb0, 0x69, 0x0d, 0x7b, 0xfa, 0xd0, 0x18, - 0x59, 0x8e, 0xee, 0xb2, 0xb7, 0xd5, 0x22, 0xba, 0xf1, 0xe4, 0x30, 0x39, 0x99, 0x43, 0x65, 0x68, - 0xf4, 0xd8, 0x25, 0xd7, 0x19, 0x0f, 0x0c, 0xee, 0x37, 0x65, 0x6f, 0xc7, 0xcc, 0xf3, 0x2f, 0x1e, - 0xd0, 0xa2, 0x35, 0xec, 0x61, 0x0f, 0x65, 0x6f, 0x39, 0xda, 0x9d, 0x65, 0x26, 0xd0, 0x4a, 0x8b, - 0xd0, 0x5e, 0x59, 0x26, 0xb3, 0x97, 0xa0, 0xdd, 0x59, 0xe6, 0x04, 0xed, 0x02, 0xca, 0xdc, 0x37, - 0xcf, 0x19, 0x58, 0x5d, 0x86, 0x70, 0x9b, 0x08, 0xb7, 0xbf, 0xc0, 0xb9, 0x0e, 0x2a, 0xc5, 0x40, - 0x25, 0x6b, 0xd8, 0x9b, 0xc8, 0x08, 0x85, 0x2d, 0x8e, 0xd4, 0x35, 0x86, 0xfa, 0xd0, 0xf0, 0xbb, - 0x7d, 0x04, 0x2b, 0x23, 0xd8, 0x27, 0x0b, 0xc0, 0x1a, 0xc6, 0x90, 0xb9, 0xc6, 0x25, 0xd7, 0x8c, - 0x11, 0xb9, 0x2f, 0x0d, 0x63, 0x18, 0x49, 0x89, 0x0c, 0xa5, 0x10, 0xd3, 0x43, 0xb8, 0x0a, 0xc2, - 0xfd, 0x68, 0x29, 0x9c, 0x17, 0x43, 0x41, 0x00, 0xe5, 0x85, 0xae, 0xf1, 0x25, 0x9b, 0x76, 0x4d, - 0x5c, 0xe4, 0x1a, 0x2e, 0xdb, 0x62, 0xd7, 0xee, 0x2c, 0x33, 0xe9, 0xda, 0xaf, 0xa1, 0x30, 0x09, - 0x6a, 0x75, 0x1b, 0xb1, 0x3e, 0x5e, 0x11, 0xd0, 0x0b, 0x81, 0xe6, 0xa3, 0x48, 0x72, 0xfb, 0x49, - 0x18, 0xab, 0x3b, 0x8b, 0xec, 0xe7, 0x42, 0xc8, 0xed, 0xa3, 0xd8, 0x91, 0x2f, 0x01, 0xe2, 0xc0, - 0x55, 0x77, 0x11, 0x60, 0x6f, 0x69, 0xd0, 0x2e, 0x04, 0x5a, 0x98, 0x44, 0x8b, 0x9c, 0x06, 0x1b, - 0x72, 0xb2, 0x1e, 0xd5, 0x2a, 0x9a, 0x7f, 0xf4, 0xee, 0x30, 0x5d, 0x08, 0xb8, 0x11, 0xa3, 0x45, - 0x20, 0xcf, 0x21, 0x1f, 0x05, 0xa7, 0xba, 0x87, 0x00, 0xb5, 0xe5, 0x81, 0xb9, 0x10, 0x68, 0x2e, - 0x8c, 0x08, 0x1f, 0x7e, 0x2a, 0x1c, 0xd5, 0xda, 0xa2, 0xe1, 0x67, 0x43, 0xc1, 0x87, 0x4f, 0xc4, - 0xe0, 0xa4, 0x00, 0x39, 0x37, 0x88, 0xce, 0x09, 0x40, 0xde, 0x65, 0x9e, 0x63, 0x8f, 0x3c, 0x56, - 0xff, 0xb3, 0x00, 0x44, 0x1a, 0x8d, 0x6c, 0xdf, 0xf0, 0x99, 0x19, 0x73, 0x40, 0x19, 0x52, 0x96, - 0x89, 0xf9, 0x5f, 0xa0, 0x29, 0xcb, 0x24, 0x55, 0xc8, 0xdd, 0x31, 0xd7, 0xb3, 0xec, 0x11, 0x66, - 0x77, 0x81, 0x46, 0x4d, 0xf2, 0x0b, 0x28, 0x98, 0x91, 0x19, 0xe6, 0x73, 0xf1, 0x78, 0x77, 0xda, - 0xb3, 0x09, 0x2a, 0x8d, 0x35, 0xc9, 0xc7, 0x50, 0x8c, 0xb8, 0x4a, 0xb7, 0xcc, 0x6a, 0x06, 0x41, - 0x21, 0x12, 0x29, 0x66, 0xfd, 0x0c, 0xf2, 0x94, 0x79, 0xf6, 0xd8, 0xed, 0x32, 0x22, 0x42, 0x7a, - 0xec, 0x5a, 0xa1, 0x3b, 0xfc, 0x2f, 0x21, 0x90, 0xf1, 0xef, 0x1d, 0x16, 0x3a, 0x83, 0xff, 0xc9, - 0x23, 0xd8, 0x18, 0xd9, 0x3e, 0x0b, 0x58, 0xa5, 0x40, 0x83, 0x46, 0xfd, 0x18, 0xf2, 0xca, 0xc8, - 0xa7, 0xc6, 0xa8, 0x87, 0x1a, 0x48, 0x4a, 0x88, 0xb4, 0x41, 0x83, 0x06, 0x47, 0x67, 0x23, 0x13, - 0xa1, 0x36, 0x28, 0xff, 0x5b, 0xd7, 0xa0, 0xdc, 0xe9, 0xda, 0x2e, 0x33, 0x27, 0x96, 0x3f, 0x83, - 0x0d, 0x97, 0xff, 0x09, 0x29, 0x71, 0x67, 0x26, 0x72, 0xa1, 0x1a, 0x0d, 0x94, 0x70, 0x1c, 0x6e, - 0x8f, 0x98, 0x02, 0x0d, 0x1a, 0xf5, 0x3e, 0x94, 0x2e, 0x0d, 0xef, 0xf6, 0x3d, 0x31, 0x0f, 0x20, - 0x33, 0x34, 0xbc, 0x5b, 0x84, 0x9c, 0x53, 0x8e, 0x56, 0x8a, 0xa2, 0x4e, 0xfd, 0x33, 0x80, 0xb3, - 0x81, 0x6d, 0x2c, 0x9a, 0xb5, 0xb0, 0x60, 0xd6, 0x42, 0x30, 0xeb, 0xaf, 0x41, 0x0c, 0x66, 0x9d, - 0xb0, 0x3d, 0x9c, 0xf6, 0xb1, 0x3a, 0x3d, 0x6c, 0xac, 0xf8, 0xee, 0x99, 0x7f, 0x23, 0xc0, 0x16, - 0xee, 0xee, 0xa6, 0xdd, 0x35, 0x06, 0xd6, 0x1f, 0x8c, 0xf0, 0x9c, 0x09, 0x66, 0x24, 0xac, 0x9e, - 0x11, 0x79, 0x0e, 0x45, 0xfe, 0xab, 0xdb, 0x8e, 0x6f, 0x8f, 0xfd, 0x15, 0x8b, 0x00, 0x5c, 0x55, - 0x45, 0x4d, 0xf2, 0x09, 0x94, 0xd1, 0xd0, 0xef, 0xbb, 0xcc, 0xeb, 0xdb, 0x03, 0x13, 0x77, 0x87, - 0x40, 0x37, 0xb9, 0x54, 0x8b, 0x84, 0xf5, 0x6f, 0x33, 0xa1, 0x87, 0x49, 0x02, 0x89, 0x67, 0x23, - 0x24, 0x66, 0x43, 0x1a, 0x90, 0xbd, 0x31, 0xba, 0xcc, 0xf7, 0xaa, 0xb0, 0x9f, 0x7e, 0x5a, 0x3c, - 0xfe, 0xe9, 0x0a, 0x1e, 0x3b, 0x3c, 0x43, 0x6d, 0x79, 0xe4, 0xbb, 0xf7, 0x34, 0x34, 0x25, 0x1f, - 0x01, 0x74, 0xed, 0xd1, 0x8d, 0x65, 0xb2, 0x51, 0x37, 0x5a, 0xad, 0x84, 0x84, 0xfb, 0xdd, 0x37, - 0x3c, 0x3d, 0xa1, 0x53, 0xd8, 0x17, 0x9e, 0xe6, 0xe9, 0x66, 0xdf, 0xf0, 0x1a, 0xb1, 0xda, 0x33, - 0xc8, 0xd9, 0x8e, 0xaf, 0xf3, 0x35, 0xe1, 0xf3, 0x2a, 0xcf, 0x46, 0x48, 0x75, 0x7c, 0x75, 0xec, - 0x6b, 0xf7, 0x0e, 0xa3, 0x59, 0x1b, 0xff, 0x93, 0x7d, 0x28, 0xb2, 0xdf, 0x3b, 0x03, 0x63, 0x84, - 0xce, 0x85, 0x99, 0x97, 0x14, 0x91, 0x06, 0x94, 0x06, 0x89, 0x40, 0x55, 0x37, 0x96, 0xd2, 0x75, - 0x32, 0x9e, 0x74, 0xca, 0x88, 0xfc, 0x06, 0x8a, 0x9e, 0xc3, 0xba, 0xd6, 0x8d, 0xd5, 0xb5, 0xfc, - 0xfb, 0x6a, 0x16, 0xbd, 0xfb, 0x70, 0x1a, 0xa3, 0x13, 0x2b, 0xa0, 0x8b, 0x49, 0x0b, 0xf2, 0x12, - 0xb6, 0x86, 0x89, 0x55, 0xd4, 0x31, 0xdf, 0x73, 0xfb, 0xe9, 0xa7, 0xe5, 0x59, 0xea, 0x4b, 0x2e, - 0x36, 0xe2, 0x88, 0xc3, 0x19, 0x09, 0xf9, 0x1c, 0xc0, 0x1b, 0x3b, 0xce, 0x80, 0x0d, 0xd9, 0xc8, - 0xaf, 0xe6, 0x31, 0x6e, 0x4b, 0xb7, 0x4f, 0xac, 0x59, 0x7b, 0x01, 0xc5, 0x44, 0xf4, 0x78, 0xd2, - 0xdc, 0xb2, 0xfb, 0x88, 0x88, 0x6e, 0xd9, 0x3d, 0xdf, 0x22, 0x77, 0xc6, 0x60, 0x3c, 0xd9, 0xf0, - 0xd8, 0xf8, 0x32, 0xf5, 0x85, 0x50, 0xff, 0xab, 0x00, 0xd5, 0x65, 0x45, 0x0a, 0xf9, 0x10, 0x20, - 0x64, 0x63, 0x7d, 0xc2, 0xb3, 0x85, 0x50, 0xa2, 0x98, 0x9c, 0x1a, 0x2c, 0x6e, 0xba, 0x62, 0xa3, - 0x07, 0x4a, 0x64, 0x17, 0x72, 0xf6, 0xd8, 0xd7, 0x4d, 0xcb, 0x0d, 0xa9, 0x2f, 0x6b, 0x8f, 0xfd, - 0x53, 0xcb, 0x25, 0xfb, 0x50, 0xea, 0x3b, 0xba, 0xc9, 0xee, 0x78, 0xb1, 0x12, 0xb3, 0x6c, 0xdf, - 0x39, 0x45, 0x91, 0x62, 0xd6, 0xbf, 0x4d, 0xc3, 0x16, 0x9e, 0x1c, 0x53, 0x99, 0x29, 0x43, 0xe5, - 0xc6, 0x35, 0x86, 0x4c, 0x8f, 0x99, 0x5d, 0xc0, 0x25, 0xfb, 0x60, 0x26, 0x7e, 0x53, 0x24, 0x49, - 0xcb, 0x68, 0x14, 0x1f, 0x22, 0x2f, 0xa0, 0x14, 0xc0, 0x4c, 0xb2, 0x36, 0xfd, 0x0e, 0x9e, 0x2b, - 0xa2, 0x6e, 0x98, 0xb6, 0xe7, 0x50, 0x31, 0xc6, 0xa6, 0x65, 0xeb, 0xc9, 0xb3, 0x25, 0x3d, 0x7f, - 0xea, 0xcd, 0x12, 0x16, 0x2d, 0xa3, 0x59, 0xec, 0xc3, 0x2f, 0xa1, 0x14, 0x00, 0x85, 0x3e, 0x64, - 0x10, 0x65, 0x39, 0x8f, 0x15, 0x51, 0x3b, 0xf4, 0xe2, 0x05, 0xc0, 0x1d, 0x5f, 0x1c, 0x1d, 0x79, - 0x6a, 0x03, 0x4d, 0x6b, 0xb3, 0x7b, 0x2f, 0x66, 0x74, 0x5a, 0xb8, 0x0b, 0x6a, 0x10, 0xef, 0x96, - 0x9c, 0x61, 0x0d, 0x15, 0x9a, 0x46, 0x83, 0x67, 0x57, 0x22, 0x54, 0x26, 0x08, 0xa1, 0x0b, 0x9f, - 0xc2, 0xa3, 0x04, 0x4e, 0xcc, 0x62, 0x39, 0xdc, 0x6e, 0x64, 0xa2, 0x1e, 0x53, 0xd9, 0x3f, 0x32, - 0x61, 0x48, 0xff, 0x7b, 0x2a, 0x9b, 0x83, 0xf9, 0x2e, 0xa9, 0xec, 0xf3, 0x24, 0x95, 0xa5, 0xe7, - 0xc9, 0x02, 0x9d, 0xf9, 0xee, 0xf8, 0x6c, 0x2e, 0x0b, 0x7e, 0xe0, 0xb3, 0x69, 0x3e, 0xfb, 0x7b, - 0x0a, 0xaa, 0xcb, 0x3e, 0x93, 0xd6, 0xe0, 0x33, 0xdc, 0xa9, 0xab, 0xf8, 0x0c, 0x95, 0xd6, 0xe7, - 0xb3, 0xc2, 0x2c, 0x9f, 0xf1, 0xbd, 0x76, 0xcb, 0x98, 0xa3, 0xff, 0xce, 0x76, 0x6f, 0x3d, 0xc7, - 0xe8, 0x32, 0xdc, 0x0f, 0x79, 0xba, 0xc9, 0xa5, 0xaf, 0x23, 0x21, 0x77, 0xd7, 0xbb, 0xb5, 0x1c, - 0x1d, 0x93, 0x1d, 0xf7, 0x43, 0x9e, 0x16, 0xb8, 0x44, 0xe2, 0x02, 0x5e, 0x9c, 0x62, 0xf7, 0x9d, - 0xe5, 0x8d, 0x8d, 0x01, 0xc6, 0x3a, 0x4f, 0xd1, 0xe2, 0x15, 0x4a, 0xc8, 0x8f, 0xa1, 0x62, 0xb2, - 0xeb, 0x71, 0x4f, 0x77, 0x43, 0xd7, 0x3d, 0x4c, 0xc8, 0x3c, 0x2d, 0xa3, 0x38, 0x9a, 0x90, 0xc7, - 0xa7, 0xd2, 0x73, 0xc6, 0xba, 0xed, 0x9a, 0xd5, 0x3c, 0xd6, 0x97, 0xd9, 0x9e, 0x33, 0x56, 0x5d, - 0xb3, 0xfe, 0xef, 0x14, 0x64, 0x9a, 0xd6, 0xe8, 0x96, 0xec, 0x41, 0xfe, 0xc6, 0xb5, 0x87, 0x7a, - 0x5c, 0xe0, 0xe6, 0x78, 0xfb, 0xca, 0xb5, 0xc8, 0x36, 0x64, 0x7d, 0x1b, 0x3b, 0x82, 0x32, 0x77, - 0xc3, 0xb7, 0xb9, 0x78, 0x92, 0xca, 0xe9, 0x64, 0x2a, 0x4f, 0x67, 0x61, 0xe6, 0x7d, 0xb3, 0xf0, - 0x57, 0x50, 0x40, 0x77, 0x42, 0xc6, 0x5b, 0xeb, 0xe0, 0xc7, 0x09, 0x20, 0xeb, 0x7d, 0x01, 0x39, - 0x3f, 0x64, 0xcb, 0xec, 0x7a, 0xb6, 0x59, 0x3f, 0xe0, 0xcb, 0x99, 0x2c, 0xce, 0xcd, 0x67, 0xf1, - 0xc2, 0xfc, 0xc9, 0xbf, 0x5f, 0xfe, 0xd4, 0xfb, 0x50, 0x4c, 0x7c, 0xee, 0x25, 0xcb, 0x28, 0x61, - 0xcd, 0x32, 0xea, 0x09, 0x64, 0x06, 0xd6, 0x28, 0xaa, 0xc7, 0xc9, 0xb4, 0x3e, 0x8f, 0x2c, 0xc5, - 0xfe, 0xfa, 0xdf, 0x04, 0x20, 0xf3, 0xd7, 0x01, 0xab, 0x12, 0xe6, 0x39, 0x14, 0x1d, 0xd7, 0xbe, - 0x66, 0xfa, 0x3a, 0x65, 0x00, 0xa0, 0x2a, 0x0e, 0xc2, 0x0d, 0x4d, 0x7b, 0x64, 0xbb, 0xa1, 0x61, - 0xfa, 0xdd, 0x86, 0xa8, 0xaa, 0xcc, 0x16, 0x11, 0x99, 0x64, 0xd2, 0xd5, 0xff, 0x94, 0x02, 0x71, - 0xf6, 0xdb, 0x76, 0xc9, 0x71, 0xf2, 0x18, 0x0a, 0x7c, 0x8f, 0xc5, 0x5f, 0x00, 0x79, 0x9a, 0xef, - 0x1b, 0x1e, 0x1e, 0xd2, 0xb3, 0x11, 0x4e, 0xaf, 0xe6, 0xe9, 0xcc, 0xfb, 0xd4, 0x9d, 0x3f, 0x01, - 0x91, 0xfb, 0x30, 0x47, 0xf8, 0x79, 0x5a, 0xe9, 0x1b, 0xde, 0x54, 0x99, 0x33, 0x4d, 0xa2, 0xd9, - 0x75, 0x49, 0xb4, 0xfe, 0x17, 0x01, 0x76, 0x97, 0x5c, 0xca, 0xac, 0x8a, 0x6b, 0x62, 0x95, 0x53, - 0x53, 0xd4, 0x36, 0xa9, 0xf8, 0xd2, 0xeb, 0x54, 0x7c, 0x8f, 0xa1, 0xd0, 0xc5, 0xb1, 0xe3, 0xaa, - 0x2e, 0x1f, 0x08, 0x14, 0x13, 0x03, 0x36, 0x7b, 0x1b, 0xf0, 0x3f, 0x0c, 0xd8, 0xaa, 0x83, 0xf5, - 0x7b, 0x0a, 0xd8, 0x92, 0xab, 0xaa, 0xff, 0x87, 0x80, 0x5d, 0x43, 0x31, 0x70, 0xac, 0x13, 0x05, - 0x25, 0xd6, 0x15, 0xa6, 0x75, 0x17, 0x7f, 0x60, 0xaf, 0x0e, 0x55, 0xbd, 0x0b, 0xa5, 0xe4, 0xfd, - 0x12, 0x79, 0x06, 0x59, 0x34, 0xf5, 0xc2, 0xca, 0x7e, 0xe6, 0x2e, 0x2c, 0xe1, 0x0f, 0x0d, 0x15, - 0x67, 0x07, 0x49, 0xcd, 0x0f, 0xf2, 0x47, 0x78, 0xb8, 0xe0, 0x76, 0xf1, 0xfb, 0x59, 0xe2, 0x7a, - 0x0e, 0x36, 0xe4, 0xa1, 0xe3, 0xdf, 0x1f, 0x7c, 0x93, 0x01, 0x71, 0xf6, 0x08, 0x20, 0x5b, 0xb0, - 0x79, 0x29, 0xb5, 0x94, 0xb6, 0x7e, 0xd5, 0x7a, 0xd9, 0x52, 0x5f, 0xb7, 0xc4, 0x07, 0x44, 0x84, - 0x52, 0x20, 0x3a, 0x53, 0x9a, 0x9a, 0x4c, 0x45, 0x81, 0xec, 0x00, 0x09, 0x24, 0xd2, 0xe9, 0x57, - 0x57, 0x1d, 0x4d, 0x6f, 0xa8, 0x4d, 0x95, 0x8a, 0xa9, 0x58, 0x93, 0xca, 0x97, 0xea, 0x2b, 0x59, - 0x4c, 0x93, 0x0f, 0xa0, 0x1a, 0x48, 0x1a, 0x6a, 0x4b, 0x93, 0x5b, 0x9a, 0x2e, 0xbd, 0x96, 0xa8, - 0xcc, 0x91, 0x9a, 0x62, 0x86, 0xec, 0xc1, 0x76, 0xd0, 0xdb, 0x96, 0x94, 0x96, 0x76, 0x42, 0xaf, - 0x3a, 0x17, 0xba, 0xa6, 0xaa, 0x4d, 0x71, 0x83, 0x3c, 0x02, 0x31, 0xea, 0xd2, 0x1a, 0xa1, 0x34, - 0x4b, 0xca, 0x00, 0x81, 0xf4, 0xa4, 0x79, 0x45, 0xc5, 0x5c, 0x3c, 0x60, 0xa7, 0xdd, 0x54, 0x1a, - 0xb2, 0x98, 0x27, 0x15, 0x28, 0x86, 0x03, 0x36, 0xd5, 0x96, 0x2c, 0x16, 0x62, 0x93, 0x06, 0x55, - 0xdb, 0x22, 0xc4, 0xed, 0xb3, 0xa6, 0xd2, 0x16, 0x8b, 0x49, 0x9f, 0x3b, 0xca, 0x1b, 0x59, 0x2c, - 0xc5, 0xb3, 0xeb, 0xc8, 0xd2, 0xa5, 0xde, 0x90, 0xe8, 0x2b, 0xa5, 0x75, 0x2e, 0x6e, 0x26, 0x34, - 0x55, 0x4d, 0xd2, 0x64, 0xb1, 0x1c, 0x63, 0x75, 0x5e, 0xca, 0xaf, 0xc5, 0x4a, 0xdc, 0x7e, 0x2d, - 0xd1, 0xb6, 0x28, 0x12, 0x02, 0xe5, 0xa0, 0x7d, 0x29, 0x6b, 0xd2, 0xa9, 0xa4, 0x49, 0xe2, 0x16, - 0xd9, 0x85, 0x87, 0xe1, 0xda, 0xb5, 0x34, 0xe5, 0x4c, 0xa5, 0x72, 0xab, 0xa3, 0x34, 0x3a, 0x22, - 0x89, 0x17, 0x43, 0xb9, 0x94, 0xce, 0x65, 0x9d, 0xca, 0x0d, 0xa9, 0xad, 0x5d, 0x51, 0x59, 0x7c, - 0x48, 0x36, 0xa1, 0x10, 0xce, 0xe1, 0x5c, 0x11, 0x1f, 0xc5, 0x9a, 0x67, 0x54, 0xba, 0x94, 0x75, - 0xa5, 0xd5, 0x91, 0xa9, 0xa6, 0xa8, 0x2d, 0x71, 0x3b, 0x5e, 0xb6, 0xa0, 0xeb, 0x94, 0xcf, 0x79, - 0x27, 0x5e, 0x14, 0xe9, 0xea, 0x54, 0x51, 0xc5, 0xdd, 0x58, 0xed, 0x54, 0xbd, 0x3a, 0x69, 0xca, - 0xfa, 0x57, 0xed, 0x73, 0xb1, 0x1a, 0xab, 0xa9, 0xda, 0x85, 0x4c, 0xc5, 0xbd, 0x03, 0x0d, 0x2a, - 0x33, 0xa5, 0x3a, 0xd7, 0xe9, 0xb4, 0xe5, 0x86, 0x7e, 0xde, 0x54, 0x4f, 0xa4, 0xa6, 0xf8, 0x80, - 0xfb, 0x86, 0x02, 0x3e, 0xa0, 0x28, 0xf0, 0x25, 0xc0, 0x66, 0x5b, 0xf9, 0x5a, 0x6e, 0x8a, 0x29, - 0xbe, 0x9f, 0xb0, 0x3d, 0x59, 0x81, 0xf4, 0xc1, 0x6f, 0x01, 0xe2, 0x3a, 0x81, 0xaf, 0xaa, 0xda, - 0xd6, 0x74, 0xf5, 0x4a, 0xd3, 0x5b, 0x3c, 0x62, 0x0f, 0xf8, 0x10, 0x91, 0x44, 0x6a, 0x36, 0x45, - 0x81, 0x6c, 0xc3, 0x56, 0x24, 0x38, 0x95, 0x35, 0xb9, 0x81, 0x73, 0x4d, 0x91, 0x2a, 0x3c, 0x8a, - 0xc4, 0x4d, 0xb5, 0x21, 0x35, 0x95, 0x37, 0x12, 0xf6, 0xa4, 0x0f, 0x18, 0x54, 0x66, 0xbe, 0x82, - 0xc8, 0x63, 0xd8, 0x7d, 0xa5, 0x9c, 0xca, 0xaa, 0x3e, 0x8f, 0xf4, 0x80, 0xd4, 0x60, 0x67, 0xba, - 0x53, 0x93, 0x2f, 0xdb, 0x2a, 0x95, 0xf8, 0xe0, 0x7b, 0xb0, 0x3d, 0xdd, 0xd7, 0x69, 0x4b, 0x9a, - 0x22, 0x35, 0xc5, 0xd4, 0xf1, 0x3f, 0x33, 0x90, 0x97, 0xc2, 0x9b, 0x58, 0x72, 0x0d, 0xbb, 0xc1, - 0xd7, 0xf4, 0xfc, 0xf5, 0xd8, 0x9a, 0x2f, 0x32, 0xb5, 0x55, 0x17, 0xfd, 0xa4, 0x0d, 0x5b, 0x89, - 0x31, 0xc2, 0x9a, 0x6c, 0xe5, 0x93, 0x4a, 0x6d, 0xf9, 0xfd, 0x7d, 0xec, 0xf5, 0xfc, 0x97, 0xf0, - 0x9a, 0x2f, 0x3f, 0xb5, 0x55, 0xcf, 0x0b, 0x44, 0x87, 0x9d, 0x84, 0xd7, 0xc9, 0xc3, 0x76, 0xbd, - 0x07, 0x9c, 0xda, 0x8a, 0x07, 0x04, 0xd2, 0x01, 0x32, 0x37, 0x80, 0x47, 0x56, 0x3f, 0xe7, 0xd4, - 0xde, 0xf1, 0xb0, 0x10, 0x7b, 0x3d, 0x57, 0x22, 0xac, 0xf7, 0xb6, 0x53, 0x5b, 0xf1, 0xee, 0x40, - 0x3e, 0x85, 0xcc, 0x4b, 0x6b, 0x30, 0x20, 0x0f, 0xa7, 0xf5, 0x90, 0x9b, 0x6b, 0x8b, 0x84, 0x27, - 0x9f, 0xbd, 0x39, 0xee, 0x59, 0x7e, 0x7f, 0x7c, 0x7d, 0xd8, 0xb5, 0x87, 0x47, 0x5c, 0xc1, 0xb8, - 0xb1, 0x5d, 0x36, 0xf2, 0xac, 0xae, 0x77, 0x14, 0x3d, 0x6e, 0x3a, 0xb7, 0xbd, 0xa3, 0xa4, 0xed, - 0x75, 0x16, 0x7f, 0x7e, 0xfe, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0xf3, 0xf0, 0x76, 0xff, - 0x1c, 0x00, 0x00, + return file_medifor_v1_analytic_proto_rawDescGZIP(), []int{24} +} + +var File_medifor_v1_analytic_proto protoreflect.FileDescriptor + +var file_medifor_v1_analytic_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xf8, 0x07, 0x0a, 0x09, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, + 0x12, 0x4c, 0x0a, 0x0d, 0x69, 0x6d, 0x67, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x5f, 0x72, 0x65, + 0x71, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, + 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x00, 0x52, 0x0b, 0x69, 0x6d, 0x67, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x71, 0x12, 0x4c, + 0x0a, 0x0d, 0x76, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x0b, 0x76, 0x69, 0x64, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x71, 0x12, 0x48, 0x0a, 0x0e, + 0x69, 0x6d, 0x67, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x67, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x52, 0x0a, 0x11, 0x69, 0x6d, 0x67, 0x5f, 0x63, 0x61, + 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6d, 0x67, 0x43, + 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x0c, 0x69, 0x6d, + 0x67, 0x5f, 0x63, 0x61, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6d, 0x67, 0x43, 0x61, 0x6d, 0x73, 0x52, 0x65, + 0x71, 0x12, 0x52, 0x0a, 0x11, 0x76, 0x69, 0x64, 0x5f, 0x63, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x76, 0x69, 0x64, 0x43, 0x61, 0x6d, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x5f, 0x6d, 0x61, 0x6e, + 0x69, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, + 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x69, 0x6d, 0x67, + 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x12, 0x3e, 0x0a, 0x09, 0x76, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x6e, + 0x69, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, + 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x76, 0x69, 0x64, + 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x12, 0x3a, 0x0a, 0x0a, 0x69, 0x6d, 0x67, 0x5f, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x48, 0x01, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x69, 0x6d, 0x67, 0x5f, 0x63, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, + 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x6d, 0x67, 0x43, + 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x08, 0x69, 0x6d, 0x67, 0x5f, 0x63, + 0x61, 0x6d, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, + 0x6d, 0x65, 0x72, 0x61, 0x73, 0x48, 0x01, 0x52, 0x07, 0x69, 0x6d, 0x67, 0x43, 0x61, 0x6d, 0x73, + 0x12, 0x44, 0x0a, 0x0d, 0x76, 0x69, 0x64, 0x5f, 0x63, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x61, 0x6d, 0x65, + 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x48, 0x01, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x43, 0x61, + 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, + 0x0a, 0x12, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x44, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 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, 0x35, + 0x0a, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x72, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x32, + 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, + 0x6e, 0x64, 0x22, 0x54, 0x0a, 0x0e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x68, 0x0a, 0x0c, 0x4d, 0x61, 0x73, 0x6b, + 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x04, 0x6d, 0x61, + 0x73, 0x6b, 0x22, 0x34, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x58, 0x0a, 0x10, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x05, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x11, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x04, + 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x37, 0x0a, 0x0b, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x6f, 0x70, 0x74, + 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x0a, 0x6d, 0x61, 0x73, 0x6b, 0x4f, 0x70, 0x74, 0x6f, 0x75, 0x74, 0x12, 0x25, 0x0a, + 0x0e, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x6b, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xd0, 0x04, 0x0a, 0x11, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, + 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x43, 0x0a, 0x06, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, + 0x61, 0x63, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, + 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x70, 0x74, + 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x4f, 0x75, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x43, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x69, 0x70, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x10, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x52, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b, + 0x46, 0x61, 0x63, 0x65, 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, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa2, 0x01, 0x0a, 0x18, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x68, 0x70, + 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x68, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xd0, 0x03, 0x0a, + 0x11, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x64, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0c, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, + 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x4f, 0x70, + 0x74, 0x6f, 0x75, 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, + 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x74, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x4f, 0x70, 0x74, 0x6f, 0x75, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x61, + 0x73, 0x6b, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x46, 0x0a, 0x11, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x5f, 0x6f, 0x70, 0x74, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4d, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0f, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x73, 0x6b, 0x4f, 0x70, 0x74, 0x6f, 0x75, 0x74, 0x12, 0x30, 0x0a, + 0x14, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x4d, 0x61, 0x73, 0x6b, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, + 0xd5, 0x04, 0x0a, 0x11, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, + 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x61, 0x63, + 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x5f, 0x6f, + 0x75, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4f, 0x70, 0x74, + 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x4f, 0x75, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x43, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x6f, 0x63, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x69, 0x70, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x10, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x52, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b, + 0x46, 0x61, 0x63, 0x65, 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, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcb, 0x02, 0x0a, 0x18, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x05, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x68, 0x70, + 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x68, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, + 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6b, 0x65, 0x65, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x6b, 0x69, 0x70, 0x41, 0x75, 0x64, + 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x69, 0x73, 0x75, 0x61, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x6b, 0x69, 0x70, 0x56, 0x69, 0x73, + 0x75, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x65, + 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, + 0x67, 0x70, 0x75, 0x5f, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, + 0x70, 0x75, 0x4f, 0x72, 0x64, 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x19, + 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x69, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6f, 0x5f, + 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x72, 0x69, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, + 0x68, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3c, 0x0a, + 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x38, 0x0a, 0x07, 0x74, + 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x74, + 0x6f, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, + 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x69, 0x70, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x10, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x68, 0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x70, 0x74, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, + 0x6f, 0x70, 0x74, 0x4f, 0x75, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0xbe, + 0x01, 0x0a, 0x12, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, + 0x0b, 0x64, 0x6f, 0x6e, 0x6f, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0a, 0x64, 0x6f, 0x6e, 0x6f, + 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x22, + 0x8f, 0x02, 0x0a, 0x10, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, + 0x73, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, + 0x61, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, + 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, + 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x61, 0x73, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x75, 0x70, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x17, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, + 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, + 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, + 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x05, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x49, 0x64, + 0x22, 0x8f, 0x02, 0x0a, 0x10, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, + 0x61, 0x73, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x68, 0x61, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, + 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, + 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x0c, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x29, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x61, 0x73, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x75, + 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0a, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x17, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x61, 0x6d, 0x65, + 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, + 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x05, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x49, + 0x64, 0x22, 0x62, 0x0a, 0x0b, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x63, 0x0a, 0x0c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, + 0x6d, 0x65, 0x72, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x52, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, + 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, + 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7b, 0x0a, 0x13, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x2a, 0x9f, 0x04, 0x0a, 0x10, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x41, 0x4e, 0x49, + 0x50, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, + 0x4e, 0x49, 0x50, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, + 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x52, 0x45, 0x4d, 0x4f, + 0x56, 0x45, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x43, 0x4f, + 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x4c, + 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x50, 0x41, 0x49, 0x4e, + 0x54, 0x42, 0x52, 0x55, 0x53, 0x48, 0x5f, 0x54, 0x4f, 0x4f, 0x4c, 0x10, 0x05, 0x12, 0x14, 0x0a, + 0x10, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x50, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x4f, + 0x4c, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x42, 0x4c, 0x55, + 0x52, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x53, 0x50, 0x4c, + 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x43, + 0x4c, 0x4f, 0x4e, 0x45, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, + 0x43, 0x52, 0x4f, 0x50, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, + 0x46, 0x4c, 0x49, 0x50, 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, + 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, 0x4e, 0x49, + 0x50, 0x5f, 0x53, 0x45, 0x41, 0x4d, 0x5f, 0x43, 0x41, 0x52, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x0d, + 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x52, 0x4f, 0x54, 0x41, 0x54, 0x45, + 0x10, 0x0e, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x53, 0x4b, 0x45, 0x57, + 0x10, 0x0f, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x57, 0x41, 0x52, 0x50, + 0x10, 0x10, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x4d, 0x45, 0x54, 0x41, + 0x44, 0x41, 0x54, 0x41, 0x10, 0x11, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, + 0x41, 0x4e, 0x54, 0x49, 0x46, 0x4f, 0x52, 0x45, 0x4e, 0x53, 0x49, 0x43, 0x53, 0x10, 0x12, 0x12, + 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x52, + 0x45, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x10, 0x13, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x41, + 0x4e, 0x49, 0x50, 0x5f, 0x43, 0x47, 0x49, 0x10, 0x14, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x41, 0x4e, + 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x15, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x46, 0x52, + 0x41, 0x4d, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x16, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x41, + 0x4e, 0x49, 0x50, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x4d, + 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, 0x4a, 0x50, 0x47, 0x10, + 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x41, 0x4e, 0x49, 0x50, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, + 0x10, 0x19, 0x2a, 0x55, 0x0a, 0x0f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x69, 0x74, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x50, 0x45, 0x43, 0x5f, 0x47, 0x4c, + 0x4f, 0x42, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x50, 0x45, 0x43, 0x5f, 0x46, + 0x52, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x50, 0x45, 0x43, 0x5f, 0x50, + 0x49, 0x58, 0x45, 0x4c, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x50, 0x45, 0x43, 0x5f, 0x4d, + 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x03, 0x2a, 0x60, 0x0a, 0x0a, 0x4f, 0x70, 0x74, + 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x54, 0x5f, 0x4f, + 0x55, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x54, + 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x50, + 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4c, 0x4f, 0x43, + 0x41, 0x4c, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0x65, 0x0a, 0x0f, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4f, 0x70, 0x74, 0x4f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, + 0x0a, 0x17, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x4f, 0x50, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, + 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x56, + 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x4f, 0x50, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x54, 0x45, 0x4d, + 0x50, 0x4f, 0x52, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x49, 0x44, 0x45, 0x4f, + 0x5f, 0x4f, 0x50, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x50, 0x41, 0x54, 0x49, 0x41, 0x4c, + 0x10, 0x02, 0x32, 0xed, 0x04, 0x0a, 0x08, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x12, + 0x62, 0x0a, 0x17, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, + 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, + 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x11, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, + 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x16, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, + 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x53, 0x0a, 0x12, 0x44, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x73, + 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x12, + 0x5f, 0x0a, 0x16, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x61, + 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x61, + 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x12, 0x30, 0x0a, 0x04, 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x13, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x66, 0x6f, 0x72, 0x65, 0x6e, 0x73, 0x69, 0x63, 0x73, 0x2f, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_medifor_v1_analytic_proto_rawDescOnce sync.Once + file_medifor_v1_analytic_proto_rawDescData = file_medifor_v1_analytic_proto_rawDesc +) + +func file_medifor_v1_analytic_proto_rawDescGZIP() []byte { + file_medifor_v1_analytic_proto_rawDescOnce.Do(func() { + file_medifor_v1_analytic_proto_rawDescData = protoimpl.X.CompressGZIP(file_medifor_v1_analytic_proto_rawDescData) + }) + return file_medifor_v1_analytic_proto_rawDescData +} + +var file_medifor_v1_analytic_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_medifor_v1_analytic_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_medifor_v1_analytic_proto_goTypes = []interface{}{ + (ManipulationType)(0), // 0: mediforproto.ManipulationType + (SpecificityType)(0), // 1: mediforproto.SpecificityType + (OptOutType)(0), // 2: mediforproto.OptOutType + (VideoOptOutType)(0), // 3: mediforproto.VideoOptOutType + (*Detection)(nil), // 4: mediforproto.Detection + (*AnnotatedDetection)(nil), // 5: mediforproto.AnnotatedDetection + (*Resource)(nil), // 6: mediforproto.Resource + (*IntRange)(nil), // 7: mediforproto.IntRange + (*ScoredIntRange)(nil), // 8: mediforproto.ScoredIntRange + (*MaskIntRange)(nil), // 9: mediforproto.MaskIntRange + (*FloatRange)(nil), // 10: mediforproto.FloatRange + (*ScoredFloatRange)(nil), // 11: mediforproto.ScoredFloatRange + (*ImageLocalization)(nil), // 12: mediforproto.ImageLocalization + (*ImageManipulation)(nil), // 13: mediforproto.ImageManipulation + (*ImageManipulationRequest)(nil), // 14: mediforproto.ImageManipulationRequest + (*VideoLocalization)(nil), // 15: mediforproto.VideoLocalization + (*VideoManipulation)(nil), // 16: mediforproto.VideoManipulation + (*VideoManipulationRequest)(nil), // 17: mediforproto.VideoManipulationRequest + (*Link)(nil), // 18: mediforproto.Link + (*ImageSplice)(nil), // 19: mediforproto.ImageSplice + (*ImageSpliceRequest)(nil), // 20: mediforproto.ImageSpliceRequest + (*ImageCameraMatch)(nil), // 21: mediforproto.ImageCameraMatch + (*ImageCameraMatchRequest)(nil), // 22: mediforproto.ImageCameraMatchRequest + (*VideoCameraMatch)(nil), // 23: mediforproto.VideoCameraMatch + (*VideoCameraMatchRequest)(nil), // 24: mediforproto.VideoCameraMatchRequest + (*CameraScore)(nil), // 25: mediforproto.CameraScore + (*ImageCameras)(nil), // 26: mediforproto.ImageCameras + (*ImageCamerasRequest)(nil), // 27: mediforproto.ImageCamerasRequest + (*Empty)(nil), // 28: mediforproto.Empty + nil, // 29: mediforproto.ImageManipulation.FacetsEntry + nil, // 30: mediforproto.VideoManipulation.FacetsEntry + (*status.Status)(nil), // 31: google.rpc.Status +} +var file_medifor_v1_analytic_proto_depIdxs = []int32{ + 31, // 0: mediforproto.Detection.status:type_name -> google.rpc.Status + 14, // 1: mediforproto.Detection.img_manip_req:type_name -> mediforproto.ImageManipulationRequest + 17, // 2: mediforproto.Detection.vid_manip_req:type_name -> mediforproto.VideoManipulationRequest + 20, // 3: mediforproto.Detection.img_splice_req:type_name -> mediforproto.ImageSpliceRequest + 22, // 4: mediforproto.Detection.img_cam_match_req:type_name -> mediforproto.ImageCameraMatchRequest + 27, // 5: mediforproto.Detection.img_cams_req:type_name -> mediforproto.ImageCamerasRequest + 24, // 6: mediforproto.Detection.vid_cam_match_req:type_name -> mediforproto.VideoCameraMatchRequest + 13, // 7: mediforproto.Detection.img_manip:type_name -> mediforproto.ImageManipulation + 16, // 8: mediforproto.Detection.vid_manip:type_name -> mediforproto.VideoManipulation + 19, // 9: mediforproto.Detection.img_splice:type_name -> mediforproto.ImageSplice + 21, // 10: mediforproto.Detection.img_cam_match:type_name -> mediforproto.ImageCameraMatch + 26, // 11: mediforproto.Detection.img_cams:type_name -> mediforproto.ImageCameras + 23, // 12: mediforproto.Detection.vid_cam_match:type_name -> mediforproto.VideoCameraMatch + 4, // 13: mediforproto.AnnotatedDetection.detection:type_name -> mediforproto.Detection + 7, // 14: mediforproto.ScoredIntRange.range:type_name -> mediforproto.IntRange + 7, // 15: mediforproto.MaskIntRange.range:type_name -> mediforproto.IntRange + 6, // 16: mediforproto.MaskIntRange.mask:type_name -> mediforproto.Resource + 10, // 17: mediforproto.ScoredFloatRange.range:type_name -> mediforproto.FloatRange + 6, // 18: mediforproto.ImageLocalization.mask:type_name -> mediforproto.Resource + 6, // 19: mediforproto.ImageLocalization.mask_optout:type_name -> mediforproto.Resource + 29, // 20: mediforproto.ImageManipulation.facets:type_name -> mediforproto.ImageManipulation.FacetsEntry + 2, // 21: mediforproto.ImageManipulation.opt_out:type_name -> mediforproto.OptOutType + 12, // 22: mediforproto.ImageManipulation.localization:type_name -> mediforproto.ImageLocalization + 1, // 23: mediforproto.ImageManipulation.specificity:type_name -> mediforproto.SpecificityType + 0, // 24: mediforproto.ImageManipulation.manipulation_type:type_name -> mediforproto.ManipulationType + 6, // 25: mediforproto.ImageManipulation.supplement:type_name -> mediforproto.Resource + 6, // 26: mediforproto.ImageManipulationRequest.image:type_name -> mediforproto.Resource + 8, // 27: mediforproto.VideoLocalization.frame_detection:type_name -> mediforproto.ScoredIntRange + 7, // 28: mediforproto.VideoLocalization.frame_optout:type_name -> mediforproto.IntRange + 11, // 29: mediforproto.VideoLocalization.audio_detection:type_name -> mediforproto.ScoredFloatRange + 10, // 30: mediforproto.VideoLocalization.audio_optout:type_name -> mediforproto.FloatRange + 9, // 31: mediforproto.VideoLocalization.video_mask:type_name -> mediforproto.MaskIntRange + 9, // 32: mediforproto.VideoLocalization.video_mask_optout:type_name -> mediforproto.MaskIntRange + 30, // 33: mediforproto.VideoManipulation.facets:type_name -> mediforproto.VideoManipulation.FacetsEntry + 3, // 34: mediforproto.VideoManipulation.opt_out:type_name -> mediforproto.VideoOptOutType + 15, // 35: mediforproto.VideoManipulation.localization:type_name -> mediforproto.VideoLocalization + 1, // 36: mediforproto.VideoManipulation.specificity:type_name -> mediforproto.SpecificityType + 0, // 37: mediforproto.VideoManipulation.manipulation_type:type_name -> mediforproto.ManipulationType + 6, // 38: mediforproto.VideoManipulation.supplement:type_name -> mediforproto.Resource + 6, // 39: mediforproto.VideoManipulationRequest.video:type_name -> mediforproto.Resource + 12, // 40: mediforproto.Link.from_mask:type_name -> mediforproto.ImageLocalization + 12, // 41: mediforproto.Link.to_mask:type_name -> mediforproto.ImageLocalization + 0, // 42: mediforproto.Link.manipulation_type:type_name -> mediforproto.ManipulationType + 2, // 43: mediforproto.ImageSplice.opt_out:type_name -> mediforproto.OptOutType + 18, // 44: mediforproto.ImageSplice.link:type_name -> mediforproto.Link + 6, // 45: mediforproto.ImageSpliceRequest.probe_image:type_name -> mediforproto.Resource + 6, // 46: mediforproto.ImageSpliceRequest.donor_image:type_name -> mediforproto.Resource + 12, // 47: mediforproto.ImageCameraMatch.localization:type_name -> mediforproto.ImageLocalization + 6, // 48: mediforproto.ImageCameraMatch.supplement:type_name -> mediforproto.Resource + 6, // 49: mediforproto.ImageCameraMatchRequest.image:type_name -> mediforproto.Resource + 15, // 50: mediforproto.VideoCameraMatch.localization:type_name -> mediforproto.VideoLocalization + 6, // 51: mediforproto.VideoCameraMatch.supplement:type_name -> mediforproto.Resource + 6, // 52: mediforproto.VideoCameraMatchRequest.image:type_name -> mediforproto.Resource + 25, // 53: mediforproto.ImageCameras.scores:type_name -> mediforproto.CameraScore + 6, // 54: mediforproto.ImageCamerasRequest.image:type_name -> mediforproto.Resource + 14, // 55: mediforproto.Analytic.DetectImageManipulation:input_type -> mediforproto.ImageManipulationRequest + 20, // 56: mediforproto.Analytic.DetectImageSplice:input_type -> mediforproto.ImageSpliceRequest + 17, // 57: mediforproto.Analytic.DetectVideoManipulation:input_type -> mediforproto.VideoManipulationRequest + 22, // 58: mediforproto.Analytic.DetectImageCameraMatch:input_type -> mediforproto.ImageCameraMatchRequest + 27, // 59: mediforproto.Analytic.DetectImageCameras:input_type -> mediforproto.ImageCamerasRequest + 24, // 60: mediforproto.Analytic.DetectVideoCameraMatch:input_type -> mediforproto.VideoCameraMatchRequest + 28, // 61: mediforproto.Analytic.Kill:input_type -> mediforproto.Empty + 13, // 62: mediforproto.Analytic.DetectImageManipulation:output_type -> mediforproto.ImageManipulation + 19, // 63: mediforproto.Analytic.DetectImageSplice:output_type -> mediforproto.ImageSplice + 16, // 64: mediforproto.Analytic.DetectVideoManipulation:output_type -> mediforproto.VideoManipulation + 21, // 65: mediforproto.Analytic.DetectImageCameraMatch:output_type -> mediforproto.ImageCameraMatch + 26, // 66: mediforproto.Analytic.DetectImageCameras:output_type -> mediforproto.ImageCameras + 23, // 67: mediforproto.Analytic.DetectVideoCameraMatch:output_type -> mediforproto.VideoCameraMatch + 28, // 68: mediforproto.Analytic.Kill:output_type -> mediforproto.Empty + 62, // [62:69] is the sub-list for method output_type + 55, // [55:62] is the sub-list for method input_type + 55, // [55:55] is the sub-list for extension type_name + 55, // [55:55] is the sub-list for extension extendee + 0, // [0:55] is the sub-list for field type_name +} + +func init() { file_medifor_v1_analytic_proto_init() } +func file_medifor_v1_analytic_proto_init() { + if File_medifor_v1_analytic_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_medifor_v1_analytic_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Detection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotatedDetection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Resource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScoredIntRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaskIntRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FloatRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScoredFloatRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageLocalization); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageManipulation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageManipulationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoLocalization); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoManipulation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoManipulationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Link); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageSplice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageSpliceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageCameraMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageCameraMatchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoCameraMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoCameraMatchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CameraScore); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageCameras); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageCamerasRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_analytic_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Empty); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_medifor_v1_analytic_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Detection_ImgManipReq)(nil), + (*Detection_VidManipReq)(nil), + (*Detection_ImgSpliceReq)(nil), + (*Detection_ImgCamMatchReq)(nil), + (*Detection_ImgCamsReq)(nil), + (*Detection_VidCamMatchReq)(nil), + (*Detection_ImgManip)(nil), + (*Detection_VidManip)(nil), + (*Detection_ImgSplice)(nil), + (*Detection_ImgCamMatch)(nil), + (*Detection_ImgCams)(nil), + (*Detection_VidCamMatch)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_medifor_v1_analytic_proto_rawDesc, + NumEnums: 4, + NumMessages: 27, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_medifor_v1_analytic_proto_goTypes, + DependencyIndexes: file_medifor_v1_analytic_proto_depIdxs, + EnumInfos: file_medifor_v1_analytic_proto_enumTypes, + MessageInfos: file_medifor_v1_analytic_proto_msgTypes, + }.Build() + File_medifor_v1_analytic_proto = out.File + file_medifor_v1_analytic_proto_rawDesc = nil + file_medifor_v1_analytic_proto_goTypes = nil + file_medifor_v1_analytic_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +const _ = grpc.SupportPackageIsVersion6 // AnalyticClient is the client API for Analytic service. // @@ -2412,10 +3430,10 @@ type AnalyticClient interface { } type analyticClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewAnalyticClient(cc *grpc.ClientConn) AnalyticClient { +func NewAnalyticClient(cc grpc.ClientConnInterface) AnalyticClient { return &analyticClient{cc} } @@ -2497,25 +3515,25 @@ type AnalyticServer interface { type UnimplementedAnalyticServer struct { } -func (*UnimplementedAnalyticServer) DetectImageManipulation(ctx context.Context, req *ImageManipulationRequest) (*ImageManipulation, error) { +func (*UnimplementedAnalyticServer) DetectImageManipulation(context.Context, *ImageManipulationRequest) (*ImageManipulation, error) { return nil, status1.Errorf(codes.Unimplemented, "method DetectImageManipulation not implemented") } -func (*UnimplementedAnalyticServer) DetectImageSplice(ctx context.Context, req *ImageSpliceRequest) (*ImageSplice, error) { +func (*UnimplementedAnalyticServer) DetectImageSplice(context.Context, *ImageSpliceRequest) (*ImageSplice, error) { return nil, status1.Errorf(codes.Unimplemented, "method DetectImageSplice not implemented") } -func (*UnimplementedAnalyticServer) DetectVideoManipulation(ctx context.Context, req *VideoManipulationRequest) (*VideoManipulation, error) { +func (*UnimplementedAnalyticServer) DetectVideoManipulation(context.Context, *VideoManipulationRequest) (*VideoManipulation, error) { return nil, status1.Errorf(codes.Unimplemented, "method DetectVideoManipulation not implemented") } -func (*UnimplementedAnalyticServer) DetectImageCameraMatch(ctx context.Context, req *ImageCameraMatchRequest) (*ImageCameraMatch, error) { +func (*UnimplementedAnalyticServer) DetectImageCameraMatch(context.Context, *ImageCameraMatchRequest) (*ImageCameraMatch, error) { return nil, status1.Errorf(codes.Unimplemented, "method DetectImageCameraMatch not implemented") } -func (*UnimplementedAnalyticServer) DetectImageCameras(ctx context.Context, req *ImageCamerasRequest) (*ImageCameras, error) { +func (*UnimplementedAnalyticServer) DetectImageCameras(context.Context, *ImageCamerasRequest) (*ImageCameras, error) { return nil, status1.Errorf(codes.Unimplemented, "method DetectImageCameras not implemented") } -func (*UnimplementedAnalyticServer) DetectVideoCameraMatch(ctx context.Context, req *VideoCameraMatchRequest) (*VideoCameraMatch, error) { +func (*UnimplementedAnalyticServer) DetectVideoCameraMatch(context.Context, *VideoCameraMatchRequest) (*VideoCameraMatch, error) { return nil, status1.Errorf(codes.Unimplemented, "method DetectVideoCameraMatch not implemented") } -func (*UnimplementedAnalyticServer) Kill(ctx context.Context, req *Empty) (*Empty, error) { +func (*UnimplementedAnalyticServer) Kill(context.Context, *Empty) (*Empty, error) { return nil, status1.Errorf(codes.Unimplemented, "method Kill not implemented") } diff --git a/pkg/mediforproto/fusion.pb.go b/pkg/mediforproto/fusion.pb.go index 6308855..2b9b9c7 100644 --- a/pkg/mediforproto/fusion.pb.go +++ b/pkg/mediforproto/fusion.pb.go @@ -1,32 +1,36 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 // source: medifor/v1/fusion.proto package mediforproto import ( context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" status "google.golang.org/genproto/googleapis/rpc/status" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status1 "google.golang.org/grpc/status" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // Fusion holds round-trip information for any of the "FuseFoo" request/response endpoints. type Fusion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Standard RPC status - we stash the actual RPC error/non-error here. Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` // Round-trip request-response timings. Milliseconds since the Epoch. @@ -34,7 +38,7 @@ type Fusion struct { EndTimeMillis int64 `protobuf:"varint,3,opt,name=end_time_millis,json=endTimeMillis,proto3" json:"end_time_millis,omitempty"` // The request made to the analytic. // - // Types that are valid to be assigned to Request: + // Types that are assignable to Request: // *Fusion_ImgManipReq // *Fusion_VidManipReq // *Fusion_ImgSpliceReq @@ -42,126 +46,165 @@ type Fusion struct { Request isFusion_Request `protobuf_oneof:"request"` // The response received from the analytic. // - // Types that are valid to be assigned to Response: + // Types that are assignable to Response: // *Fusion_ImgManip // *Fusion_VidManip // *Fusion_ImgSplice // *Fusion_ImgCamMatch - Response isFusion_Response `protobuf_oneof:"response"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Response isFusion_Response `protobuf_oneof:"response"` } -func (m *Fusion) Reset() { *m = Fusion{} } -func (m *Fusion) String() string { return proto.CompactTextString(m) } -func (*Fusion) ProtoMessage() {} -func (*Fusion) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{0} +func (x *Fusion) Reset() { + *x = Fusion{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Fusion) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Fusion.Unmarshal(m, b) -} -func (m *Fusion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Fusion.Marshal(b, m, deterministic) -} -func (m *Fusion) XXX_Merge(src proto.Message) { - xxx_messageInfo_Fusion.Merge(m, src) -} -func (m *Fusion) XXX_Size() int { - return xxx_messageInfo_Fusion.Size(m) +func (x *Fusion) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Fusion) XXX_DiscardUnknown() { - xxx_messageInfo_Fusion.DiscardUnknown(m) + +func (*Fusion) ProtoMessage() {} + +func (x *Fusion) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_Fusion proto.InternalMessageInfo +// Deprecated: Use Fusion.ProtoReflect.Descriptor instead. +func (*Fusion) Descriptor() ([]byte, []int) { + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{0} +} -func (m *Fusion) GetStatus() *status.Status { - if m != nil { - return m.Status +func (x *Fusion) GetStatus() *status.Status { + if x != nil { + return x.Status } return nil } -func (m *Fusion) GetStartTimeMillis() int64 { - if m != nil { - return m.StartTimeMillis +func (x *Fusion) GetStartTimeMillis() int64 { + if x != nil { + return x.StartTimeMillis } return 0 } -func (m *Fusion) GetEndTimeMillis() int64 { - if m != nil { - return m.EndTimeMillis +func (x *Fusion) GetEndTimeMillis() int64 { + if x != nil { + return x.EndTimeMillis } return 0 } -type isFusion_Request interface { - isFusion_Request() +func (m *Fusion) GetRequest() isFusion_Request { + if m != nil { + return m.Request + } + return nil } -type Fusion_ImgManipReq struct { - ImgManipReq *FuseImageManipulationRequest `protobuf:"bytes,11,opt,name=img_manip_req,json=imgManipReq,proto3,oneof"` +func (x *Fusion) GetImgManipReq() *FuseImageManipulationRequest { + if x, ok := x.GetRequest().(*Fusion_ImgManipReq); ok { + return x.ImgManipReq + } + return nil } -type Fusion_VidManipReq struct { - VidManipReq *FuseVideoManipulationRequest `protobuf:"bytes,12,opt,name=vid_manip_req,json=vidManipReq,proto3,oneof"` +func (x *Fusion) GetVidManipReq() *FuseVideoManipulationRequest { + if x, ok := x.GetRequest().(*Fusion_VidManipReq); ok { + return x.VidManipReq + } + return nil } -type Fusion_ImgSpliceReq struct { - ImgSpliceReq *FuseImageSpliceRequest `protobuf:"bytes,13,opt,name=img_splice_req,json=imgSpliceReq,proto3,oneof"` +func (x *Fusion) GetImgSpliceReq() *FuseImageSpliceRequest { + if x, ok := x.GetRequest().(*Fusion_ImgSpliceReq); ok { + return x.ImgSpliceReq + } + return nil } -type Fusion_ImgCamMatchReq struct { - ImgCamMatchReq *FuseImageCameraMatchRequest `protobuf:"bytes,14,opt,name=img_cam_match_req,json=imgCamMatchReq,proto3,oneof"` +func (x *Fusion) GetImgCamMatchReq() *FuseImageCameraMatchRequest { + if x, ok := x.GetRequest().(*Fusion_ImgCamMatchReq); ok { + return x.ImgCamMatchReq + } + return nil } -func (*Fusion_ImgManipReq) isFusion_Request() {} - -func (*Fusion_VidManipReq) isFusion_Request() {} - -func (*Fusion_ImgSpliceReq) isFusion_Request() {} - -func (*Fusion_ImgCamMatchReq) isFusion_Request() {} - -func (m *Fusion) GetRequest() isFusion_Request { +func (m *Fusion) GetResponse() isFusion_Response { if m != nil { - return m.Request + return m.Response } return nil } -func (m *Fusion) GetImgManipReq() *FuseImageManipulationRequest { - if x, ok := m.GetRequest().(*Fusion_ImgManipReq); ok { - return x.ImgManipReq +func (x *Fusion) GetImgManip() *ImageManipulation { + if x, ok := x.GetResponse().(*Fusion_ImgManip); ok { + return x.ImgManip } return nil } -func (m *Fusion) GetVidManipReq() *FuseVideoManipulationRequest { - if x, ok := m.GetRequest().(*Fusion_VidManipReq); ok { - return x.VidManipReq +func (x *Fusion) GetVidManip() *VideoManipulation { + if x, ok := x.GetResponse().(*Fusion_VidManip); ok { + return x.VidManip } return nil } -func (m *Fusion) GetImgSpliceReq() *FuseImageSpliceRequest { - if x, ok := m.GetRequest().(*Fusion_ImgSpliceReq); ok { - return x.ImgSpliceReq +func (x *Fusion) GetImgSplice() *ImageSplice { + if x, ok := x.GetResponse().(*Fusion_ImgSplice); ok { + return x.ImgSplice } return nil } -func (m *Fusion) GetImgCamMatchReq() *FuseImageCameraMatchRequest { - if x, ok := m.GetRequest().(*Fusion_ImgCamMatchReq); ok { - return x.ImgCamMatchReq +func (x *Fusion) GetImgCamMatch() *ImageCameraMatch { + if x, ok := x.GetResponse().(*Fusion_ImgCamMatch); ok { + return x.ImgCamMatch } return nil } +type isFusion_Request interface { + isFusion_Request() +} + +type Fusion_ImgManipReq struct { + ImgManipReq *FuseImageManipulationRequest `protobuf:"bytes,11,opt,name=img_manip_req,json=imgManipReq,proto3,oneof"` +} + +type Fusion_VidManipReq struct { + VidManipReq *FuseVideoManipulationRequest `protobuf:"bytes,12,opt,name=vid_manip_req,json=vidManipReq,proto3,oneof"` +} + +type Fusion_ImgSpliceReq struct { + ImgSpliceReq *FuseImageSpliceRequest `protobuf:"bytes,13,opt,name=img_splice_req,json=imgSpliceReq,proto3,oneof"` +} + +type Fusion_ImgCamMatchReq struct { + ImgCamMatchReq *FuseImageCameraMatchRequest `protobuf:"bytes,14,opt,name=img_cam_match_req,json=imgCamMatchReq,proto3,oneof"` +} + +func (*Fusion_ImgManipReq) isFusion_Request() {} + +func (*Fusion_VidManipReq) isFusion_Request() {} + +func (*Fusion_ImgSpliceReq) isFusion_Request() {} + +func (*Fusion_ImgCamMatchReq) isFusion_Request() {} + type isFusion_Response interface { isFusion_Response() } @@ -190,788 +233,1213 @@ func (*Fusion_ImgSplice) isFusion_Response() {} func (*Fusion_ImgCamMatch) isFusion_Response() {} -func (m *Fusion) GetResponse() isFusion_Response { - if m != nil { - return m.Response - } - return nil -} +// Next Tag: 4 +type AnnotatedImageManipulation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *Fusion) GetImgManip() *ImageManipulation { - if x, ok := m.GetResponse().(*Fusion_ImgManip); ok { - return x.ImgManip - } - return nil + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + Data *ImageManipulation `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (m *Fusion) GetVidManip() *VideoManipulation { - if x, ok := m.GetResponse().(*Fusion_VidManip); ok { - return x.VidManip +func (x *AnnotatedImageManipulation) Reset() { + *x = AnnotatedImageManipulation{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *Fusion) GetImgSplice() *ImageSplice { - if x, ok := m.GetResponse().(*Fusion_ImgSplice); ok { - return x.ImgSplice - } - return nil +func (x *AnnotatedImageManipulation) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Fusion) GetImgCamMatch() *ImageCameraMatch { - if x, ok := m.GetResponse().(*Fusion_ImgCamMatch); ok { - return x.ImgCamMatch - } - return nil -} +func (*AnnotatedImageManipulation) ProtoMessage() {} -// XXX_OneofWrappers is for the internal use of the proto package. -func (*Fusion) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*Fusion_ImgManipReq)(nil), - (*Fusion_VidManipReq)(nil), - (*Fusion_ImgSpliceReq)(nil), - (*Fusion_ImgCamMatchReq)(nil), - (*Fusion_ImgManip)(nil), - (*Fusion_VidManip)(nil), - (*Fusion_ImgSplice)(nil), - (*Fusion_ImgCamMatch)(nil), +func (x *AnnotatedImageManipulation) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[1] + 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) } -// Next Tag: 4 -type AnnotatedImageManipulation struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` - Data *ImageManipulation `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AnnotatedImageManipulation) Reset() { *m = AnnotatedImageManipulation{} } -func (m *AnnotatedImageManipulation) String() string { return proto.CompactTextString(m) } -func (*AnnotatedImageManipulation) ProtoMessage() {} +// Deprecated: Use AnnotatedImageManipulation.ProtoReflect.Descriptor instead. func (*AnnotatedImageManipulation) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{1} -} - -func (m *AnnotatedImageManipulation) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AnnotatedImageManipulation.Unmarshal(m, b) -} -func (m *AnnotatedImageManipulation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AnnotatedImageManipulation.Marshal(b, m, deterministic) -} -func (m *AnnotatedImageManipulation) XXX_Merge(src proto.Message) { - xxx_messageInfo_AnnotatedImageManipulation.Merge(m, src) -} -func (m *AnnotatedImageManipulation) XXX_Size() int { - return xxx_messageInfo_AnnotatedImageManipulation.Size(m) -} -func (m *AnnotatedImageManipulation) XXX_DiscardUnknown() { - xxx_messageInfo_AnnotatedImageManipulation.DiscardUnknown(m) + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{1} } -var xxx_messageInfo_AnnotatedImageManipulation proto.InternalMessageInfo - -func (m *AnnotatedImageManipulation) GetId() string { - if m != nil { - return m.Id +func (x *AnnotatedImageManipulation) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *AnnotatedImageManipulation) GetVersion() string { - if m != nil { - return m.Version +func (x *AnnotatedImageManipulation) GetVersion() string { + if x != nil { + return x.Version } return "" } -func (m *AnnotatedImageManipulation) GetData() *ImageManipulation { - if m != nil { - return m.Data +func (x *AnnotatedImageManipulation) GetData() *ImageManipulation { + if x != nil { + return x.Data } return nil } // Next Tag: 6 type FuseImageManipulationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` OutDir string `protobuf:"bytes,2,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` ImgManipReq *ImageManipulationRequest `protobuf:"bytes,3,opt,name=img_manip_req,json=imgManipReq,proto3" json:"img_manip_req,omitempty"` ImgManip []*AnnotatedImageManipulation `protobuf:"bytes,4,rep,name=img_manip,json=imgManip,proto3" json:"img_manip,omitempty"` // If this is set, the fusion algorithm should produce mask output. Otherwise // it should only produce a score. - WantMasks bool `protobuf:"varint,5,opt,name=want_masks,json=wantMasks,proto3" json:"want_masks,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + WantMasks bool `protobuf:"varint,5,opt,name=want_masks,json=wantMasks,proto3" json:"want_masks,omitempty"` } -func (m *FuseImageManipulationRequest) Reset() { *m = FuseImageManipulationRequest{} } -func (m *FuseImageManipulationRequest) String() string { return proto.CompactTextString(m) } -func (*FuseImageManipulationRequest) ProtoMessage() {} -func (*FuseImageManipulationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{2} +func (x *FuseImageManipulationRequest) Reset() { + *x = FuseImageManipulationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FuseImageManipulationRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FuseImageManipulationRequest.Unmarshal(m, b) -} -func (m *FuseImageManipulationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FuseImageManipulationRequest.Marshal(b, m, deterministic) -} -func (m *FuseImageManipulationRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FuseImageManipulationRequest.Merge(m, src) +func (x *FuseImageManipulationRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FuseImageManipulationRequest) XXX_Size() int { - return xxx_messageInfo_FuseImageManipulationRequest.Size(m) -} -func (m *FuseImageManipulationRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FuseImageManipulationRequest.DiscardUnknown(m) + +func (*FuseImageManipulationRequest) ProtoMessage() {} + +func (x *FuseImageManipulationRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[2] + 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) } -var xxx_messageInfo_FuseImageManipulationRequest proto.InternalMessageInfo +// Deprecated: Use FuseImageManipulationRequest.ProtoReflect.Descriptor instead. +func (*FuseImageManipulationRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{2} +} -func (m *FuseImageManipulationRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *FuseImageManipulationRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *FuseImageManipulationRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *FuseImageManipulationRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } -func (m *FuseImageManipulationRequest) GetImgManipReq() *ImageManipulationRequest { - if m != nil { - return m.ImgManipReq +func (x *FuseImageManipulationRequest) GetImgManipReq() *ImageManipulationRequest { + if x != nil { + return x.ImgManipReq } return nil } -func (m *FuseImageManipulationRequest) GetImgManip() []*AnnotatedImageManipulation { - if m != nil { - return m.ImgManip +func (x *FuseImageManipulationRequest) GetImgManip() []*AnnotatedImageManipulation { + if x != nil { + return x.ImgManip } return nil } -func (m *FuseImageManipulationRequest) GetWantMasks() bool { - if m != nil { - return m.WantMasks +func (x *FuseImageManipulationRequest) GetWantMasks() bool { + if x != nil { + return x.WantMasks } return false } // Next Tag: 4 type AnnotatedVideoManipulation struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` - Data *VideoManipulation `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *AnnotatedVideoManipulation) Reset() { *m = AnnotatedVideoManipulation{} } -func (m *AnnotatedVideoManipulation) String() string { return proto.CompactTextString(m) } -func (*AnnotatedVideoManipulation) ProtoMessage() {} -func (*AnnotatedVideoManipulation) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{3} + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + Data *VideoManipulation `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (m *AnnotatedVideoManipulation) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AnnotatedVideoManipulation.Unmarshal(m, b) -} -func (m *AnnotatedVideoManipulation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AnnotatedVideoManipulation.Marshal(b, m, deterministic) -} -func (m *AnnotatedVideoManipulation) XXX_Merge(src proto.Message) { - xxx_messageInfo_AnnotatedVideoManipulation.Merge(m, src) +func (x *AnnotatedVideoManipulation) Reset() { + *x = AnnotatedVideoManipulation{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AnnotatedVideoManipulation) XXX_Size() int { - return xxx_messageInfo_AnnotatedVideoManipulation.Size(m) + +func (x *AnnotatedVideoManipulation) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AnnotatedVideoManipulation) XXX_DiscardUnknown() { - xxx_messageInfo_AnnotatedVideoManipulation.DiscardUnknown(m) + +func (*AnnotatedVideoManipulation) ProtoMessage() {} + +func (x *AnnotatedVideoManipulation) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[3] + 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) } -var xxx_messageInfo_AnnotatedVideoManipulation proto.InternalMessageInfo +// Deprecated: Use AnnotatedVideoManipulation.ProtoReflect.Descriptor instead. +func (*AnnotatedVideoManipulation) Descriptor() ([]byte, []int) { + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{3} +} -func (m *AnnotatedVideoManipulation) GetId() string { - if m != nil { - return m.Id +func (x *AnnotatedVideoManipulation) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *AnnotatedVideoManipulation) GetVersion() string { - if m != nil { - return m.Version +func (x *AnnotatedVideoManipulation) GetVersion() string { + if x != nil { + return x.Version } return "" } -func (m *AnnotatedVideoManipulation) GetData() *VideoManipulation { - if m != nil { - return m.Data +func (x *AnnotatedVideoManipulation) GetData() *VideoManipulation { + if x != nil { + return x.Data } return nil } // Next Tag: 6 type FuseVideoManipulationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` OutDir string `protobuf:"bytes,2,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` VidManipReq *VideoManipulationRequest `protobuf:"bytes,3,opt,name=vid_manip_req,json=vidManipReq,proto3" json:"vid_manip_req,omitempty"` VidManip []*AnnotatedVideoManipulation `protobuf:"bytes,4,rep,name=vid_manip,json=vidManip,proto3" json:"vid_manip,omitempty"` // If this is set, the fusion algorithm should produce mask output. Otherwise // it should only produce a score. - WantMasks bool `protobuf:"varint,5,opt,name=want_masks,json=wantMasks,proto3" json:"want_masks,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + WantMasks bool `protobuf:"varint,5,opt,name=want_masks,json=wantMasks,proto3" json:"want_masks,omitempty"` } -func (m *FuseVideoManipulationRequest) Reset() { *m = FuseVideoManipulationRequest{} } -func (m *FuseVideoManipulationRequest) String() string { return proto.CompactTextString(m) } -func (*FuseVideoManipulationRequest) ProtoMessage() {} -func (*FuseVideoManipulationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{4} +func (x *FuseVideoManipulationRequest) Reset() { + *x = FuseVideoManipulationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FuseVideoManipulationRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FuseVideoManipulationRequest.Unmarshal(m, b) +func (x *FuseVideoManipulationRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FuseVideoManipulationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FuseVideoManipulationRequest.Marshal(b, m, deterministic) -} -func (m *FuseVideoManipulationRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FuseVideoManipulationRequest.Merge(m, src) -} -func (m *FuseVideoManipulationRequest) XXX_Size() int { - return xxx_messageInfo_FuseVideoManipulationRequest.Size(m) -} -func (m *FuseVideoManipulationRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FuseVideoManipulationRequest.DiscardUnknown(m) + +func (*FuseVideoManipulationRequest) ProtoMessage() {} + +func (x *FuseVideoManipulationRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[4] + 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) } -var xxx_messageInfo_FuseVideoManipulationRequest proto.InternalMessageInfo +// Deprecated: Use FuseVideoManipulationRequest.ProtoReflect.Descriptor instead. +func (*FuseVideoManipulationRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{4} +} -func (m *FuseVideoManipulationRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *FuseVideoManipulationRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *FuseVideoManipulationRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *FuseVideoManipulationRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } -func (m *FuseVideoManipulationRequest) GetVidManipReq() *VideoManipulationRequest { - if m != nil { - return m.VidManipReq +func (x *FuseVideoManipulationRequest) GetVidManipReq() *VideoManipulationRequest { + if x != nil { + return x.VidManipReq } return nil } -func (m *FuseVideoManipulationRequest) GetVidManip() []*AnnotatedVideoManipulation { - if m != nil { - return m.VidManip +func (x *FuseVideoManipulationRequest) GetVidManip() []*AnnotatedVideoManipulation { + if x != nil { + return x.VidManip } return nil } -func (m *FuseVideoManipulationRequest) GetWantMasks() bool { - if m != nil { - return m.WantMasks +func (x *FuseVideoManipulationRequest) GetWantMasks() bool { + if x != nil { + return x.WantMasks } return false } // Next Tag: 4 type AnnotatedImageSplice struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` - Data *ImageSplice `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *AnnotatedImageSplice) Reset() { *m = AnnotatedImageSplice{} } -func (m *AnnotatedImageSplice) String() string { return proto.CompactTextString(m) } -func (*AnnotatedImageSplice) ProtoMessage() {} -func (*AnnotatedImageSplice) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{5} + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + Data *ImageSplice `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (m *AnnotatedImageSplice) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AnnotatedImageSplice.Unmarshal(m, b) -} -func (m *AnnotatedImageSplice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AnnotatedImageSplice.Marshal(b, m, deterministic) -} -func (m *AnnotatedImageSplice) XXX_Merge(src proto.Message) { - xxx_messageInfo_AnnotatedImageSplice.Merge(m, src) +func (x *AnnotatedImageSplice) Reset() { + *x = AnnotatedImageSplice{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AnnotatedImageSplice) XXX_Size() int { - return xxx_messageInfo_AnnotatedImageSplice.Size(m) + +func (x *AnnotatedImageSplice) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AnnotatedImageSplice) XXX_DiscardUnknown() { - xxx_messageInfo_AnnotatedImageSplice.DiscardUnknown(m) + +func (*AnnotatedImageSplice) ProtoMessage() {} + +func (x *AnnotatedImageSplice) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[5] + 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) } -var xxx_messageInfo_AnnotatedImageSplice proto.InternalMessageInfo +// Deprecated: Use AnnotatedImageSplice.ProtoReflect.Descriptor instead. +func (*AnnotatedImageSplice) Descriptor() ([]byte, []int) { + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{5} +} -func (m *AnnotatedImageSplice) GetId() string { - if m != nil { - return m.Id +func (x *AnnotatedImageSplice) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *AnnotatedImageSplice) GetVersion() string { - if m != nil { - return m.Version +func (x *AnnotatedImageSplice) GetVersion() string { + if x != nil { + return x.Version } return "" } -func (m *AnnotatedImageSplice) GetData() *ImageSplice { - if m != nil { - return m.Data +func (x *AnnotatedImageSplice) GetData() *ImageSplice { + if x != nil { + return x.Data } return nil } // Next Tag: 6 type FuseImageSpliceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` OutDir string `protobuf:"bytes,2,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` ImgSpliceReq *ImageSpliceRequest `protobuf:"bytes,3,opt,name=img_splice_req,json=imgSpliceReq,proto3" json:"img_splice_req,omitempty"` ImgSplice []*AnnotatedImageSplice `protobuf:"bytes,4,rep,name=img_splice,json=imgSplice,proto3" json:"img_splice,omitempty"` // If this is set, the fusion algorithm should produce mask output. Otherwise // it should only produce a score. - WantMasks bool `protobuf:"varint,5,opt,name=want_masks,json=wantMasks,proto3" json:"want_masks,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + WantMasks bool `protobuf:"varint,5,opt,name=want_masks,json=wantMasks,proto3" json:"want_masks,omitempty"` } -func (m *FuseImageSpliceRequest) Reset() { *m = FuseImageSpliceRequest{} } -func (m *FuseImageSpliceRequest) String() string { return proto.CompactTextString(m) } -func (*FuseImageSpliceRequest) ProtoMessage() {} -func (*FuseImageSpliceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{6} +func (x *FuseImageSpliceRequest) Reset() { + *x = FuseImageSpliceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FuseImageSpliceRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FuseImageSpliceRequest.Unmarshal(m, b) -} -func (m *FuseImageSpliceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FuseImageSpliceRequest.Marshal(b, m, deterministic) -} -func (m *FuseImageSpliceRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FuseImageSpliceRequest.Merge(m, src) +func (x *FuseImageSpliceRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FuseImageSpliceRequest) XXX_Size() int { - return xxx_messageInfo_FuseImageSpliceRequest.Size(m) -} -func (m *FuseImageSpliceRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FuseImageSpliceRequest.DiscardUnknown(m) + +func (*FuseImageSpliceRequest) ProtoMessage() {} + +func (x *FuseImageSpliceRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FuseImageSpliceRequest proto.InternalMessageInfo +// Deprecated: Use FuseImageSpliceRequest.ProtoReflect.Descriptor instead. +func (*FuseImageSpliceRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{6} +} -func (m *FuseImageSpliceRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *FuseImageSpliceRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *FuseImageSpliceRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *FuseImageSpliceRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } -func (m *FuseImageSpliceRequest) GetImgSpliceReq() *ImageSpliceRequest { - if m != nil { - return m.ImgSpliceReq +func (x *FuseImageSpliceRequest) GetImgSpliceReq() *ImageSpliceRequest { + if x != nil { + return x.ImgSpliceReq } return nil } -func (m *FuseImageSpliceRequest) GetImgSplice() []*AnnotatedImageSplice { - if m != nil { - return m.ImgSplice +func (x *FuseImageSpliceRequest) GetImgSplice() []*AnnotatedImageSplice { + if x != nil { + return x.ImgSplice } return nil } -func (m *FuseImageSpliceRequest) GetWantMasks() bool { - if m != nil { - return m.WantMasks +func (x *FuseImageSpliceRequest) GetWantMasks() bool { + if x != nil { + return x.WantMasks } return false } // Next Tag: 4 type AnnotatedImageCameraMatch struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` - Data *ImageCameraMatch `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *AnnotatedImageCameraMatch) Reset() { *m = AnnotatedImageCameraMatch{} } -func (m *AnnotatedImageCameraMatch) String() string { return proto.CompactTextString(m) } -func (*AnnotatedImageCameraMatch) ProtoMessage() {} -func (*AnnotatedImageCameraMatch) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{7} + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + Data *ImageCameraMatch `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (m *AnnotatedImageCameraMatch) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AnnotatedImageCameraMatch.Unmarshal(m, b) -} -func (m *AnnotatedImageCameraMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AnnotatedImageCameraMatch.Marshal(b, m, deterministic) -} -func (m *AnnotatedImageCameraMatch) XXX_Merge(src proto.Message) { - xxx_messageInfo_AnnotatedImageCameraMatch.Merge(m, src) +func (x *AnnotatedImageCameraMatch) Reset() { + *x = AnnotatedImageCameraMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AnnotatedImageCameraMatch) XXX_Size() int { - return xxx_messageInfo_AnnotatedImageCameraMatch.Size(m) + +func (x *AnnotatedImageCameraMatch) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AnnotatedImageCameraMatch) XXX_DiscardUnknown() { - xxx_messageInfo_AnnotatedImageCameraMatch.DiscardUnknown(m) + +func (*AnnotatedImageCameraMatch) ProtoMessage() {} + +func (x *AnnotatedImageCameraMatch) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[7] + 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) } -var xxx_messageInfo_AnnotatedImageCameraMatch proto.InternalMessageInfo +// Deprecated: Use AnnotatedImageCameraMatch.ProtoReflect.Descriptor instead. +func (*AnnotatedImageCameraMatch) Descriptor() ([]byte, []int) { + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{7} +} -func (m *AnnotatedImageCameraMatch) GetId() string { - if m != nil { - return m.Id +func (x *AnnotatedImageCameraMatch) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *AnnotatedImageCameraMatch) GetVersion() string { - if m != nil { - return m.Version +func (x *AnnotatedImageCameraMatch) GetVersion() string { + if x != nil { + return x.Version } return "" } -func (m *AnnotatedImageCameraMatch) GetData() *ImageCameraMatch { - if m != nil { - return m.Data +func (x *AnnotatedImageCameraMatch) GetData() *ImageCameraMatch { + if x != nil { + return x.Data } return nil } // Next Tag: 6 type FuseImageCameraMatchRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` OutDir string `protobuf:"bytes,2,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` ImgCamMatchReq *ImageCameraMatchRequest `protobuf:"bytes,3,opt,name=img_cam_match_req,json=imgCamMatchReq,proto3" json:"img_cam_match_req,omitempty"` ImgCamMatch []*AnnotatedImageCameraMatch `protobuf:"bytes,4,rep,name=img_cam_match,json=imgCamMatch,proto3" json:"img_cam_match,omitempty"` // If this is set, the fusion algorithm should produce mask output. Otherwise // it should only produce a score. - WantMasks bool `protobuf:"varint,5,opt,name=want_masks,json=wantMasks,proto3" json:"want_masks,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + WantMasks bool `protobuf:"varint,5,opt,name=want_masks,json=wantMasks,proto3" json:"want_masks,omitempty"` } -func (m *FuseImageCameraMatchRequest) Reset() { *m = FuseImageCameraMatchRequest{} } -func (m *FuseImageCameraMatchRequest) String() string { return proto.CompactTextString(m) } -func (*FuseImageCameraMatchRequest) ProtoMessage() {} -func (*FuseImageCameraMatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{8} +func (x *FuseImageCameraMatchRequest) Reset() { + *x = FuseImageCameraMatchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FuseImageCameraMatchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FuseImageCameraMatchRequest.Unmarshal(m, b) -} -func (m *FuseImageCameraMatchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FuseImageCameraMatchRequest.Marshal(b, m, deterministic) -} -func (m *FuseImageCameraMatchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FuseImageCameraMatchRequest.Merge(m, src) -} -func (m *FuseImageCameraMatchRequest) XXX_Size() int { - return xxx_messageInfo_FuseImageCameraMatchRequest.Size(m) +func (x *FuseImageCameraMatchRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FuseImageCameraMatchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FuseImageCameraMatchRequest.DiscardUnknown(m) + +func (*FuseImageCameraMatchRequest) ProtoMessage() {} + +func (x *FuseImageCameraMatchRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[8] + 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) } -var xxx_messageInfo_FuseImageCameraMatchRequest proto.InternalMessageInfo +// Deprecated: Use FuseImageCameraMatchRequest.ProtoReflect.Descriptor instead. +func (*FuseImageCameraMatchRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{8} +} -func (m *FuseImageCameraMatchRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *FuseImageCameraMatchRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *FuseImageCameraMatchRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *FuseImageCameraMatchRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } -func (m *FuseImageCameraMatchRequest) GetImgCamMatchReq() *ImageCameraMatchRequest { - if m != nil { - return m.ImgCamMatchReq +func (x *FuseImageCameraMatchRequest) GetImgCamMatchReq() *ImageCameraMatchRequest { + if x != nil { + return x.ImgCamMatchReq } return nil } -func (m *FuseImageCameraMatchRequest) GetImgCamMatch() []*AnnotatedImageCameraMatch { - if m != nil { - return m.ImgCamMatch +func (x *FuseImageCameraMatchRequest) GetImgCamMatch() []*AnnotatedImageCameraMatch { + if x != nil { + return x.ImgCamMatch } return nil } -func (m *FuseImageCameraMatchRequest) GetWantMasks() bool { - if m != nil { - return m.WantMasks +func (x *FuseImageCameraMatchRequest) GetWantMasks() bool { + if x != nil { + return x.WantMasks } return false } // Next Tag: 4 type AnnotatedVideoCameraMatch struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` - Data *VideoCameraMatch `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *AnnotatedVideoCameraMatch) Reset() { *m = AnnotatedVideoCameraMatch{} } -func (m *AnnotatedVideoCameraMatch) String() string { return proto.CompactTextString(m) } -func (*AnnotatedVideoCameraMatch) ProtoMessage() {} -func (*AnnotatedVideoCameraMatch) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{9} + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + Data *VideoCameraMatch `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (m *AnnotatedVideoCameraMatch) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AnnotatedVideoCameraMatch.Unmarshal(m, b) -} -func (m *AnnotatedVideoCameraMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AnnotatedVideoCameraMatch.Marshal(b, m, deterministic) -} -func (m *AnnotatedVideoCameraMatch) XXX_Merge(src proto.Message) { - xxx_messageInfo_AnnotatedVideoCameraMatch.Merge(m, src) +func (x *AnnotatedVideoCameraMatch) Reset() { + *x = AnnotatedVideoCameraMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AnnotatedVideoCameraMatch) XXX_Size() int { - return xxx_messageInfo_AnnotatedVideoCameraMatch.Size(m) + +func (x *AnnotatedVideoCameraMatch) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AnnotatedVideoCameraMatch) XXX_DiscardUnknown() { - xxx_messageInfo_AnnotatedVideoCameraMatch.DiscardUnknown(m) + +func (*AnnotatedVideoCameraMatch) ProtoMessage() {} + +func (x *AnnotatedVideoCameraMatch) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[9] + 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) } -var xxx_messageInfo_AnnotatedVideoCameraMatch proto.InternalMessageInfo +// Deprecated: Use AnnotatedVideoCameraMatch.ProtoReflect.Descriptor instead. +func (*AnnotatedVideoCameraMatch) Descriptor() ([]byte, []int) { + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{9} +} -func (m *AnnotatedVideoCameraMatch) GetId() string { - if m != nil { - return m.Id +func (x *AnnotatedVideoCameraMatch) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *AnnotatedVideoCameraMatch) GetVersion() string { - if m != nil { - return m.Version +func (x *AnnotatedVideoCameraMatch) GetVersion() string { + if x != nil { + return x.Version } return "" } -func (m *AnnotatedVideoCameraMatch) GetData() *VideoCameraMatch { - if m != nil { - return m.Data +func (x *AnnotatedVideoCameraMatch) GetData() *VideoCameraMatch { + if x != nil { + return x.Data } return nil } // Next Tag: 6 type FuseVideoCameraMatchRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` OutDir string `protobuf:"bytes,2,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` VidCamMatchReq *VideoCameraMatchRequest `protobuf:"bytes,3,opt,name=vid_cam_match_req,json=vidCamMatchReq,proto3" json:"vid_cam_match_req,omitempty"` VidCamMatch []*AnnotatedVideoCameraMatch `protobuf:"bytes,4,rep,name=vid_cam_match,json=vidCamMatch,proto3" json:"vid_cam_match,omitempty"` // If this is set, the fusion algorithm should produce mask output. Otherwise // it should only produce a score. - WantMasks bool `protobuf:"varint,5,opt,name=want_masks,json=wantMasks,proto3" json:"want_masks,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + WantMasks bool `protobuf:"varint,5,opt,name=want_masks,json=wantMasks,proto3" json:"want_masks,omitempty"` } -func (m *FuseVideoCameraMatchRequest) Reset() { *m = FuseVideoCameraMatchRequest{} } -func (m *FuseVideoCameraMatchRequest) String() string { return proto.CompactTextString(m) } -func (*FuseVideoCameraMatchRequest) ProtoMessage() {} -func (*FuseVideoCameraMatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9c3d6925c8af5682, []int{10} +func (x *FuseVideoCameraMatchRequest) Reset() { + *x = FuseVideoCameraMatchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_fusion_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FuseVideoCameraMatchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FuseVideoCameraMatchRequest.Unmarshal(m, b) -} -func (m *FuseVideoCameraMatchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FuseVideoCameraMatchRequest.Marshal(b, m, deterministic) -} -func (m *FuseVideoCameraMatchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FuseVideoCameraMatchRequest.Merge(m, src) -} -func (m *FuseVideoCameraMatchRequest) XXX_Size() int { - return xxx_messageInfo_FuseVideoCameraMatchRequest.Size(m) +func (x *FuseVideoCameraMatchRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FuseVideoCameraMatchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FuseVideoCameraMatchRequest.DiscardUnknown(m) + +func (*FuseVideoCameraMatchRequest) ProtoMessage() {} + +func (x *FuseVideoCameraMatchRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_fusion_proto_msgTypes[10] + 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) } -var xxx_messageInfo_FuseVideoCameraMatchRequest proto.InternalMessageInfo +// Deprecated: Use FuseVideoCameraMatchRequest.ProtoReflect.Descriptor instead. +func (*FuseVideoCameraMatchRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_fusion_proto_rawDescGZIP(), []int{10} +} -func (m *FuseVideoCameraMatchRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *FuseVideoCameraMatchRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *FuseVideoCameraMatchRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *FuseVideoCameraMatchRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } -func (m *FuseVideoCameraMatchRequest) GetVidCamMatchReq() *VideoCameraMatchRequest { - if m != nil { - return m.VidCamMatchReq +func (x *FuseVideoCameraMatchRequest) GetVidCamMatchReq() *VideoCameraMatchRequest { + if x != nil { + return x.VidCamMatchReq } return nil } -func (m *FuseVideoCameraMatchRequest) GetVidCamMatch() []*AnnotatedVideoCameraMatch { - if m != nil { - return m.VidCamMatch +func (x *FuseVideoCameraMatchRequest) GetVidCamMatch() []*AnnotatedVideoCameraMatch { + if x != nil { + return x.VidCamMatch } return nil } -func (m *FuseVideoCameraMatchRequest) GetWantMasks() bool { - if m != nil { - return m.WantMasks +func (x *FuseVideoCameraMatchRequest) GetWantMasks() bool { + if x != nil { + return x.WantMasks } return false } -func init() { - proto.RegisterType((*Fusion)(nil), "mediforproto.Fusion") - proto.RegisterType((*AnnotatedImageManipulation)(nil), "mediforproto.AnnotatedImageManipulation") - proto.RegisterType((*FuseImageManipulationRequest)(nil), "mediforproto.FuseImageManipulationRequest") - proto.RegisterType((*AnnotatedVideoManipulation)(nil), "mediforproto.AnnotatedVideoManipulation") - proto.RegisterType((*FuseVideoManipulationRequest)(nil), "mediforproto.FuseVideoManipulationRequest") - proto.RegisterType((*AnnotatedImageSplice)(nil), "mediforproto.AnnotatedImageSplice") - proto.RegisterType((*FuseImageSpliceRequest)(nil), "mediforproto.FuseImageSpliceRequest") - proto.RegisterType((*AnnotatedImageCameraMatch)(nil), "mediforproto.AnnotatedImageCameraMatch") - proto.RegisterType((*FuseImageCameraMatchRequest)(nil), "mediforproto.FuseImageCameraMatchRequest") - proto.RegisterType((*AnnotatedVideoCameraMatch)(nil), "mediforproto.AnnotatedVideoCameraMatch") - proto.RegisterType((*FuseVideoCameraMatchRequest)(nil), "mediforproto.FuseVideoCameraMatchRequest") -} - -func init() { proto.RegisterFile("medifor/v1/fusion.proto", fileDescriptor_9c3d6925c8af5682) } - -var fileDescriptor_9c3d6925c8af5682 = []byte{ - // 886 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6e, 0xe3, 0x44, - 0x14, 0xc6, 0x69, 0x9a, 0x36, 0x27, 0x6d, 0xaa, 0x1d, 0x76, 0x37, 0xae, 0x61, 0x21, 0x8a, 0x60, - 0xc9, 0x56, 0x22, 0x81, 0x2c, 0x57, 0x5c, 0x20, 0x6d, 0x77, 0x5b, 0x65, 0x59, 0x22, 0xad, 0xbc, - 0xa8, 0x17, 0xdc, 0x58, 0x53, 0x7b, 0xea, 0x8e, 0xea, 0xb1, 0x5d, 0x7b, 0x1c, 0x54, 0xf1, 0x02, - 0xdc, 0xf3, 0x00, 0x3c, 0x20, 0x6f, 0xc0, 0x15, 0xf2, 0xd8, 0x4e, 0x3c, 0xb1, 0x1d, 0x27, 0x2d, - 0x7b, 0x55, 0x65, 0xe6, 0x9c, 0xcf, 0x9f, 0xbf, 0xef, 0xfc, 0xb8, 0xd0, 0x63, 0xc4, 0xa2, 0x57, - 0x5e, 0x30, 0x9e, 0x7f, 0x3f, 0xbe, 0x8a, 0x42, 0xea, 0xb9, 0x23, 0x3f, 0xf0, 0xb8, 0x87, 0x0e, - 0xd2, 0x0b, 0xf1, 0x4b, 0xeb, 0xd9, 0x9e, 0x67, 0x3b, 0x64, 0x1c, 0xf8, 0xe6, 0x38, 0xe4, 0x98, - 0x47, 0x61, 0x12, 0xa6, 0x1d, 0xe7, 0xf2, 0xb1, 0x8b, 0x9d, 0x3b, 0x4e, 0xcd, 0xe4, 0x6a, 0xf0, - 0xcf, 0x2e, 0xb4, 0xce, 0x05, 0x24, 0x3a, 0x81, 0x56, 0x92, 0xa5, 0x2a, 0x7d, 0x65, 0xd8, 0x99, - 0xa0, 0x51, 0x82, 0x37, 0x0a, 0x7c, 0x73, 0xf4, 0x41, 0xdc, 0xe8, 0x69, 0x04, 0x3a, 0x81, 0x47, - 0x21, 0xc7, 0x01, 0x37, 0x38, 0x65, 0xc4, 0x60, 0xd4, 0x71, 0x68, 0xa8, 0x36, 0xfa, 0xca, 0x70, - 0x47, 0x3f, 0x12, 0x17, 0xbf, 0x52, 0x46, 0x66, 0xe2, 0x18, 0x3d, 0x87, 0x23, 0xe2, 0x5a, 0x52, - 0xe4, 0x8e, 0x88, 0x3c, 0x24, 0xae, 0x95, 0x8b, 0x7b, 0x0f, 0x87, 0x94, 0xd9, 0x06, 0xc3, 0x2e, - 0xf5, 0x8d, 0x80, 0xdc, 0xaa, 0x1d, 0x41, 0xe3, 0x64, 0x94, 0x7f, 0xc9, 0xd1, 0x79, 0x14, 0x92, - 0xb7, 0x0c, 0xdb, 0x64, 0x16, 0xc7, 0x45, 0x0e, 0xe6, 0xd4, 0x73, 0x75, 0x72, 0x1b, 0x91, 0x90, - 0x4f, 0x3f, 0xd1, 0x3b, 0x94, 0xd9, 0xe2, 0x46, 0x27, 0xb7, 0x31, 0xe2, 0x9c, 0x5a, 0x39, 0xc4, - 0x83, 0x2a, 0xc4, 0x0b, 0x6a, 0x11, 0xaf, 0x02, 0x71, 0x4e, 0xad, 0x05, 0xe2, 0x2f, 0xd0, 0x8d, - 0x39, 0x86, 0xbe, 0x43, 0x4d, 0x22, 0x20, 0x0f, 0x05, 0xe4, 0x57, 0x15, 0x24, 0x3f, 0x88, 0xc0, - 0x25, 0xd8, 0x01, 0x65, 0xf6, 0xe2, 0x0c, 0x5d, 0xc0, 0xa3, 0x18, 0xcd, 0xc4, 0xcc, 0x60, 0x98, - 0x9b, 0xd7, 0x02, 0xb0, 0x2b, 0x00, 0x5f, 0x54, 0x00, 0xbe, 0xc6, 0x8c, 0x04, 0x78, 0x16, 0x47, - 0x2f, 0x51, 0x63, 0x4e, 0xaf, 0x31, 0xcb, 0x4e, 0xd1, 0x4f, 0xd0, 0x5e, 0x28, 0xa9, 0x3e, 0x11, - 0x78, 0x5f, 0xca, 0x78, 0x05, 0x05, 0xa7, 0x8a, 0xbe, 0x9f, 0x49, 0x17, 0xe7, 0x2f, 0x74, 0x53, - 0x9f, 0x96, 0xe5, 0x17, 0xf4, 0x8a, 0xf3, 0x33, 0xa1, 0xd0, 0x8f, 0x00, 0x4b, 0x95, 0xd4, 0x9e, - 0x00, 0x38, 0x2e, 0x21, 0x90, 0x28, 0x31, 0x55, 0xf4, 0xf6, 0x42, 0x16, 0xf4, 0x26, 0xa9, 0x82, - 0x85, 0x26, 0xaa, 0x2a, 0xd2, 0xbf, 0x28, 0x49, 0xcf, 0x69, 0x31, 0x55, 0x84, 0xf3, 0x99, 0x08, - 0xa7, 0x6d, 0xd8, 0x0b, 0x12, 0x79, 0x4e, 0x01, 0xf6, 0x03, 0x12, 0xfa, 0x9e, 0x1b, 0x92, 0xc1, - 0x1f, 0xa0, 0xbd, 0x72, 0x5d, 0x8f, 0x63, 0x4e, 0xac, 0x82, 0x04, 0xa8, 0x0b, 0x0d, 0x6a, 0x89, - 0xe2, 0x6f, 0xeb, 0x0d, 0x6a, 0x21, 0x15, 0xf6, 0xe6, 0x24, 0x88, 0x7b, 0x43, 0x94, 0x76, 0x5b, - 0xcf, 0x7e, 0xa2, 0x97, 0xd0, 0xb4, 0x30, 0xc7, 0xa2, 0x8e, 0xeb, 0xb5, 0xd5, 0x45, 0xf0, 0xe0, - 0xcf, 0x06, 0x7c, 0xbe, 0xae, 0x7a, 0xd1, 0x33, 0x80, 0x94, 0xb4, 0xb1, 0xe0, 0xd1, 0x4e, 0x4f, - 0xde, 0x5a, 0xa8, 0x07, 0x7b, 0x5e, 0xc4, 0x0d, 0x8b, 0x06, 0x29, 0x9d, 0x96, 0x17, 0xf1, 0x37, - 0x34, 0x40, 0x3f, 0xaf, 0x36, 0x4e, 0x42, 0xeb, 0x79, 0x1d, 0xad, 0x04, 0x59, 0x6e, 0x99, 0xb3, - 0x7c, 0xe9, 0x34, 0xfb, 0x3b, 0xc3, 0xce, 0x64, 0x28, 0xe3, 0x54, 0x0b, 0x98, 0xab, 0xa0, 0x67, - 0x00, 0xbf, 0x63, 0x97, 0x1b, 0x0c, 0x87, 0x37, 0xa1, 0xba, 0xdb, 0x57, 0x86, 0xfb, 0x7a, 0x3b, - 0x3e, 0x99, 0xc5, 0x07, 0x92, 0x0f, 0x85, 0x52, 0xfa, 0xbf, 0x7c, 0x28, 0xf6, 0xb4, 0xec, 0x43, - 0x55, 0xcf, 0x3f, 0xc4, 0x07, 0x79, 0xdc, 0x94, 0xfa, 0x50, 0xf5, 0x58, 0x79, 0xd0, 0x9c, 0xe5, - 0x5b, 0x70, 0xbd, 0x0f, 0x45, 0xc0, 0x65, 0x27, 0xd6, 0xf8, 0xe0, 0xc1, 0x63, 0xd9, 0xce, 0xb4, - 0x09, 0x37, 0x77, 0xe0, 0x5b, 0xc9, 0x81, 0xea, 0x26, 0x4f, 0xb5, 0xff, 0x57, 0x81, 0xa7, 0xe5, - 0xc3, 0xf1, 0xde, 0xaa, 0x9f, 0x17, 0x46, 0x72, 0xc2, 0xa5, 0x5f, 0xcd, 0x25, 0x15, 0x5c, 0x1e, - 0xc6, 0xaf, 0xa4, 0xa1, 0x95, 0x48, 0x3e, 0x58, 0x57, 0xfa, 0x69, 0x6a, 0x6e, 0x76, 0xd5, 0xa8, - 0x7d, 0x07, 0xc7, 0x32, 0x42, 0x6e, 0x80, 0x6d, 0x21, 0xf9, 0x44, 0x92, 0xbc, 0x66, 0x30, 0xa6, - 0xba, 0xff, 0xd5, 0x80, 0xcf, 0xd6, 0xec, 0x90, 0x7b, 0x8b, 0xff, 0xbe, 0x6c, 0x83, 0x25, 0xc4, - 0xbe, 0xae, 0x21, 0x96, 0x9a, 0xb0, 0xba, 0xbb, 0xde, 0xad, 0xce, 0xff, 0xc4, 0x89, 0x6f, 0xd6, - 0x39, 0x91, 0x87, 0xcd, 0xaf, 0x81, 0x6d, 0x0c, 0x11, 0x5d, 0xf4, 0x11, 0x0c, 0x59, 0xc5, 0x5d, - 0x31, 0xa4, 0x70, 0xfd, 0x70, 0x43, 0xe2, 0xb9, 0xb1, 0x81, 0x21, 0x15, 0x4f, 0xd6, 0xbb, 0x73, - 0x6a, 0xad, 0x18, 0x22, 0x21, 0xd6, 0x18, 0x52, 0x80, 0xed, 0xe4, 0xf0, 0x6a, 0x0c, 0x99, 0xfc, - 0xdd, 0x84, 0xdd, 0x58, 0x95, 0x00, 0x59, 0xf0, 0xa4, 0x74, 0x57, 0xa2, 0x2d, 0x3e, 0x07, 0xb5, - 0xba, 0xc5, 0x8c, 0x74, 0x38, 0x5a, 0x99, 0x46, 0x68, 0xa3, 0x2f, 0x39, 0xad, 0x7a, 0xd0, 0x65, - 0xcc, 0x8b, 0x6b, 0x6d, 0x8b, 0xcf, 0x4e, 0xad, 0x6e, 0x95, 0x21, 0x0c, 0x8f, 0xcb, 0xfa, 0x19, - 0x6d, 0xfe, 0xdd, 0xa8, 0xd5, 0x4c, 0x8e, 0xec, 0x11, 0x85, 0xc6, 0x78, 0x51, 0xf1, 0x1e, 0xf5, - 0x8f, 0x28, 0x40, 0x7d, 0x07, 0xcd, 0x77, 0xd4, 0x71, 0xd0, 0xa7, 0x72, 0xdc, 0x19, 0xf3, 0xf9, - 0x9d, 0x56, 0x76, 0x78, 0xfa, 0xc3, 0x6f, 0x13, 0x9b, 0xf2, 0xeb, 0xe8, 0x72, 0x64, 0x7a, 0x6c, - 0x1c, 0x07, 0xe0, 0x2b, 0x2f, 0x20, 0x6e, 0x48, 0xcd, 0x70, 0x9c, 0xfd, 0x9b, 0xe3, 0xdf, 0xd8, - 0xe3, 0x7c, 0xee, 0x65, 0x4b, 0xfc, 0x79, 0xf9, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcd, 0x53, - 0x4a, 0x96, 0x49, 0x0d, 0x00, 0x00, +var File_medifor_v1_fusion_proto protoreflect.FileDescriptor + +var file_medifor_v1_fusion_proto_rawDesc = []byte{ + 0x0a, 0x17, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x19, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xeb, 0x05, 0x0a, 0x06, + 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x12, 0x50, 0x0a, 0x0d, 0x69, 0x6d, 0x67, 0x5f, 0x6d, 0x61, + 0x6e, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, + 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6d, 0x67, + 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x71, 0x12, 0x50, 0x0a, 0x0d, 0x76, 0x69, 0x64, 0x5f, + 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, + 0x75, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x76, + 0x69, 0x64, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x71, 0x12, 0x4c, 0x0a, 0x0e, 0x69, 0x6d, + 0x67, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x67, 0x53, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x56, 0x0a, 0x11, 0x69, 0x6d, 0x67, 0x5f, + 0x63, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, + 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, + 0x52, 0x0e, 0x69, 0x6d, 0x67, 0x43, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, + 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6d, 0x67, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x69, 0x6d, 0x67, 0x4d, 0x61, 0x6e, 0x69, 0x70, + 0x12, 0x3e, 0x0a, 0x09, 0x76, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x76, 0x69, 0x64, 0x4d, 0x61, 0x6e, 0x69, 0x70, + 0x12, 0x3a, 0x0a, 0x0a, 0x69, 0x6d, 0x67, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x48, + 0x01, 0x52, 0x09, 0x69, 0x6d, 0x67, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x0d, + 0x69, 0x6d, 0x67, 0x5f, 0x63, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x6d, 0x67, 0x43, 0x61, 0x6d, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0a, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0x0a, 0x1a, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 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, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x88, 0x02, 0x0a, 0x1c, 0x46, 0x75, 0x73, 0x65, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, + 0x4a, 0x0a, 0x0d, 0x69, 0x6d, 0x67, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0b, + 0x69, 0x6d, 0x67, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x09, 0x69, + 0x6d, 0x67, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, + 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x69, 0x6d, 0x67, 0x4d, 0x61, 0x6e, + 0x69, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x77, 0x61, 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, + 0x73, 0x22, 0x7b, 0x0a, 0x1a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 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, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, + 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x88, + 0x02, 0x0a, 0x1c, 0x46, 0x75, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, + 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x4a, 0x0a, 0x0d, 0x76, 0x69, 0x64, 0x5f, 0x6d, + 0x61, 0x6e, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x4d, 0x61, 0x6e, 0x69, 0x70, + 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x09, 0x76, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x70, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x08, 0x76, 0x69, 0x64, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x61, + 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x77, 0x61, 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x6f, 0x0a, 0x14, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 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, 0x2d, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, + 0x6c, 0x69, 0x63, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfa, 0x01, 0x0a, 0x16, 0x46, + 0x75, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x46, 0x0a, + 0x0e, 0x69, 0x6d, 0x67, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x69, 0x6d, 0x67, 0x53, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6d, 0x67, 0x5f, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x09, 0x69, + 0x6d, 0x67, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x61, 0x6e, 0x74, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x77, 0x61, + 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x79, 0x0a, 0x19, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 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, 0x32, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x93, 0x02, 0x0a, 0x1b, 0x46, 0x75, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x50, 0x0a, 0x11, 0x69, 0x6d, + 0x67, 0x5f, 0x63, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x71, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x69, 0x6d, + 0x67, 0x43, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x4b, 0x0a, 0x0d, + 0x69, 0x6d, 0x67, 0x5f, 0x63, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0b, 0x69, 0x6d, + 0x67, 0x43, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x61, 0x6e, + 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x77, + 0x61, 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x79, 0x0a, 0x19, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x64, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 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, + 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x93, 0x02, 0x0a, 0x1b, 0x46, 0x75, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x50, 0x0a, 0x11, 0x76, + 0x69, 0x64, 0x5f, 0x63, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x71, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x61, 0x6d, 0x65, 0x72, + 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x76, + 0x69, 0x64, 0x43, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x4b, 0x0a, + 0x0d, 0x76, 0x69, 0x64, 0x5f, 0x63, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0b, 0x76, + 0x69, 0x64, 0x43, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x61, + 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x77, 0x61, 0x6e, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x32, 0x9f, 0x04, 0x0a, 0x05, 0x46, 0x75, + 0x73, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x15, 0x46, 0x75, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x65, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x6e, + 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0f, 0x46, 0x75, 0x73, + 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x24, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x65, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x64, 0x0a, + 0x15, 0x46, 0x75, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, + 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x61, 0x0a, 0x14, 0x46, 0x75, 0x73, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x29, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x65, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, + 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x61, 0x0a, 0x14, 0x46, 0x75, 0x73, 0x65, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x29, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, + 0x73, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x61, + 0x6d, 0x65, 0x72, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x04, 0x4b, 0x69, 0x6c, + 0x6c, 0x12, 0x13, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x34, 0x5a, 0x32, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x66, + 0x6f, 0x72, 0x65, 0x6e, 0x73, 0x69, 0x63, 0x73, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_medifor_v1_fusion_proto_rawDescOnce sync.Once + file_medifor_v1_fusion_proto_rawDescData = file_medifor_v1_fusion_proto_rawDesc +) + +func file_medifor_v1_fusion_proto_rawDescGZIP() []byte { + file_medifor_v1_fusion_proto_rawDescOnce.Do(func() { + file_medifor_v1_fusion_proto_rawDescData = protoimpl.X.CompressGZIP(file_medifor_v1_fusion_proto_rawDescData) + }) + return file_medifor_v1_fusion_proto_rawDescData +} + +var file_medifor_v1_fusion_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_medifor_v1_fusion_proto_goTypes = []interface{}{ + (*Fusion)(nil), // 0: mediforproto.Fusion + (*AnnotatedImageManipulation)(nil), // 1: mediforproto.AnnotatedImageManipulation + (*FuseImageManipulationRequest)(nil), // 2: mediforproto.FuseImageManipulationRequest + (*AnnotatedVideoManipulation)(nil), // 3: mediforproto.AnnotatedVideoManipulation + (*FuseVideoManipulationRequest)(nil), // 4: mediforproto.FuseVideoManipulationRequest + (*AnnotatedImageSplice)(nil), // 5: mediforproto.AnnotatedImageSplice + (*FuseImageSpliceRequest)(nil), // 6: mediforproto.FuseImageSpliceRequest + (*AnnotatedImageCameraMatch)(nil), // 7: mediforproto.AnnotatedImageCameraMatch + (*FuseImageCameraMatchRequest)(nil), // 8: mediforproto.FuseImageCameraMatchRequest + (*AnnotatedVideoCameraMatch)(nil), // 9: mediforproto.AnnotatedVideoCameraMatch + (*FuseVideoCameraMatchRequest)(nil), // 10: mediforproto.FuseVideoCameraMatchRequest + (*status.Status)(nil), // 11: google.rpc.Status + (*ImageManipulation)(nil), // 12: mediforproto.ImageManipulation + (*VideoManipulation)(nil), // 13: mediforproto.VideoManipulation + (*ImageSplice)(nil), // 14: mediforproto.ImageSplice + (*ImageCameraMatch)(nil), // 15: mediforproto.ImageCameraMatch + (*ImageManipulationRequest)(nil), // 16: mediforproto.ImageManipulationRequest + (*VideoManipulationRequest)(nil), // 17: mediforproto.VideoManipulationRequest + (*ImageSpliceRequest)(nil), // 18: mediforproto.ImageSpliceRequest + (*ImageCameraMatchRequest)(nil), // 19: mediforproto.ImageCameraMatchRequest + (*VideoCameraMatch)(nil), // 20: mediforproto.VideoCameraMatch + (*VideoCameraMatchRequest)(nil), // 21: mediforproto.VideoCameraMatchRequest + (*Empty)(nil), // 22: mediforproto.Empty +} +var file_medifor_v1_fusion_proto_depIdxs = []int32{ + 11, // 0: mediforproto.Fusion.status:type_name -> google.rpc.Status + 2, // 1: mediforproto.Fusion.img_manip_req:type_name -> mediforproto.FuseImageManipulationRequest + 4, // 2: mediforproto.Fusion.vid_manip_req:type_name -> mediforproto.FuseVideoManipulationRequest + 6, // 3: mediforproto.Fusion.img_splice_req:type_name -> mediforproto.FuseImageSpliceRequest + 8, // 4: mediforproto.Fusion.img_cam_match_req:type_name -> mediforproto.FuseImageCameraMatchRequest + 12, // 5: mediforproto.Fusion.img_manip:type_name -> mediforproto.ImageManipulation + 13, // 6: mediforproto.Fusion.vid_manip:type_name -> mediforproto.VideoManipulation + 14, // 7: mediforproto.Fusion.img_splice:type_name -> mediforproto.ImageSplice + 15, // 8: mediforproto.Fusion.img_cam_match:type_name -> mediforproto.ImageCameraMatch + 12, // 9: mediforproto.AnnotatedImageManipulation.data:type_name -> mediforproto.ImageManipulation + 16, // 10: mediforproto.FuseImageManipulationRequest.img_manip_req:type_name -> mediforproto.ImageManipulationRequest + 1, // 11: mediforproto.FuseImageManipulationRequest.img_manip:type_name -> mediforproto.AnnotatedImageManipulation + 13, // 12: mediforproto.AnnotatedVideoManipulation.data:type_name -> mediforproto.VideoManipulation + 17, // 13: mediforproto.FuseVideoManipulationRequest.vid_manip_req:type_name -> mediforproto.VideoManipulationRequest + 3, // 14: mediforproto.FuseVideoManipulationRequest.vid_manip:type_name -> mediforproto.AnnotatedVideoManipulation + 14, // 15: mediforproto.AnnotatedImageSplice.data:type_name -> mediforproto.ImageSplice + 18, // 16: mediforproto.FuseImageSpliceRequest.img_splice_req:type_name -> mediforproto.ImageSpliceRequest + 5, // 17: mediforproto.FuseImageSpliceRequest.img_splice:type_name -> mediforproto.AnnotatedImageSplice + 15, // 18: mediforproto.AnnotatedImageCameraMatch.data:type_name -> mediforproto.ImageCameraMatch + 19, // 19: mediforproto.FuseImageCameraMatchRequest.img_cam_match_req:type_name -> mediforproto.ImageCameraMatchRequest + 7, // 20: mediforproto.FuseImageCameraMatchRequest.img_cam_match:type_name -> mediforproto.AnnotatedImageCameraMatch + 20, // 21: mediforproto.AnnotatedVideoCameraMatch.data:type_name -> mediforproto.VideoCameraMatch + 21, // 22: mediforproto.FuseVideoCameraMatchRequest.vid_cam_match_req:type_name -> mediforproto.VideoCameraMatchRequest + 9, // 23: mediforproto.FuseVideoCameraMatchRequest.vid_cam_match:type_name -> mediforproto.AnnotatedVideoCameraMatch + 2, // 24: mediforproto.Fuser.FuseImageManipulation:input_type -> mediforproto.FuseImageManipulationRequest + 6, // 25: mediforproto.Fuser.FuseImageSplice:input_type -> mediforproto.FuseImageSpliceRequest + 4, // 26: mediforproto.Fuser.FuseVideoManipulation:input_type -> mediforproto.FuseVideoManipulationRequest + 8, // 27: mediforproto.Fuser.FuseImageCameraMatch:input_type -> mediforproto.FuseImageCameraMatchRequest + 10, // 28: mediforproto.Fuser.FuseVideoCameraMatch:input_type -> mediforproto.FuseVideoCameraMatchRequest + 22, // 29: mediforproto.Fuser.Kill:input_type -> mediforproto.Empty + 12, // 30: mediforproto.Fuser.FuseImageManipulation:output_type -> mediforproto.ImageManipulation + 14, // 31: mediforproto.Fuser.FuseImageSplice:output_type -> mediforproto.ImageSplice + 13, // 32: mediforproto.Fuser.FuseVideoManipulation:output_type -> mediforproto.VideoManipulation + 15, // 33: mediforproto.Fuser.FuseImageCameraMatch:output_type -> mediforproto.ImageCameraMatch + 20, // 34: mediforproto.Fuser.FuseVideoCameraMatch:output_type -> mediforproto.VideoCameraMatch + 22, // 35: mediforproto.Fuser.Kill:output_type -> mediforproto.Empty + 30, // [30:36] is the sub-list for method output_type + 24, // [24:30] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name +} + +func init() { file_medifor_v1_fusion_proto_init() } +func file_medifor_v1_fusion_proto_init() { + if File_medifor_v1_fusion_proto != nil { + return + } + file_medifor_v1_analytic_proto_init() + if !protoimpl.UnsafeEnabled { + file_medifor_v1_fusion_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Fusion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_fusion_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotatedImageManipulation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_fusion_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FuseImageManipulationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_fusion_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotatedVideoManipulation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_fusion_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FuseVideoManipulationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_fusion_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotatedImageSplice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_fusion_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FuseImageSpliceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_fusion_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotatedImageCameraMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_fusion_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FuseImageCameraMatchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_fusion_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotatedVideoCameraMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_fusion_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FuseVideoCameraMatchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_medifor_v1_fusion_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Fusion_ImgManipReq)(nil), + (*Fusion_VidManipReq)(nil), + (*Fusion_ImgSpliceReq)(nil), + (*Fusion_ImgCamMatchReq)(nil), + (*Fusion_ImgManip)(nil), + (*Fusion_VidManip)(nil), + (*Fusion_ImgSplice)(nil), + (*Fusion_ImgCamMatch)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_medifor_v1_fusion_proto_rawDesc, + NumEnums: 0, + NumMessages: 11, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_medifor_v1_fusion_proto_goTypes, + DependencyIndexes: file_medifor_v1_fusion_proto_depIdxs, + MessageInfos: file_medifor_v1_fusion_proto_msgTypes, + }.Build() + File_medifor_v1_fusion_proto = out.File + file_medifor_v1_fusion_proto_rawDesc = nil + file_medifor_v1_fusion_proto_goTypes = nil + file_medifor_v1_fusion_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +const _ = grpc.SupportPackageIsVersion6 // FuserClient is the client API for Fuser service. // @@ -986,10 +1454,10 @@ type FuserClient interface { } type fuserClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewFuserClient(cc *grpc.ClientConn) FuserClient { +func NewFuserClient(cc grpc.ClientConnInterface) FuserClient { return &fuserClient{cc} } @@ -1061,22 +1529,22 @@ type FuserServer interface { type UnimplementedFuserServer struct { } -func (*UnimplementedFuserServer) FuseImageManipulation(ctx context.Context, req *FuseImageManipulationRequest) (*ImageManipulation, error) { +func (*UnimplementedFuserServer) FuseImageManipulation(context.Context, *FuseImageManipulationRequest) (*ImageManipulation, error) { return nil, status1.Errorf(codes.Unimplemented, "method FuseImageManipulation not implemented") } -func (*UnimplementedFuserServer) FuseImageSplice(ctx context.Context, req *FuseImageSpliceRequest) (*ImageSplice, error) { +func (*UnimplementedFuserServer) FuseImageSplice(context.Context, *FuseImageSpliceRequest) (*ImageSplice, error) { return nil, status1.Errorf(codes.Unimplemented, "method FuseImageSplice not implemented") } -func (*UnimplementedFuserServer) FuseVideoManipulation(ctx context.Context, req *FuseVideoManipulationRequest) (*VideoManipulation, error) { +func (*UnimplementedFuserServer) FuseVideoManipulation(context.Context, *FuseVideoManipulationRequest) (*VideoManipulation, error) { return nil, status1.Errorf(codes.Unimplemented, "method FuseVideoManipulation not implemented") } -func (*UnimplementedFuserServer) FuseImageCameraMatch(ctx context.Context, req *FuseImageCameraMatchRequest) (*ImageCameraMatch, error) { +func (*UnimplementedFuserServer) FuseImageCameraMatch(context.Context, *FuseImageCameraMatchRequest) (*ImageCameraMatch, error) { return nil, status1.Errorf(codes.Unimplemented, "method FuseImageCameraMatch not implemented") } -func (*UnimplementedFuserServer) FuseVideoCameraMatch(ctx context.Context, req *FuseVideoCameraMatchRequest) (*VideoCameraMatch, error) { +func (*UnimplementedFuserServer) FuseVideoCameraMatch(context.Context, *FuseVideoCameraMatchRequest) (*VideoCameraMatch, error) { return nil, status1.Errorf(codes.Unimplemented, "method FuseVideoCameraMatch not implemented") } -func (*UnimplementedFuserServer) Kill(ctx context.Context, req *Empty) (*Empty, error) { +func (*UnimplementedFuserServer) Kill(context.Context, *Empty) (*Empty, error) { return nil, status1.Errorf(codes.Unimplemented, "method Kill not implemented") } diff --git a/pkg/mediforproto/kill.pb.go b/pkg/mediforproto/kill.pb.go index 5cf3419..76190f0 100644 --- a/pkg/mediforproto/kill.pb.go +++ b/pkg/mediforproto/kill.pb.go @@ -1,52 +1,93 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 // source: medifor/v1/kill.proto package mediforproto import ( context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -func init() { proto.RegisterFile("medifor/v1/kill.proto", fileDescriptor_d8c4e3e1b4a500bc) } - -var fileDescriptor_d8c4e3e1b4a500bc = []byte{ - // 160 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcd, 0x4d, 0x4d, 0xc9, - 0x4c, 0xcb, 0x2f, 0xd2, 0x2f, 0x33, 0xd4, 0xcf, 0xce, 0xcc, 0xc9, 0xd1, 0x2b, 0x28, 0xca, 0x2f, - 0xc9, 0x17, 0xe2, 0x81, 0x0a, 0x83, 0x79, 0x52, 0x92, 0x48, 0x8a, 0x12, 0xf3, 0x12, 0x73, 0x2a, - 0x4b, 0x32, 0x93, 0x21, 0x0a, 0x8d, 0x6c, 0xb8, 0x38, 0xbc, 0x33, 0x73, 0x72, 0x12, 0x93, 0x72, - 0x52, 0x85, 0x0c, 0xb8, 0x58, 0x40, 0x6c, 0x21, 0x61, 0x3d, 0x64, 0xdd, 0x7a, 0xae, 0xb9, 0x05, - 0x25, 0x95, 0x52, 0xd8, 0x04, 0x9d, 0x22, 0xb9, 0x24, 0x92, 0xf3, 0x73, 0x91, 0x64, 0xd2, 0x8b, - 0x12, 0x73, 0x21, 0x26, 0x3b, 0x71, 0x82, 0xcc, 0x0a, 0x00, 0x31, 0xa3, 0x8c, 0xd2, 0x33, 0x4b, - 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x6a, 0x13, 0xd3, 0xf2, 0x8b, 0x52, 0xf3, - 0x8a, 0x33, 0x93, 0x8b, 0xf5, 0x61, 0x2e, 0x2b, 0xc8, 0x4e, 0xd7, 0x47, 0xb6, 0x20, 0x89, 0x0d, - 0x4c, 0x19, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x86, 0x19, 0xbb, 0xe1, 0x00, 0x00, 0x00, +var File_medifor_v1_kill_proto protoreflect.FileDescriptor + +var file_medifor_v1_kill_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x69, 0x6c, + 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, + 0x31, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x32, 0x3c, 0x0a, 0x08, 0x4b, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x04, + 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x13, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x59, + 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x61, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x09, 0x4b, 0x69, 0x6c, 0x6c, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x66, 0x6f, 0x72, 0x65, 0x6e, 0x73, 0x69, 0x63, 0x73, + 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var file_medifor_v1_kill_proto_goTypes = []interface{}{ + (*Empty)(nil), // 0: mediforproto.Empty +} +var file_medifor_v1_kill_proto_depIdxs = []int32{ + 0, // 0: mediforproto.Killable.Kill:input_type -> mediforproto.Empty + 0, // 1: mediforproto.Killable.Kill:output_type -> mediforproto.Empty + 1, // [1:2] is the sub-list for method output_type + 0, // [0:1] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_medifor_v1_kill_proto_init() } +func file_medifor_v1_kill_proto_init() { + if File_medifor_v1_kill_proto != nil { + return + } + file_medifor_v1_analytic_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_medifor_v1_kill_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_medifor_v1_kill_proto_goTypes, + DependencyIndexes: file_medifor_v1_kill_proto_depIdxs, + }.Build() + File_medifor_v1_kill_proto = out.File + file_medifor_v1_kill_proto_rawDesc = nil + file_medifor_v1_kill_proto_goTypes = nil + file_medifor_v1_kill_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +const _ = grpc.SupportPackageIsVersion6 // KillableClient is the client API for Killable service. // @@ -56,10 +97,10 @@ type KillableClient interface { } type killableClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewKillableClient(cc *grpc.ClientConn) KillableClient { +func NewKillableClient(cc grpc.ClientConnInterface) KillableClient { return &killableClient{cc} } @@ -81,7 +122,7 @@ type KillableServer interface { type UnimplementedKillableServer struct { } -func (*UnimplementedKillableServer) Kill(ctx context.Context, req *Empty) (*Empty, error) { +func (*UnimplementedKillableServer) Kill(context.Context, *Empty) (*Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Kill not implemented") } diff --git a/pkg/mediforproto/pipeline.pb.go b/pkg/mediforproto/pipeline.pb.go index dcd9623..cbc5680 100644 --- a/pkg/mediforproto/pipeline.pb.go +++ b/pkg/mediforproto/pipeline.pb.go @@ -1,28 +1,28 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 // source: medifor/v1/pipeline.proto package mediforproto import ( context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type DetectionStage int32 @@ -33,26 +33,47 @@ const ( DetectionStage_DETECTION_STAGE_FINISHED DetectionStage = 3 ) -var DetectionStage_name = map[int32]string{ - 0: "DETECTION_STAGE_NONE", - 1: "DETECTION_STAGE_QUEUED", - 2: "DETECTION_STAGE_CLAIMED", - 3: "DETECTION_STAGE_FINISHED", -} +// Enum value maps for DetectionStage. +var ( + DetectionStage_name = map[int32]string{ + 0: "DETECTION_STAGE_NONE", + 1: "DETECTION_STAGE_QUEUED", + 2: "DETECTION_STAGE_CLAIMED", + 3: "DETECTION_STAGE_FINISHED", + } + DetectionStage_value = map[string]int32{ + "DETECTION_STAGE_NONE": 0, + "DETECTION_STAGE_QUEUED": 1, + "DETECTION_STAGE_CLAIMED": 2, + "DETECTION_STAGE_FINISHED": 3, + } +) -var DetectionStage_value = map[string]int32{ - "DETECTION_STAGE_NONE": 0, - "DETECTION_STAGE_QUEUED": 1, - "DETECTION_STAGE_CLAIMED": 2, - "DETECTION_STAGE_FINISHED": 3, +func (x DetectionStage) Enum() *DetectionStage { + p := new(DetectionStage) + *p = x + return p } func (x DetectionStage) String() string { - return proto.EnumName(DetectionStage_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DetectionStage) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_pipeline_proto_enumTypes[0].Descriptor() +} + +func (DetectionStage) Type() protoreflect.EnumType { + return &file_medifor_v1_pipeline_proto_enumTypes[0] +} + +func (x DetectionStage) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } +// Deprecated: Use DetectionStage.Descriptor instead. func (DetectionStage) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{0} + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{0} } type DetectionStatus int32 @@ -63,24 +84,45 @@ const ( DetectionStatus_DETECTION_STATUS_FAILURE DetectionStatus = 2 ) -var DetectionStatus_name = map[int32]string{ - 0: "DETECTION_STATUS_NONE", - 1: "DETECTION_STATUS_SUCCESS", - 2: "DETECTION_STATUS_FAILURE", -} +// Enum value maps for DetectionStatus. +var ( + DetectionStatus_name = map[int32]string{ + 0: "DETECTION_STATUS_NONE", + 1: "DETECTION_STATUS_SUCCESS", + 2: "DETECTION_STATUS_FAILURE", + } + DetectionStatus_value = map[string]int32{ + "DETECTION_STATUS_NONE": 0, + "DETECTION_STATUS_SUCCESS": 1, + "DETECTION_STATUS_FAILURE": 2, + } +) -var DetectionStatus_value = map[string]int32{ - "DETECTION_STATUS_NONE": 0, - "DETECTION_STATUS_SUCCESS": 1, - "DETECTION_STATUS_FAILURE": 2, +func (x DetectionStatus) Enum() *DetectionStatus { + p := new(DetectionStatus) + *p = x + return p } func (x DetectionStatus) String() string { - return proto.EnumName(DetectionStatus_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DetectionStatus) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_pipeline_proto_enumTypes[1].Descriptor() +} + +func (DetectionStatus) Type() protoreflect.EnumType { + return &file_medifor_v1_pipeline_proto_enumTypes[1] +} + +func (x DetectionStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } +// Deprecated: Use DetectionStatus.Descriptor instead. func (DetectionStatus) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{1} + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{1} } type SortKey int32 @@ -91,24 +133,45 @@ const ( SortKey_META_QUERY SortKey = 2 ) -var SortKey_name = map[int32]string{ - 0: "SCORE", - 1: "META", - 2: "META_QUERY", -} +// Enum value maps for SortKey. +var ( + SortKey_name = map[int32]string{ + 0: "SCORE", + 1: "META", + 2: "META_QUERY", + } + SortKey_value = map[string]int32{ + "SCORE": 0, + "META": 1, + "META_QUERY": 2, + } +) -var SortKey_value = map[string]int32{ - "SCORE": 0, - "META": 1, - "META_QUERY": 2, +func (x SortKey) Enum() *SortKey { + p := new(SortKey) + *p = x + return p } func (x SortKey) String() string { - return proto.EnumName(SortKey_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SortKey) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_pipeline_proto_enumTypes[2].Descriptor() +} + +func (SortKey) Type() protoreflect.EnumType { + return &file_medifor_v1_pipeline_proto_enumTypes[2] +} + +func (x SortKey) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } +// Deprecated: Use SortKey.Descriptor instead. func (SortKey) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{2} + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{2} } type FusionThresholdType int32 @@ -119,24 +182,45 @@ const ( FusionThresholdType_FUSION_GT_THRESHOLD FusionThresholdType = 2 ) -var FusionThresholdType_name = map[int32]string{ - 0: "FUSION_NO_THRESHOLD", - 1: "FUSION_LT_THRESHOLD", - 2: "FUSION_GT_THRESHOLD", -} +// Enum value maps for FusionThresholdType. +var ( + FusionThresholdType_name = map[int32]string{ + 0: "FUSION_NO_THRESHOLD", + 1: "FUSION_LT_THRESHOLD", + 2: "FUSION_GT_THRESHOLD", + } + FusionThresholdType_value = map[string]int32{ + "FUSION_NO_THRESHOLD": 0, + "FUSION_LT_THRESHOLD": 1, + "FUSION_GT_THRESHOLD": 2, + } +) -var FusionThresholdType_value = map[string]int32{ - "FUSION_NO_THRESHOLD": 0, - "FUSION_LT_THRESHOLD": 1, - "FUSION_GT_THRESHOLD": 2, +func (x FusionThresholdType) Enum() *FusionThresholdType { + p := new(FusionThresholdType) + *p = x + return p } func (x FusionThresholdType) String() string { - return proto.EnumName(FusionThresholdType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FusionThresholdType) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_pipeline_proto_enumTypes[3].Descriptor() +} + +func (FusionThresholdType) Type() protoreflect.EnumType { + return &file_medifor_v1_pipeline_proto_enumTypes[3] +} + +func (x FusionThresholdType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } +// Deprecated: Use FusionThresholdType.Descriptor instead. func (FusionThresholdType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{3} + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{3} } type MediaType int32 @@ -148,26 +232,47 @@ const ( MediaType_FUSION_VIDEO MediaType = 3 ) -var MediaType_name = map[int32]string{ - 0: "IMAGE", - 1: "VIDEO", - 2: "FUSION_IMAGE", - 3: "FUSION_VIDEO", -} +// Enum value maps for MediaType. +var ( + MediaType_name = map[int32]string{ + 0: "IMAGE", + 1: "VIDEO", + 2: "FUSION_IMAGE", + 3: "FUSION_VIDEO", + } + MediaType_value = map[string]int32{ + "IMAGE": 0, + "VIDEO": 1, + "FUSION_IMAGE": 2, + "FUSION_VIDEO": 3, + } +) -var MediaType_value = map[string]int32{ - "IMAGE": 0, - "VIDEO": 1, - "FUSION_IMAGE": 2, - "FUSION_VIDEO": 3, +func (x MediaType) Enum() *MediaType { + p := new(MediaType) + *p = x + return p } func (x MediaType) String() string { - return proto.EnumName(MediaType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MediaType) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_pipeline_proto_enumTypes[4].Descriptor() +} + +func (MediaType) Type() protoreflect.EnumType { + return &file_medifor_v1_pipeline_proto_enumTypes[4] +} + +func (x MediaType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } +// Deprecated: Use MediaType.Descriptor instead. func (MediaType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{4} + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{4} } type DetectionListVerbosity int32 @@ -177,27 +282,52 @@ const ( DetectionListVerbosity_DETECTION_VERBOSITY_MINIMAL DetectionListVerbosity = 1 ) -var DetectionListVerbosity_name = map[int32]string{ - 0: "DETECTION_VERBOSITY_FULL", - 1: "DETECTION_VERBOSITY_MINIMAL", -} +// Enum value maps for DetectionListVerbosity. +var ( + DetectionListVerbosity_name = map[int32]string{ + 0: "DETECTION_VERBOSITY_FULL", + 1: "DETECTION_VERBOSITY_MINIMAL", + } + DetectionListVerbosity_value = map[string]int32{ + "DETECTION_VERBOSITY_FULL": 0, + "DETECTION_VERBOSITY_MINIMAL": 1, + } +) -var DetectionListVerbosity_value = map[string]int32{ - "DETECTION_VERBOSITY_FULL": 0, - "DETECTION_VERBOSITY_MINIMAL": 1, +func (x DetectionListVerbosity) Enum() *DetectionListVerbosity { + p := new(DetectionListVerbosity) + *p = x + return p } func (x DetectionListVerbosity) String() string { - return proto.EnumName(DetectionListVerbosity_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DetectionListVerbosity) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_pipeline_proto_enumTypes[5].Descriptor() +} + +func (DetectionListVerbosity) Type() protoreflect.EnumType { + return &file_medifor_v1_pipeline_proto_enumTypes[5] +} + +func (x DetectionListVerbosity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } +// Deprecated: Use DetectionListVerbosity.Descriptor instead. func (DetectionListVerbosity) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{5} + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{5} } // SortCol identifies the column to sort by and whether to sort in ascending order // Next tag: 6 type SortCol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Column to sort on Key SortKey `protobuf:"varint,1,opt,name=key,proto3,enum=mediforproto.SortKey" json:"key,omitempty"` // Bool for sorting in ascending order (if false sorts in descending order) @@ -205,61 +335,65 @@ type SortCol struct { // What type to cast the key into if necessary TypeCast string `protobuf:"bytes,3,opt,name=type_cast,json=typeCast,proto3" json:"type_cast,omitempty"` // Metadata key to sort by if using metadata - MetaKey string `protobuf:"bytes,4,opt,name=meta_key,json=metaKey,proto3" json:"meta_key,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + MetaKey string `protobuf:"bytes,4,opt,name=meta_key,json=metaKey,proto3" json:"meta_key,omitempty"` } -func (m *SortCol) Reset() { *m = SortCol{} } -func (m *SortCol) String() string { return proto.CompactTextString(m) } -func (*SortCol) ProtoMessage() {} -func (*SortCol) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{0} +func (x *SortCol) Reset() { + *x = SortCol{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SortCol) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SortCol.Unmarshal(m, b) +func (x *SortCol) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SortCol) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SortCol.Marshal(b, m, deterministic) -} -func (m *SortCol) XXX_Merge(src proto.Message) { - xxx_messageInfo_SortCol.Merge(m, src) -} -func (m *SortCol) XXX_Size() int { - return xxx_messageInfo_SortCol.Size(m) -} -func (m *SortCol) XXX_DiscardUnknown() { - xxx_messageInfo_SortCol.DiscardUnknown(m) + +func (*SortCol) ProtoMessage() {} + +func (x *SortCol) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SortCol proto.InternalMessageInfo +// Deprecated: Use SortCol.ProtoReflect.Descriptor instead. +func (*SortCol) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{0} +} -func (m *SortCol) GetKey() SortKey { - if m != nil { - return m.Key +func (x *SortCol) GetKey() SortKey { + if x != nil { + return x.Key } return SortKey_SCORE } -func (m *SortCol) GetIsAsc() bool { - if m != nil { - return m.IsAsc +func (x *SortCol) GetIsAsc() bool { + if x != nil { + return x.IsAsc } return false } -func (m *SortCol) GetTypeCast() string { - if m != nil { - return m.TypeCast +func (x *SortCol) GetTypeCast() string { + if x != nil { + return x.TypeCast } return "" } -func (m *SortCol) GetMetaKey() string { - if m != nil { - return m.MetaKey +func (x *SortCol) GetMetaKey() string { + if x != nil { + return x.MetaKey } return "" } @@ -268,6 +402,10 @@ func (m *SortCol) GetMetaKey() string { // analytic ids and fusion ids. TODO: if none specified, default to all? // Next Tag: 9 type DetectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // An optional ID for this detection. If not provided, one will be assigned. // Must be unique from any other provided ID: a collision will prevent // this request from being fulfilled. @@ -286,89 +424,93 @@ type DetectionRequest struct { Meta map[string]string `protobuf:"bytes,7,rep,name=meta,proto3" json:"meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Timeout in seconds after which an analytic worker will die waiting for the // analytic to respond. Default is "no timeout" (0 seconds). - AnalyticTimeoutSec int64 `protobuf:"varint,5,opt,name=analytic_timeout_sec,json=analyticTimeoutSec,proto3" json:"analytic_timeout_sec,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + AnalyticTimeoutSec int64 `protobuf:"varint,5,opt,name=analytic_timeout_sec,json=analyticTimeoutSec,proto3" json:"analytic_timeout_sec,omitempty"` } -func (m *DetectionRequest) Reset() { *m = DetectionRequest{} } -func (m *DetectionRequest) String() string { return proto.CompactTextString(m) } -func (*DetectionRequest) ProtoMessage() {} -func (*DetectionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{1} +func (x *DetectionRequest) Reset() { + *x = DetectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DetectionRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DetectionRequest.Unmarshal(m, b) -} -func (m *DetectionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DetectionRequest.Marshal(b, m, deterministic) +func (x *DetectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DetectionRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DetectionRequest.Merge(m, src) -} -func (m *DetectionRequest) XXX_Size() int { - return xxx_messageInfo_DetectionRequest.Size(m) -} -func (m *DetectionRequest) XXX_DiscardUnknown() { - xxx_messageInfo_DetectionRequest.DiscardUnknown(m) + +func (*DetectionRequest) ProtoMessage() {} + +func (x *DetectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[1] + 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) } -var xxx_messageInfo_DetectionRequest proto.InternalMessageInfo +// Deprecated: Use DetectionRequest.ProtoReflect.Descriptor instead. +func (*DetectionRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{1} +} -func (m *DetectionRequest) GetId() string { - if m != nil { - return m.Id +func (x *DetectionRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *DetectionRequest) GetRequest() *Detection { - if m != nil { - return m.Request +func (x *DetectionRequest) GetRequest() *Detection { + if x != nil { + return x.Request } return nil } -func (m *DetectionRequest) GetAnalyticId() []string { - if m != nil { - return m.AnalyticId +func (x *DetectionRequest) GetAnalyticId() []string { + if x != nil { + return x.AnalyticId } return nil } -func (m *DetectionRequest) GetFuserId() []string { - if m != nil { - return m.FuserId +func (x *DetectionRequest) GetFuserId() []string { + if x != nil { + return x.FuserId } return nil } -func (m *DetectionRequest) GetTags() map[string]string { - if m != nil { - return m.Tags +func (x *DetectionRequest) GetTags() map[string]string { + if x != nil { + return x.Tags } return nil } -func (m *DetectionRequest) GetUserTags() map[string]string { - if m != nil { - return m.UserTags +func (x *DetectionRequest) GetUserTags() map[string]string { + if x != nil { + return x.UserTags } return nil } -func (m *DetectionRequest) GetMeta() map[string]string { - if m != nil { - return m.Meta +func (x *DetectionRequest) GetMeta() map[string]string { + if x != nil { + return x.Meta } return nil } -func (m *DetectionRequest) GetAnalyticTimeoutSec() int64 { - if m != nil { - return m.AnalyticTimeoutSec +func (x *DetectionRequest) GetAnalyticTimeoutSec() int64 { + if x != nil { + return x.AnalyticTimeoutSec } return 0 } @@ -377,6 +519,10 @@ func (m *DetectionRequest) GetAnalyticTimeoutSec() int64 { // performed by a given analytic. // Next ID: 5 type AnalyticDetectionInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // The analytic that produced this result. AnalyticId string `protobuf:"bytes,1,opt,name=analytic_id,json=analyticId,proto3" json:"analytic_id,omitempty"` // Current processing stage for the entire detection event (all analytics) if @@ -387,61 +533,65 @@ type AnalyticDetectionInfo struct { Status DetectionStatus `protobuf:"varint,3,opt,name=status,proto3,enum=mediforproto.DetectionStatus" json:"status,omitempty"` // The Detection with the result and status filled out (and the request). // If the response and status are empty (default), then it is not finished. - Detection *Detection `protobuf:"bytes,4,opt,name=detection,proto3" json:"detection,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Detection *Detection `protobuf:"bytes,4,opt,name=detection,proto3" json:"detection,omitempty"` } -func (m *AnalyticDetectionInfo) Reset() { *m = AnalyticDetectionInfo{} } -func (m *AnalyticDetectionInfo) String() string { return proto.CompactTextString(m) } -func (*AnalyticDetectionInfo) ProtoMessage() {} -func (*AnalyticDetectionInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{2} +func (x *AnalyticDetectionInfo) Reset() { + *x = AnalyticDetectionInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AnalyticDetectionInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AnalyticDetectionInfo.Unmarshal(m, b) -} -func (m *AnalyticDetectionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AnalyticDetectionInfo.Marshal(b, m, deterministic) -} -func (m *AnalyticDetectionInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_AnalyticDetectionInfo.Merge(m, src) +func (x *AnalyticDetectionInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AnalyticDetectionInfo) XXX_Size() int { - return xxx_messageInfo_AnalyticDetectionInfo.Size(m) -} -func (m *AnalyticDetectionInfo) XXX_DiscardUnknown() { - xxx_messageInfo_AnalyticDetectionInfo.DiscardUnknown(m) + +func (*AnalyticDetectionInfo) ProtoMessage() {} + +func (x *AnalyticDetectionInfo) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[2] + 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) } -var xxx_messageInfo_AnalyticDetectionInfo proto.InternalMessageInfo +// Deprecated: Use AnalyticDetectionInfo.ProtoReflect.Descriptor instead. +func (*AnalyticDetectionInfo) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{2} +} -func (m *AnalyticDetectionInfo) GetAnalyticId() string { - if m != nil { - return m.AnalyticId +func (x *AnalyticDetectionInfo) GetAnalyticId() string { + if x != nil { + return x.AnalyticId } return "" } -func (m *AnalyticDetectionInfo) GetStage() DetectionStage { - if m != nil { - return m.Stage +func (x *AnalyticDetectionInfo) GetStage() DetectionStage { + if x != nil { + return x.Stage } return DetectionStage_DETECTION_STAGE_NONE } -func (m *AnalyticDetectionInfo) GetStatus() DetectionStatus { - if m != nil { - return m.Status +func (x *AnalyticDetectionInfo) GetStatus() DetectionStatus { + if x != nil { + return x.Status } return DetectionStatus_DETECTION_STATUS_NONE } -func (m *AnalyticDetectionInfo) GetDetection() *Detection { - if m != nil { - return m.Detection +func (x *AnalyticDetectionInfo) GetDetection() *Detection { + if x != nil { + return x.Detection } return nil } @@ -449,6 +599,10 @@ func (m *AnalyticDetectionInfo) GetDetection() *Detection { // DetectionInfo provides details on a given detection event specified by the id. // Next Tag: 11 type DetectionInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // The detection event ID. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // A list of input resources for this detection. Usually a singleton, but can @@ -467,216 +621,240 @@ type DetectionInfo struct { HasFused bool `protobuf:"varint,4,opt,name=has_fused,json=hasFused,proto3" json:"has_fused,omitempty"` FusedScore float64 `protobuf:"fixed64,5,opt,name=fused_score,json=fusedScore,proto3" json:"fused_score,omitempty"` // Progress indicator across all analytics. - AnalyticsTotal int32 `protobuf:"varint,9,opt,name=analytics_total,json=analyticsTotal,proto3" json:"analytics_total,omitempty"` - AnalyticsFinished int32 `protobuf:"varint,10,opt,name=analytics_finished,json=analyticsFinished,proto3" json:"analytics_finished,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + AnalyticsTotal int32 `protobuf:"varint,9,opt,name=analytics_total,json=analyticsTotal,proto3" json:"analytics_total,omitempty"` + AnalyticsFinished int32 `protobuf:"varint,10,opt,name=analytics_finished,json=analyticsFinished,proto3" json:"analytics_finished,omitempty"` } -func (m *DetectionInfo) Reset() { *m = DetectionInfo{} } -func (m *DetectionInfo) String() string { return proto.CompactTextString(m) } -func (*DetectionInfo) ProtoMessage() {} -func (*DetectionInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{3} +func (x *DetectionInfo) Reset() { + *x = DetectionInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DetectionInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DetectionInfo.Unmarshal(m, b) -} -func (m *DetectionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DetectionInfo.Marshal(b, m, deterministic) -} -func (m *DetectionInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_DetectionInfo.Merge(m, src) -} -func (m *DetectionInfo) XXX_Size() int { - return xxx_messageInfo_DetectionInfo.Size(m) +func (x *DetectionInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DetectionInfo) XXX_DiscardUnknown() { - xxx_messageInfo_DetectionInfo.DiscardUnknown(m) + +func (*DetectionInfo) ProtoMessage() {} + +func (x *DetectionInfo) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[3] + 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) } -var xxx_messageInfo_DetectionInfo proto.InternalMessageInfo +// Deprecated: Use DetectionInfo.ProtoReflect.Descriptor instead. +func (*DetectionInfo) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{3} +} -func (m *DetectionInfo) GetId() string { - if m != nil { - return m.Id +func (x *DetectionInfo) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *DetectionInfo) GetReqResources() []*Resource { - if m != nil { - return m.ReqResources +func (x *DetectionInfo) GetReqResources() []*Resource { + if x != nil { + return x.ReqResources } return nil } -func (m *DetectionInfo) GetAnalyticInfo() []*AnalyticDetectionInfo { - if m != nil { - return m.AnalyticInfo +func (x *DetectionInfo) GetAnalyticInfo() []*AnalyticDetectionInfo { + if x != nil { + return x.AnalyticInfo } return nil } -func (m *DetectionInfo) GetFusionInfo() []*FuserFusionInfo { - if m != nil { - return m.FusionInfo +func (x *DetectionInfo) GetFusionInfo() []*FuserFusionInfo { + if x != nil { + return x.FusionInfo } return nil } -func (m *DetectionInfo) GetTags() map[string]string { - if m != nil { - return m.Tags +func (x *DetectionInfo) GetTags() map[string]string { + if x != nil { + return x.Tags } return nil } -func (m *DetectionInfo) GetUserTags() map[string]string { - if m != nil { - return m.UserTags +func (x *DetectionInfo) GetUserTags() map[string]string { + if x != nil { + return x.UserTags } return nil } -func (m *DetectionInfo) GetMeta() map[string]string { - if m != nil { - return m.Meta +func (x *DetectionInfo) GetMeta() map[string]string { + if x != nil { + return x.Meta } return nil } -func (m *DetectionInfo) GetHasFused() bool { - if m != nil { - return m.HasFused +func (x *DetectionInfo) GetHasFused() bool { + if x != nil { + return x.HasFused } return false } -func (m *DetectionInfo) GetFusedScore() float64 { - if m != nil { - return m.FusedScore +func (x *DetectionInfo) GetFusedScore() float64 { + if x != nil { + return x.FusedScore } return 0 } -func (m *DetectionInfo) GetAnalyticsTotal() int32 { - if m != nil { - return m.AnalyticsTotal +func (x *DetectionInfo) GetAnalyticsTotal() int32 { + if x != nil { + return x.AnalyticsTotal } return 0 } -func (m *DetectionInfo) GetAnalyticsFinished() int32 { - if m != nil { - return m.AnalyticsFinished +func (x *DetectionInfo) GetAnalyticsFinished() int32 { + if x != nil { + return x.AnalyticsFinished } return 0 } // DetectionInfoRequest contains the ID of an individual detection event. type DetectionInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // The ID of the detection, as returned by Detect or GetDetectionList. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // If specified, fused scores will be returned as well. - WantFused bool `protobuf:"varint,2,opt,name=want_fused,json=wantFused,proto3" json:"want_fused,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + WantFused bool `protobuf:"varint,2,opt,name=want_fused,json=wantFused,proto3" json:"want_fused,omitempty"` } -func (m *DetectionInfoRequest) Reset() { *m = DetectionInfoRequest{} } -func (m *DetectionInfoRequest) String() string { return proto.CompactTextString(m) } -func (*DetectionInfoRequest) ProtoMessage() {} -func (*DetectionInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{4} +func (x *DetectionInfoRequest) Reset() { + *x = DetectionInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DetectionInfoRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DetectionInfoRequest.Unmarshal(m, b) +func (x *DetectionInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DetectionInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DetectionInfoRequest.Marshal(b, m, deterministic) -} -func (m *DetectionInfoRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DetectionInfoRequest.Merge(m, src) -} -func (m *DetectionInfoRequest) XXX_Size() int { - return xxx_messageInfo_DetectionInfoRequest.Size(m) -} -func (m *DetectionInfoRequest) XXX_DiscardUnknown() { - xxx_messageInfo_DetectionInfoRequest.DiscardUnknown(m) + +func (*DetectionInfoRequest) ProtoMessage() {} + +func (x *DetectionInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[4] + 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) } -var xxx_messageInfo_DetectionInfoRequest proto.InternalMessageInfo +// Deprecated: Use DetectionInfoRequest.ProtoReflect.Descriptor instead. +func (*DetectionInfoRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{4} +} -func (m *DetectionInfoRequest) GetId() string { - if m != nil { - return m.Id +func (x *DetectionInfoRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *DetectionInfoRequest) GetWantFused() bool { - if m != nil { - return m.WantFused +func (x *DetectionInfoRequest) GetWantFused() bool { + if x != nil { + return x.WantFused } return false } type DateRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Inclusive start time in seconds since the Epoch UTC. StartSecondsUtc int64 `protobuf:"varint,1,opt,name=start_seconds_utc,json=startSecondsUtc,proto3" json:"start_seconds_utc,omitempty"` // Inclusive end time in seconds since the Epoch UTC. - EndSecondsUtc int64 `protobuf:"varint,2,opt,name=end_seconds_utc,json=endSecondsUtc,proto3" json:"end_seconds_utc,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + EndSecondsUtc int64 `protobuf:"varint,2,opt,name=end_seconds_utc,json=endSecondsUtc,proto3" json:"end_seconds_utc,omitempty"` } -func (m *DateRange) Reset() { *m = DateRange{} } -func (m *DateRange) String() string { return proto.CompactTextString(m) } -func (*DateRange) ProtoMessage() {} -func (*DateRange) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{5} +func (x *DateRange) Reset() { + *x = DateRange{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DateRange) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DateRange.Unmarshal(m, b) -} -func (m *DateRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DateRange.Marshal(b, m, deterministic) +func (x *DateRange) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DateRange) XXX_Merge(src proto.Message) { - xxx_messageInfo_DateRange.Merge(m, src) -} -func (m *DateRange) XXX_Size() int { - return xxx_messageInfo_DateRange.Size(m) -} -func (m *DateRange) XXX_DiscardUnknown() { - xxx_messageInfo_DateRange.DiscardUnknown(m) + +func (*DateRange) ProtoMessage() {} + +func (x *DateRange) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[5] + 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) } -var xxx_messageInfo_DateRange proto.InternalMessageInfo +// Deprecated: Use DateRange.ProtoReflect.Descriptor instead. +func (*DateRange) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{5} +} -func (m *DateRange) GetStartSecondsUtc() int64 { - if m != nil { - return m.StartSecondsUtc +func (x *DateRange) GetStartSecondsUtc() int64 { + if x != nil { + return x.StartSecondsUtc } return 0 } -func (m *DateRange) GetEndSecondsUtc() int64 { - if m != nil { - return m.EndSecondsUtc +func (x *DateRange) GetEndSecondsUtc() int64 { + if x != nil { + return x.EndSecondsUtc } return 0 } // Next Tag: 10 type DetectionListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // How much should be returned? Default: all. Verbosity DetectionListVerbosity `protobuf:"varint,12,opt,name=verbosity,proto3,enum=mediforproto.DetectionListVerbosity" json:"verbosity,omitempty"` // If specified (can be empty), all listed tags (both key and value) must be @@ -708,117 +886,121 @@ type DetectionListRequest struct { PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // If a token was returned in the response, this can be used to continue // where the previous response left off. - PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } -func (m *DetectionListRequest) Reset() { *m = DetectionListRequest{} } -func (m *DetectionListRequest) String() string { return proto.CompactTextString(m) } -func (*DetectionListRequest) ProtoMessage() {} -func (*DetectionListRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{6} +func (x *DetectionListRequest) Reset() { + *x = DetectionListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DetectionListRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DetectionListRequest.Unmarshal(m, b) -} -func (m *DetectionListRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DetectionListRequest.Marshal(b, m, deterministic) -} -func (m *DetectionListRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DetectionListRequest.Merge(m, src) +func (x *DetectionListRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DetectionListRequest) XXX_Size() int { - return xxx_messageInfo_DetectionListRequest.Size(m) -} -func (m *DetectionListRequest) XXX_DiscardUnknown() { - xxx_messageInfo_DetectionListRequest.DiscardUnknown(m) + +func (*DetectionListRequest) ProtoMessage() {} + +func (x *DetectionListRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DetectionListRequest proto.InternalMessageInfo +// Deprecated: Use DetectionListRequest.ProtoReflect.Descriptor instead. +func (*DetectionListRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{6} +} -func (m *DetectionListRequest) GetVerbosity() DetectionListVerbosity { - if m != nil { - return m.Verbosity +func (x *DetectionListRequest) GetVerbosity() DetectionListVerbosity { + if x != nil { + return x.Verbosity } return DetectionListVerbosity_DETECTION_VERBOSITY_FULL } -func (m *DetectionListRequest) GetTags() map[string]string { - if m != nil { - return m.Tags +func (x *DetectionListRequest) GetTags() map[string]string { + if x != nil { + return x.Tags } return nil } -func (m *DetectionListRequest) GetMetaQuery() string { - if m != nil { - return m.MetaQuery +func (x *DetectionListRequest) GetMetaQuery() string { + if x != nil { + return x.MetaQuery } return "" } -func (m *DetectionListRequest) GetDateRange() *DateRange { - if m != nil { - return m.DateRange +func (x *DetectionListRequest) GetDateRange() *DateRange { + if x != nil { + return x.DateRange } return nil } -func (m *DetectionListRequest) GetDetectionIds() []string { - if m != nil { - return m.DetectionIds +func (x *DetectionListRequest) GetDetectionIds() []string { + if x != nil { + return x.DetectionIds } return nil } -func (m *DetectionListRequest) GetWantFused() bool { - if m != nil { - return m.WantFused +func (x *DetectionListRequest) GetWantFused() bool { + if x != nil { + return x.WantFused } return false } -func (m *DetectionListRequest) GetOrderBy() []*SortCol { - if m != nil { - return m.OrderBy +func (x *DetectionListRequest) GetOrderBy() []*SortCol { + if x != nil { + return x.OrderBy } return nil } -func (m *DetectionListRequest) GetFuserId() string { - if m != nil { - return m.FuserId +func (x *DetectionListRequest) GetFuserId() string { + if x != nil { + return x.FuserId } return "" } -func (m *DetectionListRequest) GetFusionThresholdType() FusionThresholdType { - if m != nil { - return m.FusionThresholdType +func (x *DetectionListRequest) GetFusionThresholdType() FusionThresholdType { + if x != nil { + return x.FusionThresholdType } return FusionThresholdType_FUSION_NO_THRESHOLD } -func (m *DetectionListRequest) GetFusionThresholdValue() float32 { - if m != nil { - return m.FusionThresholdValue +func (x *DetectionListRequest) GetFusionThresholdValue() float32 { + if x != nil { + return x.FusionThresholdValue } return 0 } -func (m *DetectionListRequest) GetPageSize() int32 { - if m != nil { - return m.PageSize +func (x *DetectionListRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize } return 0 } -func (m *DetectionListRequest) GetPageToken() string { - if m != nil { - return m.PageToken +func (x *DetectionListRequest) GetPageToken() string { + if x != nil { + return x.PageToken } return "" } @@ -826,59 +1008,67 @@ func (m *DetectionListRequest) GetPageToken() string { // DetectionList provides a list of DetectionInfo objects. // Next Tag: 4 type DetectionList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Detections []*DetectionInfo `protobuf:"bytes,1,rep,name=detections,proto3" json:"detections,omitempty"` // Total detections in the filtered list. Total int32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` // If this is non-empty, there are more results to be returned. Pass it into // a DetectionListRequest to obtain remaining results. - PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } -func (m *DetectionList) Reset() { *m = DetectionList{} } -func (m *DetectionList) String() string { return proto.CompactTextString(m) } -func (*DetectionList) ProtoMessage() {} -func (*DetectionList) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{7} +func (x *DetectionList) Reset() { + *x = DetectionList{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DetectionList) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DetectionList.Unmarshal(m, b) -} -func (m *DetectionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DetectionList.Marshal(b, m, deterministic) -} -func (m *DetectionList) XXX_Merge(src proto.Message) { - xxx_messageInfo_DetectionList.Merge(m, src) -} -func (m *DetectionList) XXX_Size() int { - return xxx_messageInfo_DetectionList.Size(m) +func (x *DetectionList) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DetectionList) XXX_DiscardUnknown() { - xxx_messageInfo_DetectionList.DiscardUnknown(m) + +func (*DetectionList) ProtoMessage() {} + +func (x *DetectionList) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[7] + 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) } -var xxx_messageInfo_DetectionList proto.InternalMessageInfo +// Deprecated: Use DetectionList.ProtoReflect.Descriptor instead. +func (*DetectionList) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{7} +} -func (m *DetectionList) GetDetections() []*DetectionInfo { - if m != nil { - return m.Detections +func (x *DetectionList) GetDetections() []*DetectionInfo { + if x != nil { + return x.Detections } return nil } -func (m *DetectionList) GetTotal() int32 { - if m != nil { - return m.Total +func (x *DetectionList) GetTotal() int32 { + if x != nil { + return x.Total } return 0 } -func (m *DetectionList) GetPageToken() string { - if m != nil { - return m.PageToken +func (x *DetectionList) GetPageToken() string { + if x != nil { + return x.PageToken } return "" } @@ -886,6 +1076,10 @@ func (m *DetectionList) GetPageToken() string { // FusionRequest contains a fusion object or a list of detectionIDs to be fused. // Next ID: 7 type FusionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // An optional ID for this fusion. If not provided, one will be assigned. // Must be unique from any other provided ID: a collision will prevent // this request from being fulfilled. @@ -900,75 +1094,79 @@ type FusionRequest struct { // DetectionID for the probes on which to perform fusion if no request is specified DetectionId string `protobuf:"bytes,5,opt,name=detection_id,json=detectionId,proto3" json:"detection_id,omitempty"` // Output directory to use ONLY if building request from a detection ID - DetectionIdOutDir string `protobuf:"bytes,6,opt,name=detection_id_out_dir,json=detectionIdOutDir,proto3" json:"detection_id_out_dir,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + DetectionIdOutDir string `protobuf:"bytes,6,opt,name=detection_id_out_dir,json=detectionIdOutDir,proto3" json:"detection_id_out_dir,omitempty"` } -func (m *FusionRequest) Reset() { *m = FusionRequest{} } -func (m *FusionRequest) String() string { return proto.CompactTextString(m) } -func (*FusionRequest) ProtoMessage() {} -func (*FusionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{8} +func (x *FusionRequest) Reset() { + *x = FusionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FusionRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FusionRequest.Unmarshal(m, b) +func (x *FusionRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FusionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FusionRequest.Marshal(b, m, deterministic) -} -func (m *FusionRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FusionRequest.Merge(m, src) -} -func (m *FusionRequest) XXX_Size() int { - return xxx_messageInfo_FusionRequest.Size(m) -} -func (m *FusionRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FusionRequest.DiscardUnknown(m) + +func (*FusionRequest) ProtoMessage() {} + +func (x *FusionRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[8] + 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) } -var xxx_messageInfo_FusionRequest proto.InternalMessageInfo +// Deprecated: Use FusionRequest.ProtoReflect.Descriptor instead. +func (*FusionRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{8} +} -func (m *FusionRequest) GetId() string { - if m != nil { - return m.Id +func (x *FusionRequest) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *FusionRequest) GetRequest() *Fusion { - if m != nil { - return m.Request +func (x *FusionRequest) GetRequest() *Fusion { + if x != nil { + return x.Request } return nil } -func (m *FusionRequest) GetFuserId() []string { - if m != nil { - return m.FuserId +func (x *FusionRequest) GetFuserId() []string { + if x != nil { + return x.FuserId } return nil } -func (m *FusionRequest) GetTags() map[string]string { - if m != nil { - return m.Tags +func (x *FusionRequest) GetTags() map[string]string { + if x != nil { + return x.Tags } return nil } -func (m *FusionRequest) GetDetectionId() string { - if m != nil { - return m.DetectionId +func (x *FusionRequest) GetDetectionId() string { + if x != nil { + return x.DetectionId } return "" } -func (m *FusionRequest) GetDetectionIdOutDir() string { - if m != nil { - return m.DetectionIdOutDir +func (x *FusionRequest) GetDetectionIdOutDir() string { + if x != nil { + return x.DetectionIdOutDir } return "" } @@ -977,6 +1175,10 @@ func (m *FusionRequest) GetDetectionIdOutDir() string { // performed by a given analytic. // Next ID: 5 type FuserFusionInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // The fusion algorithmc that produced this result. FuserId string `protobuf:"bytes,1,opt,name=fuser_id,json=fuserId,proto3" json:"fuser_id,omitempty"` // Current processing stage for the entire detection event (all analytics) if @@ -987,67 +1189,75 @@ type FuserFusionInfo struct { Status DetectionStatus `protobuf:"varint,3,opt,name=status,proto3,enum=mediforproto.DetectionStatus" json:"status,omitempty"` // The Fusion with the result and status filled out (and the request). // If the response and status are empty (default), then it is not finished. - Fusion *Fusion `protobuf:"bytes,4,opt,name=fusion,proto3" json:"fusion,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Fusion *Fusion `protobuf:"bytes,4,opt,name=fusion,proto3" json:"fusion,omitempty"` } -func (m *FuserFusionInfo) Reset() { *m = FuserFusionInfo{} } -func (m *FuserFusionInfo) String() string { return proto.CompactTextString(m) } -func (*FuserFusionInfo) ProtoMessage() {} -func (*FuserFusionInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{9} +func (x *FuserFusionInfo) Reset() { + *x = FuserFusionInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FuserFusionInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FuserFusionInfo.Unmarshal(m, b) -} -func (m *FuserFusionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FuserFusionInfo.Marshal(b, m, deterministic) +func (x *FuserFusionInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FuserFusionInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_FuserFusionInfo.Merge(m, src) -} -func (m *FuserFusionInfo) XXX_Size() int { - return xxx_messageInfo_FuserFusionInfo.Size(m) -} -func (m *FuserFusionInfo) XXX_DiscardUnknown() { - xxx_messageInfo_FuserFusionInfo.DiscardUnknown(m) + +func (*FuserFusionInfo) ProtoMessage() {} + +func (x *FuserFusionInfo) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[9] + 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) } -var xxx_messageInfo_FuserFusionInfo proto.InternalMessageInfo +// Deprecated: Use FuserFusionInfo.ProtoReflect.Descriptor instead. +func (*FuserFusionInfo) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{9} +} -func (m *FuserFusionInfo) GetFuserId() string { - if m != nil { - return m.FuserId +func (x *FuserFusionInfo) GetFuserId() string { + if x != nil { + return x.FuserId } return "" } -func (m *FuserFusionInfo) GetStage() DetectionStage { - if m != nil { - return m.Stage +func (x *FuserFusionInfo) GetStage() DetectionStage { + if x != nil { + return x.Stage } return DetectionStage_DETECTION_STAGE_NONE } -func (m *FuserFusionInfo) GetStatus() DetectionStatus { - if m != nil { - return m.Status +func (x *FuserFusionInfo) GetStatus() DetectionStatus { + if x != nil { + return x.Status } return DetectionStatus_DETECTION_STATUS_NONE } -func (m *FuserFusionInfo) GetFusion() *Fusion { - if m != nil { - return m.Fusion +func (x *FuserFusionInfo) GetFusion() *Fusion { + if x != nil { + return x.Fusion } return nil } // FusionInfo provides details on a given fusion event specified by the ID. type FusionInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Fusion event ID. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Results for individual fusion analytics. @@ -1055,154 +1265,177 @@ type FusionInfo struct { // Tags for the requested fusion. Tags map[string]string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // A fused score, if requested. - HasFused bool `protobuf:"varint,4,opt,name=has_fused,json=hasFused,proto3" json:"has_fused,omitempty"` - FusedScore float64 `protobuf:"fixed64,5,opt,name=fused_score,json=fusedScore,proto3" json:"fused_score,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + HasFused bool `protobuf:"varint,4,opt,name=has_fused,json=hasFused,proto3" json:"has_fused,omitempty"` + FusedScore float64 `protobuf:"fixed64,5,opt,name=fused_score,json=fusedScore,proto3" json:"fused_score,omitempty"` } -func (m *FusionInfo) Reset() { *m = FusionInfo{} } -func (m *FusionInfo) String() string { return proto.CompactTextString(m) } -func (*FusionInfo) ProtoMessage() {} -func (*FusionInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{10} +func (x *FusionInfo) Reset() { + *x = FusionInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FusionInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FusionInfo.Unmarshal(m, b) +func (x *FusionInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FusionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FusionInfo.Marshal(b, m, deterministic) -} -func (m *FusionInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_FusionInfo.Merge(m, src) -} -func (m *FusionInfo) XXX_Size() int { - return xxx_messageInfo_FusionInfo.Size(m) -} -func (m *FusionInfo) XXX_DiscardUnknown() { - xxx_messageInfo_FusionInfo.DiscardUnknown(m) + +func (*FusionInfo) ProtoMessage() {} + +func (x *FusionInfo) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[10] + 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) } -var xxx_messageInfo_FusionInfo proto.InternalMessageInfo +// Deprecated: Use FusionInfo.ProtoReflect.Descriptor instead. +func (*FusionInfo) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{10} +} -func (m *FusionInfo) GetId() string { - if m != nil { - return m.Id +func (x *FusionInfo) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *FusionInfo) GetFusionInfos() []*FuserFusionInfo { - if m != nil { - return m.FusionInfos +func (x *FusionInfo) GetFusionInfos() []*FuserFusionInfo { + if x != nil { + return x.FusionInfos } return nil } -func (m *FusionInfo) GetTags() map[string]string { - if m != nil { - return m.Tags +func (x *FusionInfo) GetTags() map[string]string { + if x != nil { + return x.Tags } return nil } -func (m *FusionInfo) GetHasFused() bool { - if m != nil { - return m.HasFused +func (x *FusionInfo) GetHasFused() bool { + if x != nil { + return x.HasFused } return false } -func (m *FusionInfo) GetFusedScore() float64 { - if m != nil { - return m.FusedScore +func (x *FusionInfo) GetFusedScore() float64 { + if x != nil { + return x.FusedScore } return 0 } type FuseAllIDsRequest struct { - FuserId []string `protobuf:"bytes,1,rep,name=fuser_id,json=fuserId,proto3" json:"fuser_id,omitempty"` - OutDir string `protobuf:"bytes,2,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *FuseAllIDsRequest) Reset() { *m = FuseAllIDsRequest{} } -func (m *FuseAllIDsRequest) String() string { return proto.CompactTextString(m) } -func (*FuseAllIDsRequest) ProtoMessage() {} -func (*FuseAllIDsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{11} + FuserId []string `protobuf:"bytes,1,rep,name=fuser_id,json=fuserId,proto3" json:"fuser_id,omitempty"` + OutDir string `protobuf:"bytes,2,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` } -func (m *FuseAllIDsRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FuseAllIDsRequest.Unmarshal(m, b) -} -func (m *FuseAllIDsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FuseAllIDsRequest.Marshal(b, m, deterministic) -} -func (m *FuseAllIDsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FuseAllIDsRequest.Merge(m, src) +func (x *FuseAllIDsRequest) Reset() { + *x = FuseAllIDsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FuseAllIDsRequest) XXX_Size() int { - return xxx_messageInfo_FuseAllIDsRequest.Size(m) + +func (x *FuseAllIDsRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FuseAllIDsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FuseAllIDsRequest.DiscardUnknown(m) + +func (*FuseAllIDsRequest) ProtoMessage() {} + +func (x *FuseAllIDsRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[11] + 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) } -var xxx_messageInfo_FuseAllIDsRequest proto.InternalMessageInfo +// Deprecated: Use FuseAllIDsRequest.ProtoReflect.Descriptor instead. +func (*FuseAllIDsRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{11} +} -func (m *FuseAllIDsRequest) GetFuserId() []string { - if m != nil { - return m.FuserId +func (x *FuseAllIDsRequest) GetFuserId() []string { + if x != nil { + return x.FuserId } return nil } -func (m *FuseAllIDsRequest) GetOutDir() string { - if m != nil { - return m.OutDir +func (x *FuseAllIDsRequest) GetOutDir() string { + if x != nil { + return x.OutDir } return "" } type FuseAllIDsResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *FuseAllIDsResponse) Reset() { *m = FuseAllIDsResponse{} } -func (m *FuseAllIDsResponse) String() string { return proto.CompactTextString(m) } -func (*FuseAllIDsResponse) ProtoMessage() {} -func (*FuseAllIDsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{12} +func (x *FuseAllIDsResponse) Reset() { + *x = FuseAllIDsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FuseAllIDsResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FuseAllIDsResponse.Unmarshal(m, b) -} -func (m *FuseAllIDsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FuseAllIDsResponse.Marshal(b, m, deterministic) -} -func (m *FuseAllIDsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_FuseAllIDsResponse.Merge(m, src) -} -func (m *FuseAllIDsResponse) XXX_Size() int { - return xxx_messageInfo_FuseAllIDsResponse.Size(m) +func (x *FuseAllIDsResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FuseAllIDsResponse) XXX_DiscardUnknown() { - xxx_messageInfo_FuseAllIDsResponse.DiscardUnknown(m) + +func (*FuseAllIDsResponse) ProtoMessage() {} + +func (x *FuseAllIDsResponse) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[12] + 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) } -var xxx_messageInfo_FuseAllIDsResponse proto.InternalMessageInfo +// Deprecated: Use FuseAllIDsResponse.ProtoReflect.Descriptor instead. +func (*FuseAllIDsResponse) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{12} +} // UpdateDetectionTagsRequest contains new tags to replace or merge with existing tags. // Next Tag: 5 type UpdateDetectionTagsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // The detection ID to update. DetectionId string `protobuf:"bytes,1,opt,name=detection_id,json=detectionId,proto3" json:"detection_id,omitempty"` // If true, replaces all user tags with the given tag set. Default is to @@ -1212,204 +1445,232 @@ type UpdateDetectionTagsRequest struct { // Tags to use in the request. Only updates user tags, not bare system tags. Tags map[string]string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Tag keys to delete. Only used if replace is false. - DeleteTags []string `protobuf:"bytes,4,rep,name=delete_tags,json=deleteTags,proto3" json:"delete_tags,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + DeleteTags []string `protobuf:"bytes,4,rep,name=delete_tags,json=deleteTags,proto3" json:"delete_tags,omitempty"` } -func (m *UpdateDetectionTagsRequest) Reset() { *m = UpdateDetectionTagsRequest{} } -func (m *UpdateDetectionTagsRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateDetectionTagsRequest) ProtoMessage() {} -func (*UpdateDetectionTagsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{13} +func (x *UpdateDetectionTagsRequest) Reset() { + *x = UpdateDetectionTagsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *UpdateDetectionTagsRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateDetectionTagsRequest.Unmarshal(m, b) +func (x *UpdateDetectionTagsRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UpdateDetectionTagsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateDetectionTagsRequest.Marshal(b, m, deterministic) -} -func (m *UpdateDetectionTagsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateDetectionTagsRequest.Merge(m, src) -} -func (m *UpdateDetectionTagsRequest) XXX_Size() int { - return xxx_messageInfo_UpdateDetectionTagsRequest.Size(m) -} -func (m *UpdateDetectionTagsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateDetectionTagsRequest.DiscardUnknown(m) + +func (*UpdateDetectionTagsRequest) ProtoMessage() {} + +func (x *UpdateDetectionTagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[13] + 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) } -var xxx_messageInfo_UpdateDetectionTagsRequest proto.InternalMessageInfo +// Deprecated: Use UpdateDetectionTagsRequest.ProtoReflect.Descriptor instead. +func (*UpdateDetectionTagsRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{13} +} -func (m *UpdateDetectionTagsRequest) GetDetectionId() string { - if m != nil { - return m.DetectionId +func (x *UpdateDetectionTagsRequest) GetDetectionId() string { + if x != nil { + return x.DetectionId } return "" } -func (m *UpdateDetectionTagsRequest) GetReplace() bool { - if m != nil { - return m.Replace +func (x *UpdateDetectionTagsRequest) GetReplace() bool { + if x != nil { + return x.Replace } return false } -func (m *UpdateDetectionTagsRequest) GetTags() map[string]string { - if m != nil { - return m.Tags +func (x *UpdateDetectionTagsRequest) GetTags() map[string]string { + if x != nil { + return x.Tags } return nil } -func (m *UpdateDetectionTagsRequest) GetDeleteTags() []string { - if m != nil { - return m.DeleteTags +func (x *UpdateDetectionTagsRequest) GetDeleteTags() []string { + if x != nil { + return x.DeleteTags } return nil } // DetectionTagInfoRequest asks for high-level information about detection tags. type DetectionTagInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // If specified, only tags that coexist with the given required tags will // be returned. One possible use of this is to limit tags returned by login // group. RequireTags map[string]string `protobuf:"bytes,1,rep,name=require_tags,json=requireTags,proto3" json:"require_tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // If specified, all keys prefixed with any value in this list will // not be returned in the result. - SkipPrefixes []string `protobuf:"bytes,2,rep,name=skip_prefixes,json=skipPrefixes,proto3" json:"skip_prefixes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SkipPrefixes []string `protobuf:"bytes,2,rep,name=skip_prefixes,json=skipPrefixes,proto3" json:"skip_prefixes,omitempty"` } -func (m *DetectionTagInfoRequest) Reset() { *m = DetectionTagInfoRequest{} } -func (m *DetectionTagInfoRequest) String() string { return proto.CompactTextString(m) } -func (*DetectionTagInfoRequest) ProtoMessage() {} -func (*DetectionTagInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{14} +func (x *DetectionTagInfoRequest) Reset() { + *x = DetectionTagInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DetectionTagInfoRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DetectionTagInfoRequest.Unmarshal(m, b) -} -func (m *DetectionTagInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DetectionTagInfoRequest.Marshal(b, m, deterministic) +func (x *DetectionTagInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DetectionTagInfoRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DetectionTagInfoRequest.Merge(m, src) -} -func (m *DetectionTagInfoRequest) XXX_Size() int { - return xxx_messageInfo_DetectionTagInfoRequest.Size(m) -} -func (m *DetectionTagInfoRequest) XXX_DiscardUnknown() { - xxx_messageInfo_DetectionTagInfoRequest.DiscardUnknown(m) + +func (*DetectionTagInfoRequest) ProtoMessage() {} + +func (x *DetectionTagInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DetectionTagInfoRequest proto.InternalMessageInfo +// Deprecated: Use DetectionTagInfoRequest.ProtoReflect.Descriptor instead. +func (*DetectionTagInfoRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{14} +} -func (m *DetectionTagInfoRequest) GetRequireTags() map[string]string { - if m != nil { - return m.RequireTags +func (x *DetectionTagInfoRequest) GetRequireTags() map[string]string { + if x != nil { + return x.RequireTags } return nil } -func (m *DetectionTagInfoRequest) GetSkipPrefixes() []string { - if m != nil { - return m.SkipPrefixes +func (x *DetectionTagInfoRequest) GetSkipPrefixes() []string { + if x != nil { + return x.SkipPrefixes } return nil } // DetectionTagInfo contains high-level information about detection tags. type DetectionTagInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Contains mapping from "key=value" to number of times that specific key/value pair is found. TagCounts map[string]int32 `protobuf:"bytes,1,rep,name=tag_counts,json=tagCounts,proto3" json:"tag_counts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // Contains mapping from "key=value" in *user tags* to number of times they appear. // Note that this can have overlap with system tags, and it will report these separately. - UserTagCounts map[string]int32 `protobuf:"bytes,2,rep,name=user_tag_counts,json=userTagCounts,proto3" json:"user_tag_counts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UserTagCounts map[string]int32 `protobuf:"bytes,2,rep,name=user_tag_counts,json=userTagCounts,proto3" json:"user_tag_counts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } -func (m *DetectionTagInfo) Reset() { *m = DetectionTagInfo{} } -func (m *DetectionTagInfo) String() string { return proto.CompactTextString(m) } -func (*DetectionTagInfo) ProtoMessage() {} -func (*DetectionTagInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{15} +func (x *DetectionTagInfo) Reset() { + *x = DetectionTagInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DetectionTagInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DetectionTagInfo.Unmarshal(m, b) -} -func (m *DetectionTagInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DetectionTagInfo.Marshal(b, m, deterministic) -} -func (m *DetectionTagInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_DetectionTagInfo.Merge(m, src) +func (x *DetectionTagInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DetectionTagInfo) XXX_Size() int { - return xxx_messageInfo_DetectionTagInfo.Size(m) -} -func (m *DetectionTagInfo) XXX_DiscardUnknown() { - xxx_messageInfo_DetectionTagInfo.DiscardUnknown(m) + +func (*DetectionTagInfo) ProtoMessage() {} + +func (x *DetectionTagInfo) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DetectionTagInfo proto.InternalMessageInfo +// Deprecated: Use DetectionTagInfo.ProtoReflect.Descriptor instead. +func (*DetectionTagInfo) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{15} +} -func (m *DetectionTagInfo) GetTagCounts() map[string]int32 { - if m != nil { - return m.TagCounts +func (x *DetectionTagInfo) GetTagCounts() map[string]int32 { + if x != nil { + return x.TagCounts } return nil } -func (m *DetectionTagInfo) GetUserTagCounts() map[string]int32 { - if m != nil { - return m.UserTagCounts +func (x *DetectionTagInfo) GetUserTagCounts() map[string]int32 { + if x != nil { + return x.UserTagCounts } return nil } type DeleteDetectionRequest struct { - DetectionId string `protobuf:"bytes,1,opt,name=detection_id,json=detectionId,proto3" json:"detection_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DeleteDetectionRequest) Reset() { *m = DeleteDetectionRequest{} } -func (m *DeleteDetectionRequest) String() string { return proto.CompactTextString(m) } -func (*DeleteDetectionRequest) ProtoMessage() {} -func (*DeleteDetectionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{16} + DetectionId string `protobuf:"bytes,1,opt,name=detection_id,json=detectionId,proto3" json:"detection_id,omitempty"` } -func (m *DeleteDetectionRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteDetectionRequest.Unmarshal(m, b) -} -func (m *DeleteDetectionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteDetectionRequest.Marshal(b, m, deterministic) -} -func (m *DeleteDetectionRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteDetectionRequest.Merge(m, src) +func (x *DeleteDetectionRequest) Reset() { + *x = DeleteDetectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DeleteDetectionRequest) XXX_Size() int { - return xxx_messageInfo_DeleteDetectionRequest.Size(m) + +func (x *DeleteDetectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DeleteDetectionRequest) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteDetectionRequest.DiscardUnknown(m) + +func (*DeleteDetectionRequest) ProtoMessage() {} + +func (x *DeleteDetectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_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) } -var xxx_messageInfo_DeleteDetectionRequest proto.InternalMessageInfo +// Deprecated: Use DeleteDetectionRequest.ProtoReflect.Descriptor instead. +func (*DeleteDetectionRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{16} +} -func (m *DeleteDetectionRequest) GetDetectionId() string { - if m != nil { - return m.DetectionId +func (x *DeleteDetectionRequest) GetDetectionId() string { + if x != nil { + return x.DetectionId } return "" } @@ -1417,330 +1678,2393 @@ func (m *DeleteDetectionRequest) GetDetectionId() string { // AnalyticMeta containes analytic metadata defining which analytics are currently active // on the system, what they do, and their resource requirements type AnalyticMeta struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` - Cpu float64 `protobuf:"fixed64,3,opt,name=cpu,proto3" json:"cpu,omitempty"` - Ram float64 `protobuf:"fixed64,4,opt,name=ram,proto3" json:"ram,omitempty"` - Gpu int32 `protobuf:"varint,5,opt,name=gpu,proto3" json:"gpu,omitempty"` - Media []MediaType `protobuf:"varint,6,rep,packed,name=media,proto3,enum=mediforproto.MediaType" json:"media,omitempty"` - Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` - Name string `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` - UserFields map[string]string `protobuf:"bytes,9,rep,name=user_fields,json=userFields,proto3" json:"user_fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AnalyticMeta) Reset() { *m = AnalyticMeta{} } -func (m *AnalyticMeta) String() string { return proto.CompactTextString(m) } -func (*AnalyticMeta) ProtoMessage() {} -func (*AnalyticMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{17} -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *AnalyticMeta) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AnalyticMeta.Unmarshal(m, b) + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + Cpu float64 `protobuf:"fixed64,3,opt,name=cpu,proto3" json:"cpu,omitempty"` + Ram float64 `protobuf:"fixed64,4,opt,name=ram,proto3" json:"ram,omitempty"` + Gpu int32 `protobuf:"varint,5,opt,name=gpu,proto3" json:"gpu,omitempty"` + Media []MediaType `protobuf:"varint,6,rep,packed,name=media,proto3,enum=mediforproto.MediaType" json:"media,omitempty"` + Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` + Name string `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` + UserFields map[string]string `protobuf:"bytes,9,rep,name=user_fields,json=userFields,proto3" json:"user_fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (m *AnalyticMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AnalyticMeta.Marshal(b, m, deterministic) + +func (x *AnalyticMeta) Reset() { + *x = AnalyticMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyticMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyticMeta) ProtoMessage() {} + +func (x *AnalyticMeta) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[17] + 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 AnalyticMeta.ProtoReflect.Descriptor instead. +func (*AnalyticMeta) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{17} +} + +func (x *AnalyticMeta) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *AnalyticMeta) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *AnalyticMeta) GetCpu() float64 { + if x != nil { + return x.Cpu + } + return 0 +} + +func (x *AnalyticMeta) GetRam() float64 { + if x != nil { + return x.Ram + } + return 0 +} + +func (x *AnalyticMeta) GetGpu() int32 { + if x != nil { + return x.Gpu + } + return 0 +} + +func (x *AnalyticMeta) GetMedia() []MediaType { + if x != nil { + return x.Media + } + return nil +} + +func (x *AnalyticMeta) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *AnalyticMeta) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AnalyticMeta) GetUserFields() map[string]string { + if x != nil { + return x.UserFields + } + return nil +} + +// AnalyticList holds a list of AnalyticMeta configuration metadata objects +type AnalyticList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Analytics []*AnalyticMeta `protobuf:"bytes,1,rep,name=analytics,proto3" json:"analytics,omitempty"` +} + +func (x *AnalyticList) Reset() { + *x = AnalyticList{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyticList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyticList) ProtoMessage() {} + +func (x *AnalyticList) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[18] + 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 AnalyticList.ProtoReflect.Descriptor instead. +func (*AnalyticList) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{18} +} + +func (x *AnalyticList) GetAnalytics() []*AnalyticMeta { + if x != nil { + return x.Analytics + } + return nil +} + +// Lists detections +type ListDetectionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Filter results by score + ScoreFilter *ScoreFilter `protobuf:"bytes,1,opt,name=score_filter,json=scoreFilter,proto3" json:"score_filter,omitempty"` + // Filter results by metadata + MetaFilters []*MetaFilter `protobuf:"bytes,2,rep,name=meta_filters,json=metaFilters,proto3" json:"meta_filters,omitempty"` + // Filter results by tags + Tags map[string]string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Exclude results with the specified tags + ExcludeTags map[string]string `protobuf:"bytes,9,rep,name=exclude_tags,json=excludeTags,proto3" json:"exclude_tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Filter results by metadata query + MetaQuery string `protobuf:"bytes,10,opt,name=meta_query,json=metaQuery,proto3" json:"meta_query,omitempty"` + // Sort results + OrderBy []*SortCol `protobuf:"bytes,4,rep,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // Analytic whose score is used for filtering and sorting results. If not + // specified, fuser_id is used instead. + AnalyticId string `protobuf:"bytes,5,opt,name=analytic_id,json=analyticId,proto3" json:"analytic_id,omitempty"` + // Fuser whose score is used for filtering and sorting results. Only used + // if analytic_id is not specified. + FuserId string `protobuf:"bytes,6,opt,name=fuser_id,json=fuserId,proto3" json:"fuser_id,omitempty"` + // Return at most the specified number of results + PageSize int32 `protobuf:"varint,7,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Return the specified page of results + PageToken string `protobuf:"bytes,8,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListDetectionsRequest) Reset() { + *x = ListDetectionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDetectionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDetectionsRequest) ProtoMessage() {} + +func (x *ListDetectionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[19] + 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 ListDetectionsRequest.ProtoReflect.Descriptor instead. +func (*ListDetectionsRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{19} +} + +func (x *ListDetectionsRequest) GetScoreFilter() *ScoreFilter { + if x != nil { + return x.ScoreFilter + } + return nil +} + +func (x *ListDetectionsRequest) GetMetaFilters() []*MetaFilter { + if x != nil { + return x.MetaFilters + } + return nil +} + +func (x *ListDetectionsRequest) GetTags() map[string]string { + if x != nil { + return x.Tags + } + return nil +} + +func (x *ListDetectionsRequest) GetExcludeTags() map[string]string { + if x != nil { + return x.ExcludeTags + } + return nil +} + +func (x *ListDetectionsRequest) GetMetaQuery() string { + if x != nil { + return x.MetaQuery + } + return "" +} + +func (x *ListDetectionsRequest) GetOrderBy() []*SortCol { + if x != nil { + return x.OrderBy + } + return nil +} + +func (x *ListDetectionsRequest) GetAnalyticId() string { + if x != nil { + return x.AnalyticId + } + return "" +} + +func (x *ListDetectionsRequest) GetFuserId() string { + if x != nil { + return x.FuserId + } + return "" +} + +func (x *ListDetectionsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListDetectionsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +type ScoreFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Whether the `min` field is valid + HasMin bool `protobuf:"varint,1,opt,name=has_min,json=hasMin,proto3" json:"has_min,omitempty"` + // Minimum score (inclusive) + Min float64 `protobuf:"fixed64,2,opt,name=min,proto3" json:"min,omitempty"` + // Whether the `max` field is valid + HasMax bool `protobuf:"varint,3,opt,name=has_max,json=hasMax,proto3" json:"has_max,omitempty"` + // Maximum score (inclusive) + Max float64 `protobuf:"fixed64,4,opt,name=max,proto3" json:"max,omitempty"` +} + +func (x *ScoreFilter) Reset() { + *x = ScoreFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ScoreFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScoreFilter) ProtoMessage() {} + +func (x *ScoreFilter) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[20] + 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 ScoreFilter.ProtoReflect.Descriptor instead. +func (*ScoreFilter) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{20} +} + +func (x *ScoreFilter) GetHasMin() bool { + if x != nil { + return x.HasMin + } + return false +} + +func (x *ScoreFilter) GetMin() float64 { + if x != nil { + return x.Min + } + return 0 +} + +func (x *ScoreFilter) GetHasMax() bool { + if x != nil { + return x.HasMax + } + return false } -func (m *AnalyticMeta) XXX_Merge(src proto.Message) { - xxx_messageInfo_AnalyticMeta.Merge(m, src) + +func (x *ScoreFilter) GetMax() float64 { + if x != nil { + return x.Max + } + return 0 +} + +type MetaFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Metadata key + MetaKey string `protobuf:"bytes,1,opt,name=meta_key,json=metaKey,proto3" json:"meta_key,omitempty"` + // Whether the `min` field is valid + HasMin bool `protobuf:"varint,2,opt,name=has_min,json=hasMin,proto3" json:"has_min,omitempty"` + // Minimum value (inclusive) + Min string `protobuf:"bytes,3,opt,name=min,proto3" json:"min,omitempty"` + // Whether the `max` field is valid + HasMax bool `protobuf:"varint,4,opt,name=has_max,json=hasMax,proto3" json:"has_max,omitempty"` + // Maximum value (inclusive) + Max string `protobuf:"bytes,5,opt,name=max,proto3" json:"max,omitempty"` +} + +func (x *MetaFilter) Reset() { + *x = MetaFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MetaFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MetaFilter) ProtoMessage() {} + +func (x *MetaFilter) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MetaFilter.ProtoReflect.Descriptor instead. +func (*MetaFilter) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{21} +} + +func (x *MetaFilter) GetMetaKey() string { + if x != nil { + return x.MetaKey + } + return "" +} + +func (x *MetaFilter) GetHasMin() bool { + if x != nil { + return x.HasMin + } + return false +} + +func (x *MetaFilter) GetMin() string { + if x != nil { + return x.Min + } + return "" +} + +func (x *MetaFilter) GetHasMax() bool { + if x != nil { + return x.HasMax + } + return false +} + +func (x *MetaFilter) GetMax() string { + if x != nil { + return x.Max + } + return "" +} + +// Updates a detection's metadata +type UpdateDetectionMetadataRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Detection ID + DetectionId string `protobuf:"bytes,1,opt,name=detection_id,json=detectionId,proto3" json:"detection_id,omitempty"` + // Metadata to be merged with the detection's existing metadata + Metadata map[string]string `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *UpdateDetectionMetadataRequest) Reset() { + *x = UpdateDetectionMetadataRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateDetectionMetadataRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDetectionMetadataRequest) ProtoMessage() {} + +func (x *UpdateDetectionMetadataRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateDetectionMetadataRequest.ProtoReflect.Descriptor instead. +func (*UpdateDetectionMetadataRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{22} +} + +func (x *UpdateDetectionMetadataRequest) GetDetectionId() string { + if x != nil { + return x.DetectionId + } + return "" +} + +func (x *UpdateDetectionMetadataRequest) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + +// Gets analytic and fuser stats +type GetAnalyticStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Analytics to get. If empty, returns all analytics. + AnalyticIds []string `protobuf:"bytes,1,rep,name=analytic_ids,json=analyticIds,proto3" json:"analytic_ids,omitempty"` + // Fusers to get. If empty, returns all fusers. + FuserIds []string `protobuf:"bytes,2,rep,name=fuser_ids,json=fuserIds,proto3" json:"fuser_ids,omitempty"` +} + +func (x *GetAnalyticStatsRequest) Reset() { + *x = GetAnalyticStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAnalyticStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAnalyticStatsRequest) ProtoMessage() {} + +func (x *GetAnalyticStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAnalyticStatsRequest.ProtoReflect.Descriptor instead. +func (*GetAnalyticStatsRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{23} +} + +func (x *GetAnalyticStatsRequest) GetAnalyticIds() []string { + if x != nil { + return x.AnalyticIds + } + return nil +} + +func (x *GetAnalyticStatsRequest) GetFuserIds() []string { + if x != nil { + return x.FuserIds + } + return nil +} + +type GetAnalyticStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Analytic stats + AnalyticStats []*AnalyticStats `protobuf:"bytes,1,rep,name=analytic_stats,json=analyticStats,proto3" json:"analytic_stats,omitempty"` + // Fuser stats + FuserStats []*AnalyticStats `protobuf:"bytes,2,rep,name=fuser_stats,json=fuserStats,proto3" json:"fuser_stats,omitempty"` +} + +func (x *GetAnalyticStatsResponse) Reset() { + *x = GetAnalyticStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAnalyticStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAnalyticStatsResponse) ProtoMessage() {} + +func (x *GetAnalyticStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAnalyticStatsResponse.ProtoReflect.Descriptor instead. +func (*GetAnalyticStatsResponse) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{24} +} + +func (x *GetAnalyticStatsResponse) GetAnalyticStats() []*AnalyticStats { + if x != nil { + return x.AnalyticStats + } + return nil +} + +func (x *GetAnalyticStatsResponse) GetFuserStats() []*AnalyticStats { + if x != nil { + return x.FuserStats + } + return nil +} + +type AnalyticStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Analytic/fuser ID + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Number of tasks that are pending + Pending int32 `protobuf:"varint,2,opt,name=pending,proto3" json:"pending,omitempty"` + // Number of tasks that are running + Running int32 `protobuf:"varint,3,opt,name=running,proto3" json:"running,omitempty"` + // Number of tasks that succeeded and produced a score + Succeeded int32 `protobuf:"varint,4,opt,name=succeeded,proto3" json:"succeeded,omitempty"` + // Number of tasks that succeeded but did not produce a score + OptedOut int32 `protobuf:"varint,6,opt,name=opted_out,json=optedOut,proto3" json:"opted_out,omitempty"` + // Number of tasks that failed + Failed int32 `protobuf:"varint,5,opt,name=failed,proto3" json:"failed,omitempty"` +} + +func (x *AnalyticStats) Reset() { + *x = AnalyticStats{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyticStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyticStats) ProtoMessage() {} + +func (x *AnalyticStats) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnalyticStats.ProtoReflect.Descriptor instead. +func (*AnalyticStats) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{25} +} + +func (x *AnalyticStats) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *AnalyticStats) GetPending() int32 { + if x != nil { + return x.Pending + } + return 0 +} + +func (x *AnalyticStats) GetRunning() int32 { + if x != nil { + return x.Running + } + return 0 +} + +func (x *AnalyticStats) GetSucceeded() int32 { + if x != nil { + return x.Succeeded + } + return 0 +} + +func (x *AnalyticStats) GetOptedOut() int32 { + if x != nil { + return x.OptedOut + } + return 0 +} + +func (x *AnalyticStats) GetFailed() int32 { + if x != nil { + return x.Failed + } + return 0 +} + +// Gets histogram for the specified analytic +type GetHistogramRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Analytic ID. If empty, use fuser instead. + AnalyticId string `protobuf:"bytes,1,opt,name=analytic_id,json=analyticId,proto3" json:"analytic_id,omitempty"` + // Fuser ID + FuserId string `protobuf:"bytes,2,opt,name=fuser_id,json=fuserId,proto3" json:"fuser_id,omitempty"` + // Filters detections by system and/or user tags + Tags map[string]string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Excludes detections with the specified tags + ExcludeTags map[string]string `protobuf:"bytes,5,rep,name=exclude_tags,json=excludeTags,proto3" json:"exclude_tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Number of histogram buckets (default 10) + NumBuckets int32 `protobuf:"varint,4,opt,name=num_buckets,json=numBuckets,proto3" json:"num_buckets,omitempty"` +} + +func (x *GetHistogramRequest) Reset() { + *x = GetHistogramRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AnalyticMeta) XXX_Size() int { - return xxx_messageInfo_AnalyticMeta.Size(m) + +func (x *GetHistogramRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AnalyticMeta) XXX_DiscardUnknown() { - xxx_messageInfo_AnalyticMeta.DiscardUnknown(m) + +func (*GetHistogramRequest) ProtoMessage() {} + +func (x *GetHistogramRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_AnalyticMeta proto.InternalMessageInfo +// Deprecated: Use GetHistogramRequest.ProtoReflect.Descriptor instead. +func (*GetHistogramRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{26} +} -func (m *AnalyticMeta) GetId() string { - if m != nil { - return m.Id +func (x *GetHistogramRequest) GetAnalyticId() string { + if x != nil { + return x.AnalyticId } return "" } -func (m *AnalyticMeta) GetVersion() string { - if m != nil { - return m.Version +func (x *GetHistogramRequest) GetFuserId() string { + if x != nil { + return x.FuserId } return "" } -func (m *AnalyticMeta) GetCpu() float64 { - if m != nil { - return m.Cpu +func (x *GetHistogramRequest) GetTags() map[string]string { + if x != nil { + return x.Tags + } + return nil +} + +func (x *GetHistogramRequest) GetExcludeTags() map[string]string { + if x != nil { + return x.ExcludeTags + } + return nil +} + +func (x *GetHistogramRequest) GetNumBuckets() int32 { + if x != nil { + return x.NumBuckets + } + return 0 +} + +type GetHistogramResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Buckets []*Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"` +} + +func (x *GetHistogramResponse) Reset() { + *x = GetHistogramResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistogramResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistogramResponse) ProtoMessage() {} + +func (x *GetHistogramResponse) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHistogramResponse.ProtoReflect.Descriptor instead. +func (*GetHistogramResponse) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{27} +} + +func (x *GetHistogramResponse) GetBuckets() []*Bucket { + if x != nil { + return x.Buckets + } + return nil +} + +type Bucket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Min float64 `protobuf:"fixed64,1,opt,name=min,proto3" json:"min,omitempty"` + Max float64 `protobuf:"fixed64,2,opt,name=max,proto3" json:"max,omitempty"` + Frequency int32 `protobuf:"varint,3,opt,name=frequency,proto3" json:"frequency,omitempty"` +} + +func (x *Bucket) Reset() { + *x = Bucket{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Bucket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Bucket) ProtoMessage() {} + +func (x *Bucket) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[28] + 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 Bucket.ProtoReflect.Descriptor instead. +func (*Bucket) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{28} +} + +func (x *Bucket) GetMin() float64 { + if x != nil { + return x.Min } return 0 } -func (m *AnalyticMeta) GetRam() float64 { - if m != nil { - return m.Ram +func (x *Bucket) GetMax() float64 { + if x != nil { + return x.Max } return 0 } -func (m *AnalyticMeta) GetGpu() int32 { - if m != nil { - return m.Gpu +func (x *Bucket) GetFrequency() int32 { + if x != nil { + return x.Frequency } return 0 } -func (m *AnalyticMeta) GetMedia() []MediaType { - if m != nil { - return m.Media +// Deletes detection tasks that failed +type DeleteFailedAnalyticsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteFailedAnalyticsRequest) Reset() { + *x = DeleteFailedAnalyticsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFailedAnalyticsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFailedAnalyticsRequest) ProtoMessage() {} + +func (x *DeleteFailedAnalyticsRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[29] + 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 DeleteFailedAnalyticsRequest.ProtoReflect.Descriptor instead. +func (*DeleteFailedAnalyticsRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{29} +} + +type DeleteFailedAnalyticsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Maps detection IDs to deleted analytics + DeletedAnalytics map[string]*DeletedAnalytics `protobuf:"bytes,1,rep,name=deleted_analytics,json=deletedAnalytics,proto3" json:"deleted_analytics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *DeleteFailedAnalyticsResponse) Reset() { + *x = DeleteFailedAnalyticsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFailedAnalyticsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFailedAnalyticsResponse) ProtoMessage() {} + +func (x *DeleteFailedAnalyticsResponse) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFailedAnalyticsResponse.ProtoReflect.Descriptor instead. +func (*DeleteFailedAnalyticsResponse) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{30} +} + +func (x *DeleteFailedAnalyticsResponse) GetDeletedAnalytics() map[string]*DeletedAnalytics { + if x != nil { + return x.DeletedAnalytics } return nil } -func (m *AnalyticMeta) GetDescription() string { - if m != nil { - return m.Description +type DeletedAnalytics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Deleted analytic IDs + DeletedAnalyticIds []string `protobuf:"bytes,1,rep,name=deleted_analytic_ids,json=deletedAnalyticIds,proto3" json:"deleted_analytic_ids,omitempty"` +} + +func (x *DeletedAnalytics) Reset() { + *x = DeletedAnalytics{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (m *AnalyticMeta) GetName() string { - if m != nil { - return m.Name +func (x *DeletedAnalytics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeletedAnalytics) ProtoMessage() {} + +func (x *DeletedAnalytics) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *AnalyticMeta) GetUserFields() map[string]string { - if m != nil { - return m.UserFields +// Deprecated: Use DeletedAnalytics.ProtoReflect.Descriptor instead. +func (*DeletedAnalytics) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{31} +} + +func (x *DeletedAnalytics) GetDeletedAnalyticIds() []string { + if x != nil { + return x.DeletedAnalyticIds } return nil } -// AnalyticList holds a list of AnalyticMeta configuration metadata objects -type AnalyticList struct { - Analytics []*AnalyticMeta `protobuf:"bytes,1,rep,name=analytics,proto3" json:"analytics,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +// Gets analytics and fusers that produced a score for at least one detection +type GetAnalyticsWithScoresRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Filters detections by system and/or user tags + Tags map[string]string `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Excludes detections with the specified tags + ExcludeTags map[string]string `protobuf:"bytes,2,rep,name=exclude_tags,json=excludeTags,proto3" json:"exclude_tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (m *AnalyticList) Reset() { *m = AnalyticList{} } -func (m *AnalyticList) String() string { return proto.CompactTextString(m) } -func (*AnalyticList) ProtoMessage() {} -func (*AnalyticList) Descriptor() ([]byte, []int) { - return fileDescriptor_49bc7aaef7d70e21, []int{18} +func (x *GetAnalyticsWithScoresRequest) Reset() { + *x = GetAnalyticsWithScoresRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAnalyticsWithScoresRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAnalyticsWithScoresRequest) ProtoMessage() {} + +func (x *GetAnalyticsWithScoresRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[32] + 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 GetAnalyticsWithScoresRequest.ProtoReflect.Descriptor instead. +func (*GetAnalyticsWithScoresRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{32} +} + +func (x *GetAnalyticsWithScoresRequest) GetTags() map[string]string { + if x != nil { + return x.Tags + } + return nil } -func (m *AnalyticList) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AnalyticList.Unmarshal(m, b) +func (x *GetAnalyticsWithScoresRequest) GetExcludeTags() map[string]string { + if x != nil { + return x.ExcludeTags + } + return nil +} + +type GetAnalyticsWithScoresResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Analytic IDs with scores + AnalyticIds []string `protobuf:"bytes,1,rep,name=analytic_ids,json=analyticIds,proto3" json:"analytic_ids,omitempty"` + // Fuser IDs with scores + FuserIds []string `protobuf:"bytes,2,rep,name=fuser_ids,json=fuserIds,proto3" json:"fuser_ids,omitempty"` } -func (m *AnalyticList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AnalyticList.Marshal(b, m, deterministic) + +func (x *GetAnalyticsWithScoresResponse) Reset() { + *x = GetAnalyticsWithScoresResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_pipeline_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AnalyticList) XXX_Merge(src proto.Message) { - xxx_messageInfo_AnalyticList.Merge(m, src) + +func (x *GetAnalyticsWithScoresResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AnalyticList) XXX_Size() int { - return xxx_messageInfo_AnalyticList.Size(m) + +func (*GetAnalyticsWithScoresResponse) ProtoMessage() {} + +func (x *GetAnalyticsWithScoresResponse) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_pipeline_proto_msgTypes[33] + 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) } -func (m *AnalyticList) XXX_DiscardUnknown() { - xxx_messageInfo_AnalyticList.DiscardUnknown(m) + +// Deprecated: Use GetAnalyticsWithScoresResponse.ProtoReflect.Descriptor instead. +func (*GetAnalyticsWithScoresResponse) Descriptor() ([]byte, []int) { + return file_medifor_v1_pipeline_proto_rawDescGZIP(), []int{33} } -var xxx_messageInfo_AnalyticList proto.InternalMessageInfo +func (x *GetAnalyticsWithScoresResponse) GetAnalyticIds() []string { + if x != nil { + return x.AnalyticIds + } + return nil +} -func (m *AnalyticList) GetAnalytics() []*AnalyticMeta { - if m != nil { - return m.Analytics +func (x *GetAnalyticsWithScoresResponse) GetFuserIds() []string { + if x != nil { + return x.FuserIds } return nil } -func init() { - proto.RegisterEnum("mediforproto.DetectionStage", DetectionStage_name, DetectionStage_value) - proto.RegisterEnum("mediforproto.DetectionStatus", DetectionStatus_name, DetectionStatus_value) - proto.RegisterEnum("mediforproto.SortKey", SortKey_name, SortKey_value) - proto.RegisterEnum("mediforproto.FusionThresholdType", FusionThresholdType_name, FusionThresholdType_value) - proto.RegisterEnum("mediforproto.MediaType", MediaType_name, MediaType_value) - proto.RegisterEnum("mediforproto.DetectionListVerbosity", DetectionListVerbosity_name, DetectionListVerbosity_value) - proto.RegisterType((*SortCol)(nil), "mediforproto.SortCol") - proto.RegisterType((*DetectionRequest)(nil), "mediforproto.DetectionRequest") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionRequest.MetaEntry") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionRequest.TagsEntry") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionRequest.UserTagsEntry") - proto.RegisterType((*AnalyticDetectionInfo)(nil), "mediforproto.AnalyticDetectionInfo") - proto.RegisterType((*DetectionInfo)(nil), "mediforproto.DetectionInfo") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionInfo.MetaEntry") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionInfo.TagsEntry") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionInfo.UserTagsEntry") - proto.RegisterType((*DetectionInfoRequest)(nil), "mediforproto.DetectionInfoRequest") - proto.RegisterType((*DateRange)(nil), "mediforproto.DateRange") - proto.RegisterType((*DetectionListRequest)(nil), "mediforproto.DetectionListRequest") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionListRequest.TagsEntry") - proto.RegisterType((*DetectionList)(nil), "mediforproto.DetectionList") - proto.RegisterType((*FusionRequest)(nil), "mediforproto.FusionRequest") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.FusionRequest.TagsEntry") - proto.RegisterType((*FuserFusionInfo)(nil), "mediforproto.FuserFusionInfo") - proto.RegisterType((*FusionInfo)(nil), "mediforproto.FusionInfo") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.FusionInfo.TagsEntry") - proto.RegisterType((*FuseAllIDsRequest)(nil), "mediforproto.FuseAllIDsRequest") - proto.RegisterType((*FuseAllIDsResponse)(nil), "mediforproto.FuseAllIDsResponse") - proto.RegisterType((*UpdateDetectionTagsRequest)(nil), "mediforproto.UpdateDetectionTagsRequest") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.UpdateDetectionTagsRequest.TagsEntry") - proto.RegisterType((*DetectionTagInfoRequest)(nil), "mediforproto.DetectionTagInfoRequest") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionTagInfoRequest.RequireTagsEntry") - proto.RegisterType((*DetectionTagInfo)(nil), "mediforproto.DetectionTagInfo") - proto.RegisterMapType((map[string]int32)(nil), "mediforproto.DetectionTagInfo.TagCountsEntry") - proto.RegisterMapType((map[string]int32)(nil), "mediforproto.DetectionTagInfo.UserTagCountsEntry") - proto.RegisterType((*DeleteDetectionRequest)(nil), "mediforproto.DeleteDetectionRequest") - proto.RegisterType((*AnalyticMeta)(nil), "mediforproto.AnalyticMeta") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.AnalyticMeta.UserFieldsEntry") - proto.RegisterType((*AnalyticList)(nil), "mediforproto.AnalyticList") -} - -func init() { proto.RegisterFile("medifor/v1/pipeline.proto", fileDescriptor_49bc7aaef7d70e21) } - -var fileDescriptor_49bc7aaef7d70e21 = []byte{ - // 2021 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0x4f, 0x73, 0xdb, 0xc6, - 0x15, 0x37, 0x48, 0x51, 0x22, 0x1e, 0x29, 0x89, 0x5e, 0x49, 0x16, 0x4c, 0xc5, 0xb1, 0xc2, 0x34, - 0x8d, 0xaa, 0x89, 0xa5, 0x98, 0x4d, 0x9c, 0xa4, 0x4e, 0x32, 0xa6, 0x44, 0x50, 0xe2, 0x98, 0x92, - 0x92, 0x25, 0xe9, 0x8e, 0x3b, 0x99, 0x41, 0x61, 0x62, 0x49, 0x61, 0x4c, 0x01, 0x34, 0x76, 0xe1, - 0x96, 0xb9, 0xe5, 0xd2, 0x5b, 0xbf, 0x41, 0x3f, 0x45, 0x6f, 0x9d, 0x9e, 0xfb, 0x21, 0xda, 0x4b, - 0xcf, 0xfd, 0x0c, 0xbd, 0x74, 0x76, 0x17, 0x00, 0x01, 0xf0, 0x8f, 0x2c, 0x75, 0xa6, 0x33, 0x3d, - 0x09, 0xfb, 0xde, 0xdb, 0xb7, 0xef, 0xff, 0xfe, 0x96, 0x82, 0xfb, 0x57, 0xc4, 0xb2, 0xfb, 0xae, - 0x77, 0xf8, 0xf6, 0xf1, 0xe1, 0xc8, 0x1e, 0x91, 0xa1, 0xed, 0x90, 0x83, 0x91, 0xe7, 0x32, 0x17, - 0x15, 0x03, 0x96, 0x58, 0x95, 0xe3, 0x82, 0xa6, 0x63, 0x0e, 0xc7, 0xcc, 0xee, 0x49, 0xc1, 0xf2, - 0x76, 0x8c, 0xd5, 0xf7, 0xa9, 0xed, 0x3a, 0x92, 0x51, 0xf9, 0x49, 0x81, 0x95, 0xb6, 0xeb, 0xb1, - 0x63, 0x77, 0x88, 0x3e, 0x86, 0xec, 0x6b, 0x32, 0xd6, 0x94, 0x5d, 0x65, 0x6f, 0xad, 0xba, 0x75, - 0x10, 0xd7, 0x7d, 0xc0, 0x65, 0x9e, 0x93, 0x31, 0xe6, 0x12, 0x68, 0x0b, 0x96, 0x6d, 0x6a, 0x98, - 0xb4, 0xa7, 0x65, 0x76, 0x95, 0xbd, 0x3c, 0xce, 0xd9, 0xb4, 0x46, 0x7b, 0x68, 0x07, 0x54, 0x36, - 0x1e, 0x11, 0xa3, 0x67, 0x52, 0xa6, 0x65, 0x77, 0x95, 0x3d, 0x15, 0xe7, 0x39, 0xe1, 0xd8, 0xa4, - 0x0c, 0xdd, 0x87, 0xfc, 0x15, 0x61, 0xa6, 0xc1, 0x4f, 0x58, 0x12, 0xbc, 0x15, 0xbe, 0x7e, 0x4e, - 0xc6, 0x95, 0xbf, 0x2c, 0x41, 0xa9, 0x4e, 0x18, 0xe9, 0x31, 0xdb, 0x75, 0x30, 0x79, 0xe3, 0x13, - 0xca, 0xd0, 0x1a, 0x64, 0x6c, 0x2b, 0xd0, 0x92, 0xb1, 0x2d, 0xf4, 0x18, 0x56, 0x3c, 0xc9, 0x12, - 0x06, 0x16, 0xaa, 0xdb, 0x49, 0x03, 0x27, 0x0a, 0x42, 0x39, 0xf4, 0x10, 0x0a, 0x61, 0x18, 0x0c, - 0xdb, 0xd2, 0x32, 0xbb, 0xd9, 0x3d, 0x15, 0x43, 0x48, 0x6a, 0x5a, 0xdc, 0xa6, 0xbe, 0x4f, 0x89, - 0xc7, 0xb9, 0x79, 0xc1, 0x5d, 0x11, 0xeb, 0xa6, 0x85, 0xbe, 0x86, 0x25, 0x66, 0x0e, 0xa8, 0xb6, - 0xb4, 0x9b, 0xdd, 0x2b, 0x54, 0xf7, 0xe6, 0x9d, 0x25, 0x4f, 0x3a, 0xe8, 0x98, 0x03, 0xaa, 0x3b, - 0xcc, 0x1b, 0x63, 0xb1, 0x0b, 0x35, 0x41, 0x15, 0x7a, 0x85, 0x8a, 0x65, 0xa1, 0xe2, 0x93, 0x6b, - 0x54, 0x74, 0x29, 0xf1, 0x26, 0x6a, 0xf2, 0x7e, 0xb0, 0xe4, 0x86, 0xf0, 0x38, 0x69, 0x2b, 0xef, - 0x64, 0xc8, 0x19, 0x61, 0x66, 0x60, 0x08, 0xdf, 0x85, 0x3e, 0x85, 0xcd, 0x28, 0x04, 0xcc, 0xbe, - 0x22, 0xae, 0xcf, 0x0c, 0x4a, 0x7a, 0x5a, 0x6e, 0x57, 0xd9, 0xcb, 0x62, 0x14, 0xf2, 0x3a, 0x92, - 0xd5, 0x26, 0xbd, 0xf2, 0x17, 0xa0, 0x46, 0x66, 0xa0, 0xd2, 0xa4, 0x22, 0x54, 0x99, 0xfa, 0x4d, - 0xc8, 0xbd, 0x35, 0x87, 0x3e, 0x11, 0x99, 0x57, 0xb1, 0x5c, 0xfc, 0x2a, 0xf3, 0xa5, 0x52, 0x7e, - 0x0a, 0xab, 0x09, 0x1f, 0x6e, 0xb4, 0xf9, 0x0b, 0x50, 0x23, 0xd3, 0x6f, 0xb2, 0xb1, 0xf2, 0x0f, - 0x05, 0xb6, 0x6a, 0x81, 0x17, 0x51, 0x34, 0x9a, 0x4e, 0xdf, 0x4d, 0x67, 0x5f, 0x6a, 0x8b, 0x67, - 0xbf, 0x0a, 0x39, 0xca, 0xcc, 0x81, 0x54, 0xba, 0x56, 0x7d, 0x6f, 0x4e, 0x68, 0xdb, 0x5c, 0x06, - 0x4b, 0x51, 0xf4, 0x39, 0x2c, 0x53, 0x66, 0x32, 0x9f, 0x8a, 0xca, 0x5c, 0xab, 0x3e, 0x98, 0xbf, - 0x89, 0xf9, 0x14, 0x07, 0xc2, 0xe8, 0x73, 0x50, 0xad, 0x90, 0x25, 0xaa, 0x7f, 0x41, 0xf9, 0x4e, - 0x24, 0x2b, 0xff, 0xca, 0xc1, 0x6a, 0xd2, 0x29, 0xd9, 0x15, 0x4a, 0xd4, 0x15, 0x4f, 0x61, 0xd5, - 0x23, 0x6f, 0x0c, 0x8f, 0x50, 0xd7, 0xf7, 0x7a, 0x84, 0x6a, 0x05, 0x51, 0x26, 0xf7, 0x92, 0xca, - 0x71, 0xc0, 0xc6, 0x45, 0x8f, 0xbc, 0x09, 0x17, 0x14, 0x9d, 0xc2, 0xea, 0x24, 0x42, 0x4e, 0xdf, - 0x15, 0x1d, 0x52, 0xa8, 0x7e, 0x98, 0xdc, 0x3c, 0x33, 0xba, 0xb8, 0x18, 0x05, 0x92, 0x9b, 0xf5, - 0x2d, 0x14, 0xe4, 0x54, 0x91, 0x7a, 0xf2, 0x42, 0x4f, 0x2a, 0x36, 0x0d, 0x5e, 0xd2, 0x0d, 0x21, - 0x25, 0x34, 0x40, 0x3f, 0xfa, 0x46, 0x5f, 0x05, 0xdd, 0x96, 0x15, 0x1b, 0x3f, 0x9a, 0x13, 0x1a, - 0x2e, 0x3a, 0xd5, 0x6a, 0x8d, 0xe9, 0x56, 0xfb, 0xc5, 0xa2, 0xfd, 0xf3, 0xfa, 0xec, 0xab, 0x44, - 0x9f, 0x2d, 0x34, 0x21, 0xdd, 0x64, 0x3b, 0xa0, 0x5e, 0x9a, 0xd4, 0xe0, 0xa3, 0xc3, 0x12, 0xd9, - 0xcd, 0xe3, 0xfc, 0xa5, 0x49, 0xb9, 0xc3, 0x16, 0x2f, 0x43, 0xc1, 0x30, 0x68, 0xcf, 0xf5, 0x88, - 0x68, 0x3c, 0x45, 0xf8, 0x4e, 0xac, 0x36, 0xa7, 0xa0, 0x8f, 0x61, 0x3d, 0x8c, 0x25, 0x35, 0x98, - 0xcb, 0xcc, 0xa1, 0xa6, 0xee, 0x2a, 0x7b, 0x39, 0xbc, 0x16, 0x91, 0x3b, 0x9c, 0x8a, 0x1e, 0x01, - 0x9a, 0x08, 0xf6, 0x6d, 0xc7, 0xa6, 0x97, 0xc4, 0xd2, 0x40, 0xc8, 0xde, 0x8d, 0x38, 0x8d, 0x80, - 0xf1, 0xff, 0xd6, 0xc8, 0x3a, 0x6c, 0x26, 0x2b, 0x2c, 0x71, 0x0f, 0x4c, 0x2a, 0xfe, 0x01, 0xc0, - 0xef, 0x4c, 0x87, 0x05, 0xd1, 0x96, 0xf7, 0x8f, 0xca, 0x29, 0x22, 0xdc, 0x15, 0x03, 0xd4, 0xba, - 0xc9, 0x08, 0x36, 0x9d, 0x01, 0x41, 0xfb, 0x70, 0x97, 0x32, 0xd3, 0x13, 0x23, 0xcf, 0x75, 0x2c, - 0x6a, 0xf8, 0xac, 0x27, 0x54, 0x65, 0xf1, 0xba, 0x60, 0xb4, 0x25, 0xbd, 0xcb, 0x7a, 0xe8, 0xe7, - 0xb0, 0x4e, 0x1c, 0x2b, 0x21, 0x99, 0x11, 0x92, 0xab, 0xc4, 0xb1, 0x26, 0x72, 0x95, 0x3f, 0xe4, - 0x62, 0x86, 0xb6, 0x6c, 0xca, 0x42, 0x43, 0x8f, 0x40, 0x7d, 0x4b, 0xbc, 0x57, 0x2e, 0xb5, 0xd9, - 0x58, 0x2b, 0x8a, 0xe9, 0xf0, 0xb3, 0x39, 0x55, 0xc4, 0xb7, 0xbd, 0x08, 0x65, 0xf1, 0x64, 0x1b, - 0x7a, 0x16, 0xf4, 0x81, 0xb2, 0xf0, 0xca, 0x88, 0x9d, 0x3a, 0xd5, 0x0e, 0x0f, 0x00, 0xc4, 0x35, - 0xfb, 0xc6, 0x27, 0xde, 0x58, 0x14, 0x87, 0x8a, 0x55, 0x4e, 0xf9, 0x9e, 0x13, 0xd0, 0x13, 0x00, - 0xcb, 0x64, 0xc4, 0xf0, 0x78, 0x7c, 0xb4, 0xc2, 0xcc, 0x49, 0x14, 0x86, 0x0f, 0xab, 0x56, 0x14, - 0xc9, 0x0f, 0x61, 0x35, 0x1a, 0x4b, 0x86, 0x6d, 0x51, 0xd1, 0x26, 0x2a, 0x2e, 0x46, 0xc4, 0xa6, - 0x45, 0x53, 0xa9, 0x59, 0x4a, 0xa5, 0x06, 0x7d, 0x0a, 0x79, 0xd7, 0xb3, 0x88, 0x67, 0xbc, 0x1a, - 0x6b, 0x39, 0xe1, 0xe0, 0x0c, 0x8c, 0x71, 0xec, 0x0e, 0xf1, 0x8a, 0x10, 0x3b, 0x1a, 0x27, 0xee, - 0xe7, 0x65, 0x89, 0x19, 0xc2, 0xfb, 0xb9, 0x0b, 0x5b, 0xc1, 0xc4, 0x61, 0x97, 0x1e, 0xa1, 0x97, - 0xee, 0xd0, 0x32, 0x38, 0xd6, 0xd0, 0xf2, 0x22, 0xf2, 0x1f, 0x4c, 0xcd, 0x1e, 0xdb, 0x75, 0x3a, - 0xa1, 0x64, 0x67, 0x3c, 0x22, 0x78, 0xa3, 0x3f, 0x4d, 0x44, 0x9f, 0xc1, 0xbd, 0x29, 0xb5, 0xb2, - 0x60, 0x79, 0x4f, 0x66, 0xf0, 0x66, 0x6a, 0xd3, 0x0b, 0xce, 0xe3, 0x03, 0x60, 0x64, 0x0e, 0x88, - 0x41, 0xed, 0x1f, 0x65, 0x65, 0xe7, 0x70, 0x9e, 0x13, 0xda, 0xf6, 0x8f, 0x84, 0x47, 0x45, 0x30, - 0x99, 0xfb, 0x9a, 0x38, 0x01, 0xa0, 0x11, 0xe2, 0x1d, 0x4e, 0xb8, 0x75, 0x9b, 0x72, 0xe4, 0xb6, - 0x9a, 0x28, 0x09, 0xf4, 0x14, 0x20, 0xca, 0x47, 0x58, 0x43, 0x3b, 0x0b, 0x06, 0x19, 0x8e, 0x89, - 0xf3, 0x83, 0xe4, 0xf0, 0xc9, 0x0a, 0xfb, 0xe5, 0x22, 0x65, 0x7c, 0x26, 0x65, 0x7c, 0xe5, 0xcf, - 0x19, 0x58, 0x95, 0xb1, 0x9d, 0xd7, 0xae, 0x07, 0x13, 0xd8, 0x96, 0x11, 0xd5, 0xb6, 0x39, 0x2b, - 0x33, 0x13, 0xcc, 0x16, 0x4f, 0xf9, 0x52, 0x12, 0x92, 0x2d, 0xbc, 0x24, 0x12, 0x56, 0x4c, 0x75, - 0xc5, 0x07, 0x50, 0x8c, 0x97, 0xaf, 0x98, 0xc2, 0x2a, 0x2e, 0xc4, 0xaa, 0x17, 0x1d, 0xc2, 0x66, - 0x5c, 0xc4, 0xe0, 0x48, 0xc9, 0xb2, 0xbd, 0xa0, 0xee, 0xee, 0xc6, 0x44, 0x2f, 0x7c, 0x56, 0xb7, - 0xbd, 0xdb, 0x27, 0xee, 0x6f, 0x0a, 0xac, 0xa7, 0x2e, 0xc3, 0x84, 0xdb, 0x4a, 0xb2, 0xd2, 0xff, - 0x87, 0x30, 0xe5, 0x13, 0x58, 0x96, 0xf5, 0x1d, 0x60, 0x94, 0xd9, 0xb9, 0x0a, 0x64, 0x2a, 0x7f, - 0xcc, 0x00, 0xc4, 0x5c, 0x48, 0x67, 0xfe, 0x19, 0x14, 0x63, 0x98, 0x80, 0x06, 0xe0, 0xe2, 0x1a, - 0x50, 0x50, 0x98, 0x80, 0x02, 0x8a, 0x9e, 0x24, 0x12, 0x5e, 0x99, 0x65, 0xcc, 0x4c, 0x48, 0xf0, - 0x5f, 0xdd, 0xc7, 0xb7, 0xcf, 0xeb, 0x09, 0xdc, 0xe5, 0x47, 0xd4, 0x86, 0xc3, 0x66, 0x9d, 0xe2, - 0x19, 0xf5, 0xac, 0x24, 0xeb, 0x79, 0x1b, 0x56, 0xc2, 0x22, 0x93, 0xba, 0x96, 0x5d, 0x51, 0x59, - 0x95, 0x4d, 0x40, 0x71, 0x45, 0x74, 0xe4, 0x3a, 0x94, 0x54, 0xfe, 0xad, 0x40, 0xb9, 0x3b, 0xe2, - 0x23, 0x39, 0x4a, 0x1f, 0xb7, 0x33, 0x3c, 0x28, 0x5d, 0xe2, 0xca, 0x74, 0x89, 0x6b, 0xbc, 0x17, - 0x47, 0x43, 0xb3, 0x47, 0x82, 0x7b, 0x33, 0x5c, 0xa2, 0x46, 0x22, 0xd2, 0xd5, 0x64, 0xa4, 0xe7, - 0x1f, 0x3a, 0x15, 0xf9, 0x87, 0x50, 0xb0, 0xc8, 0x90, 0x30, 0x62, 0x44, 0x8f, 0x27, 0x95, 0x4f, - 0x19, 0x4e, 0xe2, 0xb2, 0xb7, 0x0f, 0xee, 0xdf, 0x15, 0xd8, 0x8e, 0x9b, 0x10, 0x87, 0x08, 0x2f, - 0x81, 0xe3, 0x5a, 0xdf, 0xf6, 0x82, 0x63, 0xe5, 0xe4, 0x7b, 0x32, 0xa7, 0xe6, 0x93, 0x9b, 0x0f, - 0xb0, 0xdc, 0x39, 0xf1, 0xa4, 0xe0, 0x4d, 0x28, 0xfc, 0xde, 0xa3, 0xaf, 0xed, 0x91, 0x31, 0xf2, - 0x48, 0xdf, 0xfe, 0x3d, 0xa1, 0xc1, 0x23, 0xb2, 0xc8, 0x89, 0xdf, 0x05, 0xb4, 0xf2, 0xb7, 0x50, - 0x4a, 0x6b, 0xb9, 0x91, 0x6f, 0x7f, 0xcd, 0xc4, 0xde, 0xbf, 0x81, 0x79, 0xa8, 0x05, 0xc0, 0xcc, - 0x81, 0xd1, 0x73, 0x7d, 0x87, 0x85, 0x2e, 0x3d, 0x5a, 0xec, 0x12, 0x4f, 0xc7, 0xb1, 0x90, 0x97, - 0x9e, 0xa8, 0x2c, 0x5c, 0xa3, 0x97, 0xb0, 0x1e, 0xa2, 0xe4, 0x50, 0xa5, 0xec, 0xc7, 0xc7, 0xd7, - 0xa8, 0x0c, 0x90, 0x60, 0x5c, 0xed, 0xaa, 0x1f, 0xa7, 0x95, 0xbf, 0x86, 0xb5, 0xa4, 0xc0, 0x75, - 0xbe, 0xe7, 0xe2, 0x78, 0xf1, 0x19, 0xa0, 0xe9, 0x23, 0x6e, 0xa2, 0xa1, 0xf2, 0x14, 0xee, 0xd5, - 0x45, 0x81, 0x4d, 0xfd, 0x84, 0x70, 0x7d, 0x4b, 0x54, 0xfe, 0x99, 0x81, 0x62, 0xf8, 0xc0, 0xe1, - 0xb8, 0x75, 0x6a, 0x8a, 0x69, 0xb0, 0xf2, 0x96, 0x78, 0x62, 0x26, 0xca, 0xbc, 0x85, 0x4b, 0x6e, - 0x63, 0x6f, 0xe4, 0x8b, 0x01, 0xab, 0x60, 0xfe, 0xc9, 0x29, 0x9e, 0x79, 0x25, 0x26, 0x8e, 0x82, - 0xf9, 0x27, 0xa7, 0x0c, 0x46, 0xbe, 0x18, 0x32, 0x39, 0xcc, 0x3f, 0xd1, 0x23, 0xc8, 0xf1, 0x80, - 0x9b, 0xe2, 0xa9, 0xb2, 0x96, 0xc6, 0x5e, 0x67, 0x9c, 0x25, 0xd0, 0x89, 0x94, 0x42, 0xbb, 0xbc, - 0xa1, 0x68, 0xcf, 0xb3, 0x47, 0xe2, 0xe9, 0xb8, 0x12, 0x7a, 0x10, 0x91, 0x10, 0x82, 0x25, 0xc7, - 0xbc, 0x92, 0xb8, 0x47, 0xc5, 0xe2, 0x1b, 0x3d, 0x87, 0x82, 0xc8, 0x76, 0xdf, 0x26, 0x43, 0x8b, - 0x6a, 0xaa, 0xc8, 0xf4, 0xfe, 0xec, 0x67, 0x1d, 0xf7, 0x5a, 0x64, 0xb9, 0x21, 0x84, 0x65, 0x8a, - 0xc1, 0x8f, 0x08, 0xe5, 0x6f, 0x60, 0x3d, 0xc5, 0xbe, 0x51, 0x71, 0x9f, 0x4e, 0x02, 0x2c, 0x40, - 0xca, 0x97, 0xa0, 0x46, 0x6f, 0x95, 0xa0, 0xac, 0xcb, 0xf3, 0x2d, 0xc3, 0x13, 0xe1, 0xfd, 0x9f, - 0x14, 0x58, 0x4b, 0x5e, 0x77, 0x48, 0x83, 0xcd, 0xba, 0xde, 0xd1, 0x8f, 0x3b, 0xcd, 0x8b, 0x73, - 0xa3, 0xdd, 0xa9, 0x9d, 0xe8, 0xc6, 0xf9, 0xc5, 0xb9, 0x5e, 0xba, 0x83, 0xca, 0x70, 0x2f, 0xcd, - 0xf9, 0xbe, 0xab, 0x77, 0xf5, 0x7a, 0x49, 0x41, 0x3b, 0xb0, 0x9d, 0xe6, 0x1d, 0xb7, 0x6a, 0xcd, - 0x33, 0xbd, 0x5e, 0xca, 0xa0, 0xf7, 0x40, 0x4b, 0x33, 0x1b, 0xcd, 0xf3, 0x66, 0xfb, 0x54, 0xaf, - 0x97, 0xb2, 0xfb, 0x97, 0xb0, 0x9e, 0xba, 0x3c, 0xd1, 0x7d, 0xd8, 0x4a, 0x6c, 0xe8, 0x74, 0xdb, - 0xa1, 0x11, 0x69, 0x5d, 0x9c, 0xd5, 0xee, 0x1e, 0x1f, 0xeb, 0xed, 0x76, 0x49, 0x99, 0xc9, 0x6d, - 0xd4, 0x9a, 0xad, 0x2e, 0xd6, 0x4b, 0x99, 0xfd, 0x03, 0xf9, 0xbb, 0xdc, 0x73, 0x32, 0x46, 0x2a, - 0xe4, 0xda, 0xc7, 0x17, 0x98, 0x6b, 0xcc, 0xc3, 0xd2, 0x99, 0xde, 0xa9, 0x95, 0x14, 0xb4, 0x06, - 0xc0, 0xbf, 0xb8, 0x57, 0xf8, 0x65, 0x29, 0xb3, 0xff, 0x5b, 0xd8, 0x98, 0x81, 0x72, 0xd1, 0x36, - 0x6c, 0x34, 0xba, 0x6d, 0x7e, 0xc2, 0xf9, 0x85, 0xd1, 0x39, 0xc5, 0x7a, 0xfb, 0xf4, 0xa2, 0x55, - 0x2f, 0xdd, 0x89, 0x31, 0x5a, 0x9d, 0x18, 0x43, 0x89, 0x31, 0x4e, 0xe2, 0x8c, 0xcc, 0xbe, 0xce, - 0x9f, 0x76, 0x41, 0x7d, 0x72, 0x9b, 0x9a, 0x67, 0xb5, 0x13, 0x6e, 0x93, 0x0a, 0xb9, 0x17, 0xcd, - 0xba, 0x7e, 0x51, 0x52, 0x50, 0x09, 0x8a, 0xc1, 0x5e, 0xc9, 0xcc, 0xc4, 0x28, 0x52, 0x26, 0xbb, - 0xff, 0x6b, 0xde, 0xaf, 0xb3, 0x1e, 0x42, 0xc9, 0x80, 0xbc, 0xd0, 0xf1, 0xd1, 0x45, 0xbb, 0xd9, - 0x79, 0x69, 0x34, 0xba, 0xad, 0x56, 0xe9, 0x0e, 0x7a, 0x08, 0x3b, 0xb3, 0xb8, 0x67, 0xcd, 0xf3, - 0xe6, 0x59, 0xad, 0x55, 0x52, 0xaa, 0x7f, 0x5a, 0x86, 0xfc, 0x77, 0xc1, 0xef, 0xa3, 0x48, 0x87, - 0x65, 0x79, 0x0a, 0x7a, 0x7f, 0xf1, 0x4f, 0x66, 0xe5, 0x45, 0x08, 0x19, 0xb5, 0xa1, 0x74, 0x42, - 0x58, 0x92, 0x56, 0x59, 0x04, 0xa9, 0x6f, 0xa1, 0x54, 0xb4, 0x45, 0xe5, 0xfa, 0xb7, 0xde, 0x5c, - 0xa5, 0x42, 0x41, 0x8b, 0x57, 0x66, 0x62, 0x0c, 0xa2, 0xa9, 0xe7, 0xe7, 0xac, 0x29, 0x59, 0xde, - 0x48, 0x4a, 0xe9, 0x57, 0x23, 0x36, 0x46, 0xdf, 0xc0, 0x12, 0x87, 0x20, 0x68, 0x67, 0x01, 0xca, - 0x2e, 0x6b, 0xf3, 0x10, 0x19, 0xaa, 0x41, 0x9e, 0x6f, 0x3f, 0x1a, 0x37, 0xeb, 0xb7, 0x55, 0x71, - 0x21, 0xc0, 0x65, 0x00, 0x82, 0xd0, 0xc3, 0x69, 0xd8, 0x98, 0xc0, 0x59, 0xe5, 0xdd, 0xf9, 0x02, - 0x12, 0x3f, 0xa1, 0x1f, 0x60, 0x63, 0x06, 0x92, 0x41, 0x7b, 0xef, 0x0a, 0x76, 0x16, 0xe7, 0xf4, - 0x07, 0xd8, 0x88, 0xe7, 0x34, 0xbc, 0xc5, 0x3f, 0x7a, 0x27, 0x10, 0x52, 0x7e, 0x7f, 0xb1, 0x18, - 0x3a, 0x82, 0xf5, 0x13, 0xc2, 0x12, 0x17, 0xd5, 0xac, 0xb4, 0x95, 0xe7, 0x4c, 0x52, 0x5e, 0x20, - 0x47, 0x9f, 0xfd, 0xa6, 0x3a, 0xb0, 0xd9, 0xa5, 0xff, 0xea, 0xa0, 0xe7, 0x5e, 0x1d, 0x8a, 0xeb, - 0xa5, 0xef, 0x7a, 0xc4, 0xa1, 0x76, 0x8f, 0x1e, 0x86, 0xff, 0x1e, 0x18, 0xbd, 0x1e, 0x1c, 0xc6, - 0x55, 0xbc, 0x5a, 0x16, 0x7f, 0x7e, 0xf9, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x41, 0xde, - 0x94, 0x85, 0x18, 0x00, 0x00, +var File_medifor_v1_pipeline_proto protoreflect.FileDescriptor + +var file_medifor_v1_pipeline_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x81, 0x01, + 0x0a, 0x07, 0x53, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x61, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x41, 0x73, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, + 0x70, 0x65, 0x43, 0x61, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x61, 0x4b, 0x65, + 0x79, 0x22, 0xb9, 0x04, 0x0a, 0x10, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x66, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, + 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x12, 0x3c, + 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, + 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x14, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x5f, 0x73, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x1a, 0x37, + 0x0a, 0x09, 0x54, 0x61, 0x67, 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, 0x1a, 0x3b, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x61, 0x67, 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, 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x65, 0x74, 0x61, 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, 0xda, 0x01, + 0x0a, 0x15, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, + 0x74, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe9, 0x05, 0x0a, 0x0d, 0x44, + 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x0d, + 0x72, 0x65, 0x71, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x71, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x0b, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x65, 0x72, 0x46, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, + 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x46, + 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6d, 0x65, 0x74, + 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x46, 0x75, 0x73, 0x65, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x66, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x75, 0x73, 0x65, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x5f, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, + 0x69, 0x63, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 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, + 0x1a, 0x3b, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 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, 0x1a, 0x37, 0x0a, + 0x09, 0x4d, 0x65, 0x74, 0x61, 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, 0x45, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x77, 0x61, 0x6e, 0x74, 0x5f, 0x66, 0x75, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x77, 0x61, 0x6e, 0x74, 0x46, 0x75, 0x73, 0x65, 0x64, 0x22, 0x5f, 0x0a, + 0x09, 0x44, 0x61, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x75, 0x74, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x55, 0x74, 0x63, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x75, 0x74, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x55, 0x74, 0x63, 0x22, 0x86, + 0x05, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x62, 0x6f, + 0x73, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, + 0x52, 0x09, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x04, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, + 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x0a, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x44, 0x61, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x61, 0x6e, + 0x74, 0x5f, 0x66, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x77, + 0x61, 0x6e, 0x74, 0x46, 0x75, 0x73, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x43, 0x6f, + 0x6c, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x15, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x13, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x16, + 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x66, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x37, + 0x0a, 0x09, 0x54, 0x61, 0x67, 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, 0x81, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb2, 0x02, 0x0a, 0x0d, + 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, 0x0a, + 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x66, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x66, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, + 0x61, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x4f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 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, 0xc5, 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x73, 0x65, 0x72, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x06, 0x66, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x06, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8d, 0x02, 0x0a, 0x0a, 0x46, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x0c, 0x66, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, + 0x65, 0x72, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x66, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x46, 0x75, 0x73, 0x65, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x66, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x75, 0x73, 0x65, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, + 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 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, 0x47, 0x0a, 0x11, 0x46, 0x75, 0x73, 0x65, + 0x41, 0x6c, 0x6c, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x66, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x66, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, + 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, + 0x72, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x75, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x49, 0x44, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xfb, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, + 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, + 0x54, 0x61, 0x67, 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, 0xd9, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x59, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x54, 0x61, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6b, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, + 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x54, 0x61, 0x67, 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, 0xbb, 0x02, 0x0a, 0x10, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x0a, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x74, 0x61, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x12, 0x59, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x67, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, + 0x3c, 0x0a, 0x0e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, + 0x12, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x3b, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xdf, 0x02, 0x0a, + 0x0c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 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, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x6d, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x72, 0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x67, + 0x70, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x67, 0x70, 0x75, 0x12, 0x2d, 0x0a, + 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, + 0x3d, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 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, 0x48, + 0x0a, 0x0c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, + 0x0a, 0x09, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x09, 0x61, + 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x22, 0xf0, 0x04, 0x0a, 0x15, 0x4c, 0x69, 0x73, + 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x0b, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x3b, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, + 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x12, 0x57, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x74, + 0x61, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x65, 0x74, 0x61, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x43, 0x6f, + 0x6c, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x66, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 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, 0x1a, 0x3e, 0x0a, 0x10, 0x45, + 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x61, 0x67, 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, 0x63, 0x0a, 0x0b, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x61, + 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x61, 0x73, + 0x4d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x78, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x61, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, + 0x22, 0x7d, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6d, 0x65, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x61, 0x73, + 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x61, 0x73, 0x4d, + 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x61, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, + 0xd8, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, + 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x59, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x49, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, + 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x0b, 0x66, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x74, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0a, 0x66, 0x75, 0x73, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x0d, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x70, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x70, 0x74, + 0x65, 0x64, 0x4f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x83, 0x03, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, + 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, + 0x67, 0x73, 0x12, 0x55, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, + 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x6e, 0x75, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, + 0x67, 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, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x61, + 0x67, 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, 0x46, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x62, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x52, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x42, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x1e, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x11, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x1a, 0x63, 0x0a, 0x15, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 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, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, + 0x69, 0x63, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x44, + 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x49, 0x64, 0x73, 0x22, 0xc4, 0x02, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, + 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x12, 0x5f, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, + 0x69, 0x63, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x61, 0x67, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 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, 0x1a, 0x3e, 0x0a, 0x10, 0x45, + 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x61, 0x67, 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, 0x60, 0x0a, 0x1e, 0x47, + 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x49, 0x64, 0x73, + 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x2a, 0x81, 0x01, + 0x0a, 0x0e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, + 0x12, 0x18, 0x0a, 0x14, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, + 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x45, + 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x51, 0x55, + 0x45, 0x55, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x49, 0x4d, 0x45, + 0x44, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, + 0x03, 0x2a, 0x68, 0x0a, 0x0f, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, + 0x1c, 0x0a, 0x18, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x1c, 0x0a, + 0x18, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x2a, 0x2e, 0x0a, 0x07, 0x53, + 0x6f, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, + 0x45, 0x54, 0x41, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x02, 0x2a, 0x60, 0x0a, 0x13, 0x46, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, + 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x46, + 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, + 0x4c, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x47, + 0x54, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x02, 0x2a, 0x45, 0x0a, + 0x09, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, + 0x41, 0x47, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x01, + 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, + 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x49, 0x44, + 0x45, 0x4f, 0x10, 0x03, 0x2a, 0x57, 0x0a, 0x16, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x12, 0x1c, + 0x0a, 0x18, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x52, 0x42, + 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, + 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, + 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x41, 0x4c, 0x10, 0x01, 0x32, 0xf7, 0x0a, + 0x0a, 0x08, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x44, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x53, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x53, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0f, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x04, 0x46, 0x75, 0x73, + 0x65, 0x12, 0x1b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x08, 0x46, 0x75, 0x73, 0x65, + 0x42, 0x79, 0x49, 0x44, 0x12, 0x1b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4f, 0x0a, 0x0a, 0x46, + 0x75, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x49, 0x44, 0x73, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x65, 0x41, 0x6c, 0x6c, + 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x65, 0x41, 0x6c, + 0x6c, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x13, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x28, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x13, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x1a, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x0e, + 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x23, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x64, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x61, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x70, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2a, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x73, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, + 0x63, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x66, 0x6f, 0x72, 0x65, 0x6e, + 0x73, 0x69, 0x63, 0x73, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_medifor_v1_pipeline_proto_rawDescOnce sync.Once + file_medifor_v1_pipeline_proto_rawDescData = file_medifor_v1_pipeline_proto_rawDesc +) + +func file_medifor_v1_pipeline_proto_rawDescGZIP() []byte { + file_medifor_v1_pipeline_proto_rawDescOnce.Do(func() { + file_medifor_v1_pipeline_proto_rawDescData = protoimpl.X.CompressGZIP(file_medifor_v1_pipeline_proto_rawDescData) + }) + return file_medifor_v1_pipeline_proto_rawDescData +} + +var file_medifor_v1_pipeline_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_medifor_v1_pipeline_proto_msgTypes = make([]protoimpl.MessageInfo, 56) +var file_medifor_v1_pipeline_proto_goTypes = []interface{}{ + (DetectionStage)(0), // 0: mediforproto.DetectionStage + (DetectionStatus)(0), // 1: mediforproto.DetectionStatus + (SortKey)(0), // 2: mediforproto.SortKey + (FusionThresholdType)(0), // 3: mediforproto.FusionThresholdType + (MediaType)(0), // 4: mediforproto.MediaType + (DetectionListVerbosity)(0), // 5: mediforproto.DetectionListVerbosity + (*SortCol)(nil), // 6: mediforproto.SortCol + (*DetectionRequest)(nil), // 7: mediforproto.DetectionRequest + (*AnalyticDetectionInfo)(nil), // 8: mediforproto.AnalyticDetectionInfo + (*DetectionInfo)(nil), // 9: mediforproto.DetectionInfo + (*DetectionInfoRequest)(nil), // 10: mediforproto.DetectionInfoRequest + (*DateRange)(nil), // 11: mediforproto.DateRange + (*DetectionListRequest)(nil), // 12: mediforproto.DetectionListRequest + (*DetectionList)(nil), // 13: mediforproto.DetectionList + (*FusionRequest)(nil), // 14: mediforproto.FusionRequest + (*FuserFusionInfo)(nil), // 15: mediforproto.FuserFusionInfo + (*FusionInfo)(nil), // 16: mediforproto.FusionInfo + (*FuseAllIDsRequest)(nil), // 17: mediforproto.FuseAllIDsRequest + (*FuseAllIDsResponse)(nil), // 18: mediforproto.FuseAllIDsResponse + (*UpdateDetectionTagsRequest)(nil), // 19: mediforproto.UpdateDetectionTagsRequest + (*DetectionTagInfoRequest)(nil), // 20: mediforproto.DetectionTagInfoRequest + (*DetectionTagInfo)(nil), // 21: mediforproto.DetectionTagInfo + (*DeleteDetectionRequest)(nil), // 22: mediforproto.DeleteDetectionRequest + (*AnalyticMeta)(nil), // 23: mediforproto.AnalyticMeta + (*AnalyticList)(nil), // 24: mediforproto.AnalyticList + (*ListDetectionsRequest)(nil), // 25: mediforproto.ListDetectionsRequest + (*ScoreFilter)(nil), // 26: mediforproto.ScoreFilter + (*MetaFilter)(nil), // 27: mediforproto.MetaFilter + (*UpdateDetectionMetadataRequest)(nil), // 28: mediforproto.UpdateDetectionMetadataRequest + (*GetAnalyticStatsRequest)(nil), // 29: mediforproto.GetAnalyticStatsRequest + (*GetAnalyticStatsResponse)(nil), // 30: mediforproto.GetAnalyticStatsResponse + (*AnalyticStats)(nil), // 31: mediforproto.AnalyticStats + (*GetHistogramRequest)(nil), // 32: mediforproto.GetHistogramRequest + (*GetHistogramResponse)(nil), // 33: mediforproto.GetHistogramResponse + (*Bucket)(nil), // 34: mediforproto.Bucket + (*DeleteFailedAnalyticsRequest)(nil), // 35: mediforproto.DeleteFailedAnalyticsRequest + (*DeleteFailedAnalyticsResponse)(nil), // 36: mediforproto.DeleteFailedAnalyticsResponse + (*DeletedAnalytics)(nil), // 37: mediforproto.DeletedAnalytics + (*GetAnalyticsWithScoresRequest)(nil), // 38: mediforproto.GetAnalyticsWithScoresRequest + (*GetAnalyticsWithScoresResponse)(nil), // 39: mediforproto.GetAnalyticsWithScoresResponse + nil, // 40: mediforproto.DetectionRequest.TagsEntry + nil, // 41: mediforproto.DetectionRequest.UserTagsEntry + nil, // 42: mediforproto.DetectionRequest.MetaEntry + nil, // 43: mediforproto.DetectionInfo.TagsEntry + nil, // 44: mediforproto.DetectionInfo.UserTagsEntry + nil, // 45: mediforproto.DetectionInfo.MetaEntry + nil, // 46: mediforproto.DetectionListRequest.TagsEntry + nil, // 47: mediforproto.FusionRequest.TagsEntry + nil, // 48: mediforproto.FusionInfo.TagsEntry + nil, // 49: mediforproto.UpdateDetectionTagsRequest.TagsEntry + nil, // 50: mediforproto.DetectionTagInfoRequest.RequireTagsEntry + nil, // 51: mediforproto.DetectionTagInfo.TagCountsEntry + nil, // 52: mediforproto.DetectionTagInfo.UserTagCountsEntry + nil, // 53: mediforproto.AnalyticMeta.UserFieldsEntry + nil, // 54: mediforproto.ListDetectionsRequest.TagsEntry + nil, // 55: mediforproto.ListDetectionsRequest.ExcludeTagsEntry + nil, // 56: mediforproto.UpdateDetectionMetadataRequest.MetadataEntry + nil, // 57: mediforproto.GetHistogramRequest.TagsEntry + nil, // 58: mediforproto.GetHistogramRequest.ExcludeTagsEntry + nil, // 59: mediforproto.DeleteFailedAnalyticsResponse.DeletedAnalyticsEntry + nil, // 60: mediforproto.GetAnalyticsWithScoresRequest.TagsEntry + nil, // 61: mediforproto.GetAnalyticsWithScoresRequest.ExcludeTagsEntry + (*Detection)(nil), // 62: mediforproto.Detection + (*Resource)(nil), // 63: mediforproto.Resource + (*Fusion)(nil), // 64: mediforproto.Fusion + (*Empty)(nil), // 65: mediforproto.Empty +} +var file_medifor_v1_pipeline_proto_depIdxs = []int32{ + 2, // 0: mediforproto.SortCol.key:type_name -> mediforproto.SortKey + 62, // 1: mediforproto.DetectionRequest.request:type_name -> mediforproto.Detection + 40, // 2: mediforproto.DetectionRequest.tags:type_name -> mediforproto.DetectionRequest.TagsEntry + 41, // 3: mediforproto.DetectionRequest.user_tags:type_name -> mediforproto.DetectionRequest.UserTagsEntry + 42, // 4: mediforproto.DetectionRequest.meta:type_name -> mediforproto.DetectionRequest.MetaEntry + 0, // 5: mediforproto.AnalyticDetectionInfo.stage:type_name -> mediforproto.DetectionStage + 1, // 6: mediforproto.AnalyticDetectionInfo.status:type_name -> mediforproto.DetectionStatus + 62, // 7: mediforproto.AnalyticDetectionInfo.detection:type_name -> mediforproto.Detection + 63, // 8: mediforproto.DetectionInfo.req_resources:type_name -> mediforproto.Resource + 8, // 9: mediforproto.DetectionInfo.analytic_info:type_name -> mediforproto.AnalyticDetectionInfo + 15, // 10: mediforproto.DetectionInfo.fusion_info:type_name -> mediforproto.FuserFusionInfo + 43, // 11: mediforproto.DetectionInfo.tags:type_name -> mediforproto.DetectionInfo.TagsEntry + 44, // 12: mediforproto.DetectionInfo.user_tags:type_name -> mediforproto.DetectionInfo.UserTagsEntry + 45, // 13: mediforproto.DetectionInfo.meta:type_name -> mediforproto.DetectionInfo.MetaEntry + 5, // 14: mediforproto.DetectionListRequest.verbosity:type_name -> mediforproto.DetectionListVerbosity + 46, // 15: mediforproto.DetectionListRequest.tags:type_name -> mediforproto.DetectionListRequest.TagsEntry + 11, // 16: mediforproto.DetectionListRequest.date_range:type_name -> mediforproto.DateRange + 6, // 17: mediforproto.DetectionListRequest.order_by:type_name -> mediforproto.SortCol + 3, // 18: mediforproto.DetectionListRequest.fusion_threshold_type:type_name -> mediforproto.FusionThresholdType + 9, // 19: mediforproto.DetectionList.detections:type_name -> mediforproto.DetectionInfo + 64, // 20: mediforproto.FusionRequest.request:type_name -> mediforproto.Fusion + 47, // 21: mediforproto.FusionRequest.tags:type_name -> mediforproto.FusionRequest.TagsEntry + 0, // 22: mediforproto.FuserFusionInfo.stage:type_name -> mediforproto.DetectionStage + 1, // 23: mediforproto.FuserFusionInfo.status:type_name -> mediforproto.DetectionStatus + 64, // 24: mediforproto.FuserFusionInfo.fusion:type_name -> mediforproto.Fusion + 15, // 25: mediforproto.FusionInfo.fusion_infos:type_name -> mediforproto.FuserFusionInfo + 48, // 26: mediforproto.FusionInfo.tags:type_name -> mediforproto.FusionInfo.TagsEntry + 49, // 27: mediforproto.UpdateDetectionTagsRequest.tags:type_name -> mediforproto.UpdateDetectionTagsRequest.TagsEntry + 50, // 28: mediforproto.DetectionTagInfoRequest.require_tags:type_name -> mediforproto.DetectionTagInfoRequest.RequireTagsEntry + 51, // 29: mediforproto.DetectionTagInfo.tag_counts:type_name -> mediforproto.DetectionTagInfo.TagCountsEntry + 52, // 30: mediforproto.DetectionTagInfo.user_tag_counts:type_name -> mediforproto.DetectionTagInfo.UserTagCountsEntry + 4, // 31: mediforproto.AnalyticMeta.media:type_name -> mediforproto.MediaType + 53, // 32: mediforproto.AnalyticMeta.user_fields:type_name -> mediforproto.AnalyticMeta.UserFieldsEntry + 23, // 33: mediforproto.AnalyticList.analytics:type_name -> mediforproto.AnalyticMeta + 26, // 34: mediforproto.ListDetectionsRequest.score_filter:type_name -> mediforproto.ScoreFilter + 27, // 35: mediforproto.ListDetectionsRequest.meta_filters:type_name -> mediforproto.MetaFilter + 54, // 36: mediforproto.ListDetectionsRequest.tags:type_name -> mediforproto.ListDetectionsRequest.TagsEntry + 55, // 37: mediforproto.ListDetectionsRequest.exclude_tags:type_name -> mediforproto.ListDetectionsRequest.ExcludeTagsEntry + 6, // 38: mediforproto.ListDetectionsRequest.order_by:type_name -> mediforproto.SortCol + 56, // 39: mediforproto.UpdateDetectionMetadataRequest.metadata:type_name -> mediforproto.UpdateDetectionMetadataRequest.MetadataEntry + 31, // 40: mediforproto.GetAnalyticStatsResponse.analytic_stats:type_name -> mediforproto.AnalyticStats + 31, // 41: mediforproto.GetAnalyticStatsResponse.fuser_stats:type_name -> mediforproto.AnalyticStats + 57, // 42: mediforproto.GetHistogramRequest.tags:type_name -> mediforproto.GetHistogramRequest.TagsEntry + 58, // 43: mediforproto.GetHistogramRequest.exclude_tags:type_name -> mediforproto.GetHistogramRequest.ExcludeTagsEntry + 34, // 44: mediforproto.GetHistogramResponse.buckets:type_name -> mediforproto.Bucket + 59, // 45: mediforproto.DeleteFailedAnalyticsResponse.deleted_analytics:type_name -> mediforproto.DeleteFailedAnalyticsResponse.DeletedAnalyticsEntry + 60, // 46: mediforproto.GetAnalyticsWithScoresRequest.tags:type_name -> mediforproto.GetAnalyticsWithScoresRequest.TagsEntry + 61, // 47: mediforproto.GetAnalyticsWithScoresRequest.exclude_tags:type_name -> mediforproto.GetAnalyticsWithScoresRequest.ExcludeTagsEntry + 37, // 48: mediforproto.DeleteFailedAnalyticsResponse.DeletedAnalyticsEntry.value:type_name -> mediforproto.DeletedAnalytics + 7, // 49: mediforproto.Pipeline.Detect:input_type -> mediforproto.DetectionRequest + 10, // 50: mediforproto.Pipeline.GetDetectionInfo:input_type -> mediforproto.DetectionInfoRequest + 12, // 51: mediforproto.Pipeline.GetDetectionList:input_type -> mediforproto.DetectionListRequest + 22, // 52: mediforproto.Pipeline.DeleteDetection:input_type -> mediforproto.DeleteDetectionRequest + 14, // 53: mediforproto.Pipeline.Fuse:input_type -> mediforproto.FusionRequest + 14, // 54: mediforproto.Pipeline.FuseByID:input_type -> mediforproto.FusionRequest + 17, // 55: mediforproto.Pipeline.FuseAllIDs:input_type -> mediforproto.FuseAllIDsRequest + 19, // 56: mediforproto.Pipeline.UpdateDetectionTags:input_type -> mediforproto.UpdateDetectionTagsRequest + 20, // 57: mediforproto.Pipeline.GetDetectionTagInfo:input_type -> mediforproto.DetectionTagInfoRequest + 65, // 58: mediforproto.Pipeline.GetAnalyticMeta:input_type -> mediforproto.Empty + 25, // 59: mediforproto.Pipeline.ListDetections:input_type -> mediforproto.ListDetectionsRequest + 28, // 60: mediforproto.Pipeline.UpdateDetectionMetadata:input_type -> mediforproto.UpdateDetectionMetadataRequest + 29, // 61: mediforproto.Pipeline.GetAnalyticStats:input_type -> mediforproto.GetAnalyticStatsRequest + 32, // 62: mediforproto.Pipeline.GetHistogram:input_type -> mediforproto.GetHistogramRequest + 35, // 63: mediforproto.Pipeline.DeleteFailedAnalytics:input_type -> mediforproto.DeleteFailedAnalyticsRequest + 38, // 64: mediforproto.Pipeline.GetAnalyticsWithScores:input_type -> mediforproto.GetAnalyticsWithScoresRequest + 9, // 65: mediforproto.Pipeline.Detect:output_type -> mediforproto.DetectionInfo + 9, // 66: mediforproto.Pipeline.GetDetectionInfo:output_type -> mediforproto.DetectionInfo + 13, // 67: mediforproto.Pipeline.GetDetectionList:output_type -> mediforproto.DetectionList + 65, // 68: mediforproto.Pipeline.DeleteDetection:output_type -> mediforproto.Empty + 16, // 69: mediforproto.Pipeline.Fuse:output_type -> mediforproto.FusionInfo + 16, // 70: mediforproto.Pipeline.FuseByID:output_type -> mediforproto.FusionInfo + 18, // 71: mediforproto.Pipeline.FuseAllIDs:output_type -> mediforproto.FuseAllIDsResponse + 9, // 72: mediforproto.Pipeline.UpdateDetectionTags:output_type -> mediforproto.DetectionInfo + 21, // 73: mediforproto.Pipeline.GetDetectionTagInfo:output_type -> mediforproto.DetectionTagInfo + 24, // 74: mediforproto.Pipeline.GetAnalyticMeta:output_type -> mediforproto.AnalyticList + 13, // 75: mediforproto.Pipeline.ListDetections:output_type -> mediforproto.DetectionList + 9, // 76: mediforproto.Pipeline.UpdateDetectionMetadata:output_type -> mediforproto.DetectionInfo + 30, // 77: mediforproto.Pipeline.GetAnalyticStats:output_type -> mediforproto.GetAnalyticStatsResponse + 33, // 78: mediforproto.Pipeline.GetHistogram:output_type -> mediforproto.GetHistogramResponse + 36, // 79: mediforproto.Pipeline.DeleteFailedAnalytics:output_type -> mediforproto.DeleteFailedAnalyticsResponse + 39, // 80: mediforproto.Pipeline.GetAnalyticsWithScores:output_type -> mediforproto.GetAnalyticsWithScoresResponse + 65, // [65:81] is the sub-list for method output_type + 49, // [49:65] is the sub-list for method input_type + 49, // [49:49] is the sub-list for extension type_name + 49, // [49:49] is the sub-list for extension extendee + 0, // [0:49] is the sub-list for field type_name +} + +func init() { file_medifor_v1_pipeline_proto_init() } +func file_medifor_v1_pipeline_proto_init() { + if File_medifor_v1_pipeline_proto != nil { + return + } + file_medifor_v1_analytic_proto_init() + file_medifor_v1_fusion_proto_init() + if !protoimpl.UnsafeEnabled { + file_medifor_v1_pipeline_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SortCol); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyticDetectionInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetectionInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetectionInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DateRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetectionListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetectionList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FusionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FuserFusionInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FusionInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FuseAllIDsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FuseAllIDsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDetectionTagsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetectionTagInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetectionTagInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteDetectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyticMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyticList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDetectionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScoreFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetaFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDetectionMetadataRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAnalyticStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAnalyticStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyticStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistogramRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHistogramResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Bucket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFailedAnalyticsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFailedAnalyticsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeletedAnalytics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAnalyticsWithScoresRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_pipeline_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAnalyticsWithScoresResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_medifor_v1_pipeline_proto_rawDesc, + NumEnums: 6, + NumMessages: 56, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_medifor_v1_pipeline_proto_goTypes, + DependencyIndexes: file_medifor_v1_pipeline_proto_depIdxs, + EnumInfos: file_medifor_v1_pipeline_proto_enumTypes, + MessageInfos: file_medifor_v1_pipeline_proto_msgTypes, + }.Build() + File_medifor_v1_pipeline_proto = out.File + file_medifor_v1_pipeline_proto_rawDesc = nil + file_medifor_v1_pipeline_proto_goTypes = nil + file_medifor_v1_pipeline_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +const _ = grpc.SupportPackageIsVersion6 // PipelineClient is the client API for Pipeline service. // @@ -1756,13 +4080,19 @@ type PipelineClient interface { UpdateDetectionTags(ctx context.Context, in *UpdateDetectionTagsRequest, opts ...grpc.CallOption) (*DetectionInfo, error) GetDetectionTagInfo(ctx context.Context, in *DetectionTagInfoRequest, opts ...grpc.CallOption) (*DetectionTagInfo, error) GetAnalyticMeta(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*AnalyticList, error) + ListDetections(ctx context.Context, in *ListDetectionsRequest, opts ...grpc.CallOption) (*DetectionList, error) + UpdateDetectionMetadata(ctx context.Context, in *UpdateDetectionMetadataRequest, opts ...grpc.CallOption) (*DetectionInfo, error) + GetAnalyticStats(ctx context.Context, in *GetAnalyticStatsRequest, opts ...grpc.CallOption) (*GetAnalyticStatsResponse, error) + GetHistogram(ctx context.Context, in *GetHistogramRequest, opts ...grpc.CallOption) (*GetHistogramResponse, error) + DeleteFailedAnalytics(ctx context.Context, in *DeleteFailedAnalyticsRequest, opts ...grpc.CallOption) (*DeleteFailedAnalyticsResponse, error) + GetAnalyticsWithScores(ctx context.Context, in *GetAnalyticsWithScoresRequest, opts ...grpc.CallOption) (*GetAnalyticsWithScoresResponse, error) } type pipelineClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewPipelineClient(cc *grpc.ClientConn) PipelineClient { +func NewPipelineClient(cc grpc.ClientConnInterface) PipelineClient { return &pipelineClient{cc} } @@ -1856,6 +4186,60 @@ func (c *pipelineClient) GetAnalyticMeta(ctx context.Context, in *Empty, opts .. return out, nil } +func (c *pipelineClient) ListDetections(ctx context.Context, in *ListDetectionsRequest, opts ...grpc.CallOption) (*DetectionList, error) { + out := new(DetectionList) + err := c.cc.Invoke(ctx, "/mediforproto.Pipeline/ListDetections", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pipelineClient) UpdateDetectionMetadata(ctx context.Context, in *UpdateDetectionMetadataRequest, opts ...grpc.CallOption) (*DetectionInfo, error) { + out := new(DetectionInfo) + err := c.cc.Invoke(ctx, "/mediforproto.Pipeline/UpdateDetectionMetadata", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pipelineClient) GetAnalyticStats(ctx context.Context, in *GetAnalyticStatsRequest, opts ...grpc.CallOption) (*GetAnalyticStatsResponse, error) { + out := new(GetAnalyticStatsResponse) + err := c.cc.Invoke(ctx, "/mediforproto.Pipeline/GetAnalyticStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pipelineClient) GetHistogram(ctx context.Context, in *GetHistogramRequest, opts ...grpc.CallOption) (*GetHistogramResponse, error) { + out := new(GetHistogramResponse) + err := c.cc.Invoke(ctx, "/mediforproto.Pipeline/GetHistogram", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pipelineClient) DeleteFailedAnalytics(ctx context.Context, in *DeleteFailedAnalyticsRequest, opts ...grpc.CallOption) (*DeleteFailedAnalyticsResponse, error) { + out := new(DeleteFailedAnalyticsResponse) + err := c.cc.Invoke(ctx, "/mediforproto.Pipeline/DeleteFailedAnalytics", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pipelineClient) GetAnalyticsWithScores(ctx context.Context, in *GetAnalyticsWithScoresRequest, opts ...grpc.CallOption) (*GetAnalyticsWithScoresResponse, error) { + out := new(GetAnalyticsWithScoresResponse) + err := c.cc.Invoke(ctx, "/mediforproto.Pipeline/GetAnalyticsWithScores", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // PipelineServer is the server API for Pipeline service. type PipelineServer interface { Detect(context.Context, *DetectionRequest) (*DetectionInfo, error) @@ -1868,42 +4252,66 @@ type PipelineServer interface { UpdateDetectionTags(context.Context, *UpdateDetectionTagsRequest) (*DetectionInfo, error) GetDetectionTagInfo(context.Context, *DetectionTagInfoRequest) (*DetectionTagInfo, error) GetAnalyticMeta(context.Context, *Empty) (*AnalyticList, error) + ListDetections(context.Context, *ListDetectionsRequest) (*DetectionList, error) + UpdateDetectionMetadata(context.Context, *UpdateDetectionMetadataRequest) (*DetectionInfo, error) + GetAnalyticStats(context.Context, *GetAnalyticStatsRequest) (*GetAnalyticStatsResponse, error) + GetHistogram(context.Context, *GetHistogramRequest) (*GetHistogramResponse, error) + DeleteFailedAnalytics(context.Context, *DeleteFailedAnalyticsRequest) (*DeleteFailedAnalyticsResponse, error) + GetAnalyticsWithScores(context.Context, *GetAnalyticsWithScoresRequest) (*GetAnalyticsWithScoresResponse, error) } // UnimplementedPipelineServer can be embedded to have forward compatible implementations. type UnimplementedPipelineServer struct { } -func (*UnimplementedPipelineServer) Detect(ctx context.Context, req *DetectionRequest) (*DetectionInfo, error) { +func (*UnimplementedPipelineServer) Detect(context.Context, *DetectionRequest) (*DetectionInfo, error) { return nil, status.Errorf(codes.Unimplemented, "method Detect not implemented") } -func (*UnimplementedPipelineServer) GetDetectionInfo(ctx context.Context, req *DetectionInfoRequest) (*DetectionInfo, error) { +func (*UnimplementedPipelineServer) GetDetectionInfo(context.Context, *DetectionInfoRequest) (*DetectionInfo, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDetectionInfo not implemented") } -func (*UnimplementedPipelineServer) GetDetectionList(ctx context.Context, req *DetectionListRequest) (*DetectionList, error) { +func (*UnimplementedPipelineServer) GetDetectionList(context.Context, *DetectionListRequest) (*DetectionList, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDetectionList not implemented") } -func (*UnimplementedPipelineServer) DeleteDetection(ctx context.Context, req *DeleteDetectionRequest) (*Empty, error) { +func (*UnimplementedPipelineServer) DeleteDetection(context.Context, *DeleteDetectionRequest) (*Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteDetection not implemented") } -func (*UnimplementedPipelineServer) Fuse(ctx context.Context, req *FusionRequest) (*FusionInfo, error) { +func (*UnimplementedPipelineServer) Fuse(context.Context, *FusionRequest) (*FusionInfo, error) { return nil, status.Errorf(codes.Unimplemented, "method Fuse not implemented") } -func (*UnimplementedPipelineServer) FuseByID(ctx context.Context, req *FusionRequest) (*FusionInfo, error) { +func (*UnimplementedPipelineServer) FuseByID(context.Context, *FusionRequest) (*FusionInfo, error) { return nil, status.Errorf(codes.Unimplemented, "method FuseByID not implemented") } -func (*UnimplementedPipelineServer) FuseAllIDs(ctx context.Context, req *FuseAllIDsRequest) (*FuseAllIDsResponse, error) { +func (*UnimplementedPipelineServer) FuseAllIDs(context.Context, *FuseAllIDsRequest) (*FuseAllIDsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FuseAllIDs not implemented") } -func (*UnimplementedPipelineServer) UpdateDetectionTags(ctx context.Context, req *UpdateDetectionTagsRequest) (*DetectionInfo, error) { +func (*UnimplementedPipelineServer) UpdateDetectionTags(context.Context, *UpdateDetectionTagsRequest) (*DetectionInfo, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateDetectionTags not implemented") } -func (*UnimplementedPipelineServer) GetDetectionTagInfo(ctx context.Context, req *DetectionTagInfoRequest) (*DetectionTagInfo, error) { +func (*UnimplementedPipelineServer) GetDetectionTagInfo(context.Context, *DetectionTagInfoRequest) (*DetectionTagInfo, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDetectionTagInfo not implemented") } -func (*UnimplementedPipelineServer) GetAnalyticMeta(ctx context.Context, req *Empty) (*AnalyticList, error) { +func (*UnimplementedPipelineServer) GetAnalyticMeta(context.Context, *Empty) (*AnalyticList, error) { return nil, status.Errorf(codes.Unimplemented, "method GetAnalyticMeta not implemented") } +func (*UnimplementedPipelineServer) ListDetections(context.Context, *ListDetectionsRequest) (*DetectionList, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDetections not implemented") +} +func (*UnimplementedPipelineServer) UpdateDetectionMetadata(context.Context, *UpdateDetectionMetadataRequest) (*DetectionInfo, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDetectionMetadata not implemented") +} +func (*UnimplementedPipelineServer) GetAnalyticStats(context.Context, *GetAnalyticStatsRequest) (*GetAnalyticStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAnalyticStats not implemented") +} +func (*UnimplementedPipelineServer) GetHistogram(context.Context, *GetHistogramRequest) (*GetHistogramResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHistogram not implemented") +} +func (*UnimplementedPipelineServer) DeleteFailedAnalytics(context.Context, *DeleteFailedAnalyticsRequest) (*DeleteFailedAnalyticsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteFailedAnalytics not implemented") +} +func (*UnimplementedPipelineServer) GetAnalyticsWithScores(context.Context, *GetAnalyticsWithScoresRequest) (*GetAnalyticsWithScoresResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAnalyticsWithScores not implemented") +} func RegisterPipelineServer(s *grpc.Server, srv PipelineServer) { s.RegisterService(&_Pipeline_serviceDesc, srv) @@ -2089,6 +4497,114 @@ func _Pipeline_GetAnalyticMeta_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Pipeline_ListDetections_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDetectionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServer).ListDetections(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mediforproto.Pipeline/ListDetections", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServer).ListDetections(ctx, req.(*ListDetectionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Pipeline_UpdateDetectionMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDetectionMetadataRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServer).UpdateDetectionMetadata(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mediforproto.Pipeline/UpdateDetectionMetadata", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServer).UpdateDetectionMetadata(ctx, req.(*UpdateDetectionMetadataRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Pipeline_GetAnalyticStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAnalyticStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServer).GetAnalyticStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mediforproto.Pipeline/GetAnalyticStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServer).GetAnalyticStats(ctx, req.(*GetAnalyticStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Pipeline_GetHistogram_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetHistogramRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServer).GetHistogram(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mediforproto.Pipeline/GetHistogram", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServer).GetHistogram(ctx, req.(*GetHistogramRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Pipeline_DeleteFailedAnalytics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteFailedAnalyticsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServer).DeleteFailedAnalytics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mediforproto.Pipeline/DeleteFailedAnalytics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServer).DeleteFailedAnalytics(ctx, req.(*DeleteFailedAnalyticsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Pipeline_GetAnalyticsWithScores_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAnalyticsWithScoresRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServer).GetAnalyticsWithScores(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mediforproto.Pipeline/GetAnalyticsWithScores", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServer).GetAnalyticsWithScores(ctx, req.(*GetAnalyticsWithScoresRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Pipeline_serviceDesc = grpc.ServiceDesc{ ServiceName: "mediforproto.Pipeline", HandlerType: (*PipelineServer)(nil), @@ -2133,6 +4649,30 @@ var _Pipeline_serviceDesc = grpc.ServiceDesc{ MethodName: "GetAnalyticMeta", Handler: _Pipeline_GetAnalyticMeta_Handler, }, + { + MethodName: "ListDetections", + Handler: _Pipeline_ListDetections_Handler, + }, + { + MethodName: "UpdateDetectionMetadata", + Handler: _Pipeline_UpdateDetectionMetadata_Handler, + }, + { + MethodName: "GetAnalyticStats", + Handler: _Pipeline_GetAnalyticStats_Handler, + }, + { + MethodName: "GetHistogram", + Handler: _Pipeline_GetHistogram_Handler, + }, + { + MethodName: "DeleteFailedAnalytics", + Handler: _Pipeline_DeleteFailedAnalytics_Handler, + }, + { + MethodName: "GetAnalyticsWithScores", + Handler: _Pipeline_GetAnalyticsWithScores_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "medifor/v1/pipeline.proto", diff --git a/pkg/mediforproto/provenance.pb.go b/pkg/mediforproto/provenance.pb.go index f48b747..ab3a0a1 100644 --- a/pkg/mediforproto/provenance.pb.go +++ b/pkg/mediforproto/provenance.pb.go @@ -1,28 +1,28 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 // source: medifor/v1/provenance.proto package mediforproto import ( context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type LinkType int32 @@ -34,86 +34,115 @@ const ( LinkType_LOCATION LinkType = 4 ) -var LinkType_name = map[int32]string{ - 0: "SPLICE", - 1: "PROVENANCE", - 2: "SPEAKER", - 3: "CAMERA", - 4: "LOCATION", -} +// Enum value maps for LinkType. +var ( + LinkType_name = map[int32]string{ + 0: "SPLICE", + 1: "PROVENANCE", + 2: "SPEAKER", + 3: "CAMERA", + 4: "LOCATION", + } + LinkType_value = map[string]int32{ + "SPLICE": 0, + "PROVENANCE": 1, + "SPEAKER": 2, + "CAMERA": 3, + "LOCATION": 4, + } +) -var LinkType_value = map[string]int32{ - "SPLICE": 0, - "PROVENANCE": 1, - "SPEAKER": 2, - "CAMERA": 3, - "LOCATION": 4, +func (x LinkType) Enum() *LinkType { + p := new(LinkType) + *p = x + return p } func (x LinkType) String() string { - return proto.EnumName(LinkType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LinkType) Descriptor() protoreflect.EnumDescriptor { + return file_medifor_v1_provenance_proto_enumTypes[0].Descriptor() +} + +func (LinkType) Type() protoreflect.EnumType { + return &file_medifor_v1_provenance_proto_enumTypes[0] } +func (x LinkType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LinkType.Descriptor instead. func (LinkType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_77e2b3056807758b, []int{0} + return file_medifor_v1_provenance_proto_rawDescGZIP(), []int{0} } // FilterRequest is used to ask a provenance analytic to return the // top N matches for a given image. type ProvenanceFilteringRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Unique identifier for the request. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // The image to be sent to the provenance analytic. Image *Resource `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` // The number of results to return - ResultLimit int32 `protobuf:"varint,3,opt,name=result_limit,json=resultLimit,proto3" json:"result_limit,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ResultLimit int32 `protobuf:"varint,3,opt,name=result_limit,json=resultLimit,proto3" json:"result_limit,omitempty"` } -func (m *ProvenanceFilteringRequest) Reset() { *m = ProvenanceFilteringRequest{} } -func (m *ProvenanceFilteringRequest) String() string { return proto.CompactTextString(m) } -func (*ProvenanceFilteringRequest) ProtoMessage() {} -func (*ProvenanceFilteringRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_77e2b3056807758b, []int{0} +func (x *ProvenanceFilteringRequest) Reset() { + *x = ProvenanceFilteringRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_provenance_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ProvenanceFilteringRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProvenanceFilteringRequest.Unmarshal(m, b) -} -func (m *ProvenanceFilteringRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProvenanceFilteringRequest.Marshal(b, m, deterministic) +func (x *ProvenanceFilteringRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ProvenanceFilteringRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProvenanceFilteringRequest.Merge(m, src) -} -func (m *ProvenanceFilteringRequest) XXX_Size() int { - return xxx_messageInfo_ProvenanceFilteringRequest.Size(m) -} -func (m *ProvenanceFilteringRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProvenanceFilteringRequest.DiscardUnknown(m) + +func (*ProvenanceFilteringRequest) ProtoMessage() {} + +func (x *ProvenanceFilteringRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_provenance_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_ProvenanceFilteringRequest proto.InternalMessageInfo +// Deprecated: Use ProvenanceFilteringRequest.ProtoReflect.Descriptor instead. +func (*ProvenanceFilteringRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_provenance_proto_rawDescGZIP(), []int{0} +} -func (m *ProvenanceFilteringRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *ProvenanceFilteringRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *ProvenanceFilteringRequest) GetImage() *Resource { - if m != nil { - return m.Image +func (x *ProvenanceFilteringRequest) GetImage() *Resource { + if x != nil { + return x.Image } return nil } -func (m *ProvenanceFilteringRequest) GetResultLimit() int32 { - if m != nil { - return m.ResultLimit +func (x *ProvenanceFilteringRequest) GetResultLimit() int32 { + if x != nil { + return x.ResultLimit } return 0 } @@ -121,59 +150,67 @@ func (m *ProvenanceFilteringRequest) GetResultLimit() int32 { // ImageMatch contains the image identifier and score denoting how // closely it matches the probe image. type ImageMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Unique identifier for the image. ImageId string `protobuf:"bytes,1,opt,name=image_id,json=imageId,proto3" json:"image_id,omitempty"` // The image resource. MatchingImage *Resource `protobuf:"bytes,2,opt,name=matching_image,json=matchingImage,proto3" json:"matching_image,omitempty"` // The score for the matching image. - Score float32 `protobuf:"fixed32,3,opt,name=score,proto3" json:"score,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Score float32 `protobuf:"fixed32,3,opt,name=score,proto3" json:"score,omitempty"` } -func (m *ImageMatch) Reset() { *m = ImageMatch{} } -func (m *ImageMatch) String() string { return proto.CompactTextString(m) } -func (*ImageMatch) ProtoMessage() {} -func (*ImageMatch) Descriptor() ([]byte, []int) { - return fileDescriptor_77e2b3056807758b, []int{1} +func (x *ImageMatch) Reset() { + *x = ImageMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_provenance_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageMatch) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageMatch.Unmarshal(m, b) -} -func (m *ImageMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageMatch.Marshal(b, m, deterministic) -} -func (m *ImageMatch) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageMatch.Merge(m, src) +func (x *ImageMatch) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageMatch) XXX_Size() int { - return xxx_messageInfo_ImageMatch.Size(m) -} -func (m *ImageMatch) XXX_DiscardUnknown() { - xxx_messageInfo_ImageMatch.DiscardUnknown(m) + +func (*ImageMatch) ProtoMessage() {} + +func (x *ImageMatch) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_provenance_proto_msgTypes[1] + 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) } -var xxx_messageInfo_ImageMatch proto.InternalMessageInfo +// Deprecated: Use ImageMatch.ProtoReflect.Descriptor instead. +func (*ImageMatch) Descriptor() ([]byte, []int) { + return file_medifor_v1_provenance_proto_rawDescGZIP(), []int{1} +} -func (m *ImageMatch) GetImageId() string { - if m != nil { - return m.ImageId +func (x *ImageMatch) GetImageId() string { + if x != nil { + return x.ImageId } return "" } -func (m *ImageMatch) GetMatchingImage() *Resource { - if m != nil { - return m.MatchingImage +func (x *ImageMatch) GetMatchingImage() *Resource { + if x != nil { + return x.MatchingImage } return nil } -func (m *ImageMatch) GetScore() float32 { - if m != nil { - return m.Score +func (x *ImageMatch) GetScore() float32 { + if x != nil { + return x.Score } return 0 } @@ -181,51 +218,59 @@ func (m *ImageMatch) GetScore() float32 { // ImageFilter contains the top N results that match the probe image // along with the corresponding scores. type FilteringResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // List of matching images with scores. The length of the list // is determined by the result_limit provided in the request. Matches []*ImageMatch `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"` // Probe image sent for the filter request, reference (Optional)/ - Probe *Resource `protobuf:"bytes,2,opt,name=probe,proto3" json:"probe,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Probe *Resource `protobuf:"bytes,2,opt,name=probe,proto3" json:"probe,omitempty"` } -func (m *FilteringResult) Reset() { *m = FilteringResult{} } -func (m *FilteringResult) String() string { return proto.CompactTextString(m) } -func (*FilteringResult) ProtoMessage() {} -func (*FilteringResult) Descriptor() ([]byte, []int) { - return fileDescriptor_77e2b3056807758b, []int{2} +func (x *FilteringResult) Reset() { + *x = FilteringResult{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_provenance_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FilteringResult) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FilteringResult.Unmarshal(m, b) -} -func (m *FilteringResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FilteringResult.Marshal(b, m, deterministic) -} -func (m *FilteringResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_FilteringResult.Merge(m, src) -} -func (m *FilteringResult) XXX_Size() int { - return xxx_messageInfo_FilteringResult.Size(m) +func (x *FilteringResult) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FilteringResult) XXX_DiscardUnknown() { - xxx_messageInfo_FilteringResult.DiscardUnknown(m) + +func (*FilteringResult) ProtoMessage() {} + +func (x *FilteringResult) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_provenance_proto_msgTypes[2] + 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) } -var xxx_messageInfo_FilteringResult proto.InternalMessageInfo +// Deprecated: Use FilteringResult.ProtoReflect.Descriptor instead. +func (*FilteringResult) Descriptor() ([]byte, []int) { + return file_medifor_v1_provenance_proto_rawDescGZIP(), []int{2} +} -func (m *FilteringResult) GetMatches() []*ImageMatch { - if m != nil { - return m.Matches +func (x *FilteringResult) GetMatches() []*ImageMatch { + if x != nil { + return x.Matches } return nil } -func (m *FilteringResult) GetProbe() *Resource { - if m != nil { - return m.Probe +func (x *FilteringResult) GetProbe() *Resource { + if x != nil { + return x.Probe } return nil } @@ -233,65 +278,77 @@ func (m *FilteringResult) GetProbe() *Resource { // ProvenanceGraphRequest provides a provenance analytic with a probe image // and the results of the filtering task to the analytic. type ProvenanceGraphRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Unique identifier for the request. RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // The image to be sent to the provenance analytic. Image *Resource `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` // Image matches from the provenance filtering task - FilterResults []*ImageMatch `protobuf:"bytes,3,rep,name=filter_results,json=filterResults,proto3" json:"filter_results,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + FilterResults []*ImageMatch `protobuf:"bytes,3,rep,name=filter_results,json=filterResults,proto3" json:"filter_results,omitempty"` } -func (m *ProvenanceGraphRequest) Reset() { *m = ProvenanceGraphRequest{} } -func (m *ProvenanceGraphRequest) String() string { return proto.CompactTextString(m) } -func (*ProvenanceGraphRequest) ProtoMessage() {} -func (*ProvenanceGraphRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_77e2b3056807758b, []int{3} +func (x *ProvenanceGraphRequest) Reset() { + *x = ProvenanceGraphRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_provenance_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ProvenanceGraphRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProvenanceGraphRequest.Unmarshal(m, b) -} -func (m *ProvenanceGraphRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProvenanceGraphRequest.Marshal(b, m, deterministic) +func (x *ProvenanceGraphRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ProvenanceGraphRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProvenanceGraphRequest.Merge(m, src) -} -func (m *ProvenanceGraphRequest) XXX_Size() int { - return xxx_messageInfo_ProvenanceGraphRequest.Size(m) -} -func (m *ProvenanceGraphRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProvenanceGraphRequest.DiscardUnknown(m) + +func (*ProvenanceGraphRequest) ProtoMessage() {} + +func (x *ProvenanceGraphRequest) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_provenance_proto_msgTypes[3] + 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) } -var xxx_messageInfo_ProvenanceGraphRequest proto.InternalMessageInfo +// Deprecated: Use ProvenanceGraphRequest.ProtoReflect.Descriptor instead. +func (*ProvenanceGraphRequest) Descriptor() ([]byte, []int) { + return file_medifor_v1_provenance_proto_rawDescGZIP(), []int{3} +} -func (m *ProvenanceGraphRequest) GetRequestId() string { - if m != nil { - return m.RequestId +func (x *ProvenanceGraphRequest) GetRequestId() string { + if x != nil { + return x.RequestId } return "" } -func (m *ProvenanceGraphRequest) GetImage() *Resource { - if m != nil { - return m.Image +func (x *ProvenanceGraphRequest) GetImage() *Resource { + if x != nil { + return x.Image } return nil } -func (m *ProvenanceGraphRequest) GetFilterResults() []*ImageMatch { - if m != nil { - return m.FilterResults +func (x *ProvenanceGraphRequest) GetFilterResults() []*ImageMatch { + if x != nil { + return x.FilterResults } return nil } // Association provides details describing the relationship between two probes. type Association struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // The specific tyle of link created Type LinkType `protobuf:"varint,1,opt,name=type,proto3,enum=mediforproto.LinkType" json:"type,omitempty"` // UUID of the probe image @@ -301,245 +358,459 @@ type Association struct { // Real number that is higher if the association exists. Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"` // Explanation of the association and supporting evidence. - Explanation string `protobuf:"bytes,5,opt,name=explanation,proto3" json:"explanation,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Explanation string `protobuf:"bytes,5,opt,name=explanation,proto3" json:"explanation,omitempty"` } -func (m *Association) Reset() { *m = Association{} } -func (m *Association) String() string { return proto.CompactTextString(m) } -func (*Association) ProtoMessage() {} -func (*Association) Descriptor() ([]byte, []int) { - return fileDescriptor_77e2b3056807758b, []int{4} +func (x *Association) Reset() { + *x = Association{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_provenance_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Association) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Association.Unmarshal(m, b) -} -func (m *Association) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Association.Marshal(b, m, deterministic) -} -func (m *Association) XXX_Merge(src proto.Message) { - xxx_messageInfo_Association.Merge(m, src) +func (x *Association) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Association) XXX_Size() int { - return xxx_messageInfo_Association.Size(m) -} -func (m *Association) XXX_DiscardUnknown() { - xxx_messageInfo_Association.DiscardUnknown(m) + +func (*Association) ProtoMessage() {} + +func (x *Association) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_provenance_proto_msgTypes[4] + 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) } -var xxx_messageInfo_Association proto.InternalMessageInfo +// Deprecated: Use Association.ProtoReflect.Descriptor instead. +func (*Association) Descriptor() ([]byte, []int) { + return file_medifor_v1_provenance_proto_rawDescGZIP(), []int{4} +} -func (m *Association) GetType() LinkType { - if m != nil { - return m.Type +func (x *Association) GetType() LinkType { + if x != nil { + return x.Type } return LinkType_SPLICE } -func (m *Association) GetSource() string { - if m != nil { - return m.Source +func (x *Association) GetSource() string { + if x != nil { + return x.Source } return "" } -func (m *Association) GetTarget() string { - if m != nil { - return m.Target +func (x *Association) GetTarget() string { + if x != nil { + return x.Target } return "" } -func (m *Association) GetScore() float32 { - if m != nil { - return m.Score +func (x *Association) GetScore() float32 { + if x != nil { + return x.Score } return 0 } -func (m *Association) GetExplanation() string { - if m != nil { - return m.Explanation +func (x *Association) GetExplanation() string { + if x != nil { + return x.Explanation } return "" } // Association provides details describing the relationship between two probes. type Node struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // UUID of the image ImageId string `protobuf:"bytes,1,opt,name=image_id,json=imageId,proto3" json:"image_id,omitempty"` // Real number that is higher if an image is in the graph - Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"` } -func (m *Node) Reset() { *m = Node{} } -func (m *Node) String() string { return proto.CompactTextString(m) } -func (*Node) ProtoMessage() {} -func (*Node) Descriptor() ([]byte, []int) { - return fileDescriptor_77e2b3056807758b, []int{5} +func (x *Node) Reset() { + *x = Node{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_provenance_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Node) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Node.Unmarshal(m, b) +func (x *Node) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Node.Marshal(b, m, deterministic) -} -func (m *Node) XXX_Merge(src proto.Message) { - xxx_messageInfo_Node.Merge(m, src) -} -func (m *Node) XXX_Size() int { - return xxx_messageInfo_Node.Size(m) -} -func (m *Node) XXX_DiscardUnknown() { - xxx_messageInfo_Node.DiscardUnknown(m) + +func (*Node) ProtoMessage() {} + +func (x *Node) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_provenance_proto_msgTypes[5] + 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) } -var xxx_messageInfo_Node proto.InternalMessageInfo +// Deprecated: Use Node.ProtoReflect.Descriptor instead. +func (*Node) Descriptor() ([]byte, []int) { + return file_medifor_v1_provenance_proto_rawDescGZIP(), []int{5} +} -func (m *Node) GetImageId() string { - if m != nil { - return m.ImageId +func (x *Node) GetImageId() string { + if x != nil { + return x.ImageId } return "" } -func (m *Node) GetScore() float32 { - if m != nil { - return m.Score +func (x *Node) GetScore() float32 { + if x != nil { + return x.Score } return 0 } // ProvenanceGraph type ProvenanceGraph struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // List of nodes in the graph. Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` // List of associations that specify the relationship between nodes on the gra Associations []*Association `protobuf:"bytes,2,rep,name=associations,proto3" json:"associations,omitempty"` // Whether the algorithm opted out of the task - OptOut bool `protobuf:"varint,3,opt,name=opt_out,json=optOut,proto3" json:"opt_out,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + OptOut bool `protobuf:"varint,3,opt,name=opt_out,json=optOut,proto3" json:"opt_out,omitempty"` } -func (m *ProvenanceGraph) Reset() { *m = ProvenanceGraph{} } -func (m *ProvenanceGraph) String() string { return proto.CompactTextString(m) } -func (*ProvenanceGraph) ProtoMessage() {} -func (*ProvenanceGraph) Descriptor() ([]byte, []int) { - return fileDescriptor_77e2b3056807758b, []int{6} +func (x *ProvenanceGraph) Reset() { + *x = ProvenanceGraph{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_provenance_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ProvenanceGraph) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProvenanceGraph.Unmarshal(m, b) -} -func (m *ProvenanceGraph) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProvenanceGraph.Marshal(b, m, deterministic) +func (x *ProvenanceGraph) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ProvenanceGraph) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProvenanceGraph.Merge(m, src) -} -func (m *ProvenanceGraph) XXX_Size() int { - return xxx_messageInfo_ProvenanceGraph.Size(m) -} -func (m *ProvenanceGraph) XXX_DiscardUnknown() { - xxx_messageInfo_ProvenanceGraph.DiscardUnknown(m) + +func (*ProvenanceGraph) ProtoMessage() {} + +func (x *ProvenanceGraph) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_provenance_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_ProvenanceGraph proto.InternalMessageInfo +// Deprecated: Use ProvenanceGraph.ProtoReflect.Descriptor instead. +func (*ProvenanceGraph) Descriptor() ([]byte, []int) { + return file_medifor_v1_provenance_proto_rawDescGZIP(), []int{6} +} -func (m *ProvenanceGraph) GetNodes() []*Node { - if m != nil { - return m.Nodes +func (x *ProvenanceGraph) GetNodes() []*Node { + if x != nil { + return x.Nodes } return nil } -func (m *ProvenanceGraph) GetAssociations() []*Association { - if m != nil { - return m.Associations +func (x *ProvenanceGraph) GetAssociations() []*Association { + if x != nil { + return x.Associations } return nil } -func (m *ProvenanceGraph) GetOptOut() bool { - if m != nil { - return m.OptOut +func (x *ProvenanceGraph) GetOptOut() bool { + if x != nil { + return x.OptOut } return false } -func init() { - proto.RegisterEnum("mediforproto.LinkType", LinkType_name, LinkType_value) - proto.RegisterType((*ProvenanceFilteringRequest)(nil), "mediforproto.ProvenanceFilteringRequest") - proto.RegisterType((*ImageMatch)(nil), "mediforproto.ImageMatch") - proto.RegisterType((*FilteringResult)(nil), "mediforproto.FilteringResult") - proto.RegisterType((*ProvenanceGraphRequest)(nil), "mediforproto.ProvenanceGraphRequest") - proto.RegisterType((*Association)(nil), "mediforproto.Association") - proto.RegisterType((*Node)(nil), "mediforproto.Node") - proto.RegisterType((*ProvenanceGraph)(nil), "mediforproto.ProvenanceGraph") -} - -func init() { proto.RegisterFile("medifor/v1/provenance.proto", fileDescriptor_77e2b3056807758b) } - -var fileDescriptor_77e2b3056807758b = []byte{ - // 625 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xcd, 0x6e, 0xd3, 0x4c, - 0x14, 0xfd, 0x9c, 0xff, 0xdc, 0xa4, 0x69, 0x34, 0x1f, 0x6a, 0xdd, 0xa2, 0x4a, 0x21, 0x62, 0x11, - 0x55, 0x28, 0x11, 0x61, 0xc1, 0xaa, 0x42, 0x69, 0x14, 0x50, 0x44, 0x9a, 0x44, 0xd3, 0x8a, 0x05, - 0x8b, 0x46, 0x53, 0x7b, 0xea, 0x8e, 0x1a, 0x7b, 0xcc, 0xcc, 0xb8, 0xa2, 0x12, 0x8f, 0xc0, 0x8e, - 0x27, 0x60, 0xc3, 0xd3, 0xf0, 0x50, 0xc8, 0x33, 0xf9, 0xb1, 0x2d, 0x4a, 0xd9, 0xb0, 0x4a, 0xee, - 0xf5, 0xb9, 0xf7, 0x9c, 0x7b, 0xee, 0xcc, 0xc0, 0x53, 0x9f, 0xba, 0xec, 0x9a, 0x8b, 0xde, 0xdd, - 0xcb, 0x5e, 0x28, 0xf8, 0x1d, 0x0d, 0x48, 0xe0, 0xd0, 0x6e, 0x28, 0xb8, 0xe2, 0xa8, 0xbe, 0xfa, - 0xa8, 0xa3, 0xc3, 0x83, 0x04, 0x94, 0x04, 0x64, 0x79, 0xaf, 0x98, 0x63, 0x80, 0xed, 0xaf, 0x16, - 0x1c, 0xce, 0x37, 0xd5, 0x6f, 0xd9, 0x52, 0x51, 0xc1, 0x02, 0x0f, 0xd3, 0x4f, 0x11, 0x95, 0x0a, - 0x1d, 0x01, 0x08, 0xf3, 0x77, 0xc1, 0x5c, 0xdb, 0x6a, 0x59, 0x9d, 0x2a, 0xae, 0xae, 0x32, 0x63, - 0x17, 0xbd, 0x80, 0x22, 0xf3, 0x89, 0x47, 0xed, 0x5c, 0xcb, 0xea, 0xd4, 0xfa, 0x7b, 0xdd, 0x24, - 0x6d, 0x17, 0x53, 0xc9, 0x23, 0xe1, 0x50, 0x6c, 0x40, 0xe8, 0x19, 0xd4, 0x05, 0x95, 0xd1, 0x52, - 0x2d, 0x96, 0xcc, 0x67, 0xca, 0xce, 0xb7, 0xac, 0x4e, 0x11, 0xd7, 0x4c, 0x6e, 0x12, 0xa7, 0xda, - 0x5f, 0x00, 0xc6, 0x31, 0xf6, 0x8c, 0x28, 0xe7, 0x06, 0x1d, 0x40, 0x45, 0x57, 0x6e, 0xb9, 0xcb, - 0x3a, 0x1e, 0xbb, 0xe8, 0x04, 0x1a, 0x7e, 0x8c, 0x61, 0x81, 0xb7, 0xf8, 0x1b, 0x09, 0x3b, 0x6b, - 0xb4, 0x6e, 0x8f, 0x9e, 0x40, 0x51, 0x3a, 0x5c, 0x50, 0xad, 0x21, 0x87, 0x4d, 0xd0, 0x96, 0xb0, - 0x9b, 0x70, 0x20, 0x56, 0x85, 0xfa, 0x50, 0xd6, 0x95, 0x54, 0xda, 0x56, 0x2b, 0xdf, 0xa9, 0xf5, - 0xed, 0x34, 0xc1, 0x56, 0x2d, 0x5e, 0x03, 0x63, 0x57, 0x42, 0xc1, 0xaf, 0x1e, 0x75, 0x45, 0x83, - 0xda, 0x3f, 0x2c, 0xd8, 0xdb, 0x6e, 0xe0, 0x9d, 0x20, 0xe1, 0xcd, 0x3f, 0x71, 0xff, 0x0d, 0x34, - 0xae, 0xf5, 0x70, 0x0b, 0x63, 0xb8, 0xb4, 0xf3, 0x8f, 0x0c, 0xb4, 0x63, 0xf0, 0xc6, 0x09, 0xd9, - 0xfe, 0x6e, 0x41, 0x6d, 0x20, 0x25, 0x77, 0x18, 0x51, 0x8c, 0x07, 0xe8, 0x18, 0x0a, 0xea, 0x3e, - 0xa4, 0x5a, 0x57, 0x23, 0xcb, 0x3e, 0x61, 0xc1, 0xed, 0xc5, 0x7d, 0x48, 0xb1, 0xc6, 0xa0, 0x3d, - 0x28, 0x19, 0x35, 0x5a, 0x6b, 0x15, 0xaf, 0xa2, 0x38, 0xaf, 0x88, 0xf0, 0xa8, 0x39, 0x0c, 0x55, - 0xbc, 0x8a, 0xb6, 0xfb, 0x29, 0x24, 0xf6, 0x83, 0x5a, 0x50, 0xa3, 0x9f, 0xc3, 0x25, 0x09, 0xb4, - 0x00, 0xbb, 0xa8, 0x4b, 0x92, 0xa9, 0xf6, 0x6b, 0x28, 0x4c, 0xb9, 0x4b, 0xff, 0x74, 0x72, 0x36, - 0xad, 0x73, 0xc9, 0xd5, 0x7f, 0xb3, 0x60, 0x37, 0xb3, 0x05, 0xd4, 0x81, 0x62, 0xc0, 0xdd, 0xcd, - 0xe6, 0x51, 0x7a, 0xc2, 0x98, 0x07, 0x1b, 0x00, 0x3a, 0x81, 0x3a, 0xd9, 0x3a, 0x23, 0xed, 0x9c, - 0x2e, 0x38, 0x48, 0x17, 0x24, 0xbc, 0xc3, 0x29, 0x38, 0xda, 0x87, 0x32, 0x0f, 0xd5, 0x82, 0x47, - 0xc6, 0x86, 0x0a, 0x2e, 0xf1, 0x50, 0xcd, 0x22, 0x75, 0x7c, 0x06, 0x95, 0xb5, 0x91, 0x08, 0xa0, - 0x74, 0x3e, 0x9f, 0x8c, 0x87, 0xa3, 0xe6, 0x7f, 0xa8, 0x01, 0x30, 0xc7, 0xb3, 0x0f, 0xa3, 0xe9, - 0x60, 0x3a, 0x1c, 0x35, 0x2d, 0x54, 0x83, 0xf2, 0xf9, 0x7c, 0x34, 0x78, 0x3f, 0xc2, 0xcd, 0x5c, - 0x0c, 0x1c, 0x0e, 0xce, 0x46, 0x78, 0xd0, 0xcc, 0xa3, 0x3a, 0x54, 0x26, 0xb3, 0xe1, 0xe0, 0x62, - 0x3c, 0x9b, 0x36, 0x0b, 0xfd, 0x9f, 0x16, 0xc0, 0x76, 0x48, 0x74, 0x09, 0xff, 0xff, 0xe6, 0xea, - 0xa3, 0x4e, 0x5a, 0xf6, 0xc3, 0xaf, 0xc3, 0xe1, 0x51, 0x1a, 0x99, 0xbd, 0x3b, 0x97, 0xb0, 0x9f, - 0xb1, 0xf4, 0x34, 0x62, 0x4b, 0x37, 0xe6, 0x78, 0xfe, 0x10, 0x47, 0xf2, 0xfc, 0x67, 0xfb, 0x67, - 0x9b, 0x2d, 0xc0, 0x76, 0xb8, 0x9f, 0xc0, 0x78, 0x82, 0xf8, 0xe6, 0x5d, 0x3b, 0x4d, 0x2c, 0x73, - 0x1e, 0x27, 0x3e, 0xf6, 0x3d, 0xa6, 0x6e, 0xa2, 0xab, 0xae, 0xc3, 0xfd, 0x5e, 0x5c, 0x41, 0xae, - 0xb9, 0xa0, 0x81, 0x64, 0x8e, 0xec, 0xad, 0x5f, 0xc7, 0xf0, 0xd6, 0xeb, 0x25, 0x09, 0xaf, 0x4a, - 0xfa, 0xe7, 0xd5, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1b, 0xf4, 0xcb, 0xd8, 0x6b, 0x05, 0x00, - 0x00, +var File_medifor_v1_provenance_proto protoreflect.FileDescriptor + +var file_medifor_v1_provenance_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x6d, + 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x50, 0x72, 0x6f, 0x76, 0x65, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x7c, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x3d, + 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0d, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x22, 0x73, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x70, 0x72, + 0x6f, 0x62, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x6f, + 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x3f, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x22, 0xa1, 0x01, 0x0a, 0x0b, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x16, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, + 0x69, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x37, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x93, + 0x01, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x12, 0x28, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0c, + 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, + 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6f, + 0x70, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x70, + 0x74, 0x4f, 0x75, 0x74, 0x2a, 0x4d, 0x0a, 0x08, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x50, 0x4c, 0x49, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, + 0x50, 0x52, 0x4f, 0x56, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, + 0x53, 0x50, 0x45, 0x41, 0x4b, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x41, 0x4d, + 0x45, 0x52, 0x41, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x04, 0x32, 0xcc, 0x01, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x5e, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x2e, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, + 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x42, 0x5f, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x0f, + 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, + 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x66, 0x6f, 0x72, 0x65, 0x6e, 0x73, 0x69, 0x63, 0x73, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_medifor_v1_provenance_proto_rawDescOnce sync.Once + file_medifor_v1_provenance_proto_rawDescData = file_medifor_v1_provenance_proto_rawDesc +) + +func file_medifor_v1_provenance_proto_rawDescGZIP() []byte { + file_medifor_v1_provenance_proto_rawDescOnce.Do(func() { + file_medifor_v1_provenance_proto_rawDescData = protoimpl.X.CompressGZIP(file_medifor_v1_provenance_proto_rawDescData) + }) + return file_medifor_v1_provenance_proto_rawDescData +} + +var file_medifor_v1_provenance_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_medifor_v1_provenance_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_medifor_v1_provenance_proto_goTypes = []interface{}{ + (LinkType)(0), // 0: mediforproto.LinkType + (*ProvenanceFilteringRequest)(nil), // 1: mediforproto.ProvenanceFilteringRequest + (*ImageMatch)(nil), // 2: mediforproto.ImageMatch + (*FilteringResult)(nil), // 3: mediforproto.FilteringResult + (*ProvenanceGraphRequest)(nil), // 4: mediforproto.ProvenanceGraphRequest + (*Association)(nil), // 5: mediforproto.Association + (*Node)(nil), // 6: mediforproto.Node + (*ProvenanceGraph)(nil), // 7: mediforproto.ProvenanceGraph + (*Resource)(nil), // 8: mediforproto.Resource +} +var file_medifor_v1_provenance_proto_depIdxs = []int32{ + 8, // 0: mediforproto.ProvenanceFilteringRequest.image:type_name -> mediforproto.Resource + 8, // 1: mediforproto.ImageMatch.matching_image:type_name -> mediforproto.Resource + 2, // 2: mediforproto.FilteringResult.matches:type_name -> mediforproto.ImageMatch + 8, // 3: mediforproto.FilteringResult.probe:type_name -> mediforproto.Resource + 8, // 4: mediforproto.ProvenanceGraphRequest.image:type_name -> mediforproto.Resource + 2, // 5: mediforproto.ProvenanceGraphRequest.filter_results:type_name -> mediforproto.ImageMatch + 0, // 6: mediforproto.Association.type:type_name -> mediforproto.LinkType + 6, // 7: mediforproto.ProvenanceGraph.nodes:type_name -> mediforproto.Node + 5, // 8: mediforproto.ProvenanceGraph.associations:type_name -> mediforproto.Association + 1, // 9: mediforproto.Provenance.ProvenanceFiltering:input_type -> mediforproto.ProvenanceFilteringRequest + 4, // 10: mediforproto.Provenance.ProvenanceGraphBuilding:input_type -> mediforproto.ProvenanceGraphRequest + 3, // 11: mediforproto.Provenance.ProvenanceFiltering:output_type -> mediforproto.FilteringResult + 7, // 12: mediforproto.Provenance.ProvenanceGraphBuilding:output_type -> mediforproto.ProvenanceGraph + 11, // [11:13] is the sub-list for method output_type + 9, // [9:11] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_medifor_v1_provenance_proto_init() } +func file_medifor_v1_provenance_proto_init() { + if File_medifor_v1_provenance_proto != nil { + return + } + file_medifor_v1_analytic_proto_init() + if !protoimpl.UnsafeEnabled { + file_medifor_v1_provenance_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProvenanceFilteringRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_provenance_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_provenance_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FilteringResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_provenance_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProvenanceGraphRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_provenance_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Association); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_provenance_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Node); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_provenance_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProvenanceGraph); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_medifor_v1_provenance_proto_rawDesc, + NumEnums: 1, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_medifor_v1_provenance_proto_goTypes, + DependencyIndexes: file_medifor_v1_provenance_proto_depIdxs, + EnumInfos: file_medifor_v1_provenance_proto_enumTypes, + MessageInfos: file_medifor_v1_provenance_proto_msgTypes, + }.Build() + File_medifor_v1_provenance_proto = out.File + file_medifor_v1_provenance_proto_rawDesc = nil + file_medifor_v1_provenance_proto_goTypes = nil + file_medifor_v1_provenance_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +const _ = grpc.SupportPackageIsVersion6 // ProvenanceClient is the client API for Provenance service. // @@ -550,10 +821,10 @@ type ProvenanceClient interface { } type provenanceClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewProvenanceClient(cc *grpc.ClientConn) ProvenanceClient { +func NewProvenanceClient(cc grpc.ClientConnInterface) ProvenanceClient { return &provenanceClient{cc} } @@ -585,10 +856,10 @@ type ProvenanceServer interface { type UnimplementedProvenanceServer struct { } -func (*UnimplementedProvenanceServer) ProvenanceFiltering(ctx context.Context, req *ProvenanceFilteringRequest) (*FilteringResult, error) { +func (*UnimplementedProvenanceServer) ProvenanceFiltering(context.Context, *ProvenanceFilteringRequest) (*FilteringResult, error) { return nil, status.Errorf(codes.Unimplemented, "method ProvenanceFiltering not implemented") } -func (*UnimplementedProvenanceServer) ProvenanceGraphBuilding(ctx context.Context, req *ProvenanceGraphRequest) (*ProvenanceGraph, error) { +func (*UnimplementedProvenanceServer) ProvenanceGraphBuilding(context.Context, *ProvenanceGraphRequest) (*ProvenanceGraph, error) { return nil, status.Errorf(codes.Unimplemented, "method ProvenanceGraphBuilding not implemented") } diff --git a/pkg/mediforproto/streamingproxy.pb.go b/pkg/mediforproto/streamingproxy.pb.go index c00c48c..f38bafa 100644 --- a/pkg/mediforproto/streamingproxy.pb.go +++ b/pkg/mediforproto/streamingproxy.pb.go @@ -1,32 +1,36 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 // source: medifor/v1/streamingproxy.proto package mediforproto import ( context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // FileChunk contains a single chunk of a file. It is intended to be part of a // streaming protocol, so size and offset are implied type FileChunk struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // The name of the file. Should be sent with every chunk. Works best when every file sent is uniquely named. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The (optional) MIME type of the file. @@ -36,68 +40,72 @@ type FileChunk struct { // The total size of the file. TotalBytes int64 `protobuf:"varint,4,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` // The value of this chunk. - Value []byte `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Value []byte `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"` } -func (m *FileChunk) Reset() { *m = FileChunk{} } -func (m *FileChunk) String() string { return proto.CompactTextString(m) } -func (*FileChunk) ProtoMessage() {} -func (*FileChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_1c83d807c84235b2, []int{0} +func (x *FileChunk) Reset() { + *x = FileChunk{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_streamingproxy_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FileChunk) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FileChunk.Unmarshal(m, b) -} -func (m *FileChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FileChunk.Marshal(b, m, deterministic) +func (x *FileChunk) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FileChunk) XXX_Merge(src proto.Message) { - xxx_messageInfo_FileChunk.Merge(m, src) -} -func (m *FileChunk) XXX_Size() int { - return xxx_messageInfo_FileChunk.Size(m) -} -func (m *FileChunk) XXX_DiscardUnknown() { - xxx_messageInfo_FileChunk.DiscardUnknown(m) + +func (*FileChunk) ProtoMessage() {} + +func (x *FileChunk) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_streamingproxy_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FileChunk proto.InternalMessageInfo +// Deprecated: Use FileChunk.ProtoReflect.Descriptor instead. +func (*FileChunk) Descriptor() ([]byte, []int) { + return file_medifor_v1_streamingproxy_proto_rawDescGZIP(), []int{0} +} -func (m *FileChunk) GetName() string { - if m != nil { - return m.Name +func (x *FileChunk) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *FileChunk) GetMimeType() string { - if m != nil { - return m.MimeType +func (x *FileChunk) GetMimeType() string { + if x != nil { + return x.MimeType } return "" } -func (m *FileChunk) GetOffset() int64 { - if m != nil { - return m.Offset +func (x *FileChunk) GetOffset() int64 { + if x != nil { + return x.Offset } return 0 } -func (m *FileChunk) GetTotalBytes() int64 { - if m != nil { - return m.TotalBytes +func (x *FileChunk) GetTotalBytes() int64 { + if x != nil { + return x.TotalBytes } return 0 } -func (m *FileChunk) GetValue() []byte { - if m != nil { - return m.Value +func (x *FileChunk) GetValue() []byte { + if x != nil { + return x.Value } return nil } @@ -106,49 +114,86 @@ func (m *FileChunk) GetValue() []byte { // objects are sent (both as request and response) along with the files that go // with them. type DetectionChunk struct { - // Types that are valid to be assigned to Value: + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Value: // *DetectionChunk_Detection // *DetectionChunk_FileChunk - Value isDetectionChunk_Value `protobuf_oneof:"value"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Value isDetectionChunk_Value `protobuf_oneof:"value"` } -func (m *DetectionChunk) Reset() { *m = DetectionChunk{} } -func (m *DetectionChunk) String() string { return proto.CompactTextString(m) } -func (*DetectionChunk) ProtoMessage() {} -func (*DetectionChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_1c83d807c84235b2, []int{1} +func (x *DetectionChunk) Reset() { + *x = DetectionChunk{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_streamingproxy_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DetectionChunk) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DetectionChunk.Unmarshal(m, b) +func (x *DetectionChunk) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DetectionChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DetectionChunk.Marshal(b, m, deterministic) + +func (*DetectionChunk) ProtoMessage() {} + +func (x *DetectionChunk) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_streamingproxy_proto_msgTypes[1] + 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) } -func (m *DetectionChunk) XXX_Merge(src proto.Message) { - xxx_messageInfo_DetectionChunk.Merge(m, src) + +// Deprecated: Use DetectionChunk.ProtoReflect.Descriptor instead. +func (*DetectionChunk) Descriptor() ([]byte, []int) { + return file_medifor_v1_streamingproxy_proto_rawDescGZIP(), []int{1} } -func (m *DetectionChunk) XXX_Size() int { - return xxx_messageInfo_DetectionChunk.Size(m) + +func (m *DetectionChunk) GetValue() isDetectionChunk_Value { + if m != nil { + return m.Value + } + return nil } -func (m *DetectionChunk) XXX_DiscardUnknown() { - xxx_messageInfo_DetectionChunk.DiscardUnknown(m) + +func (x *DetectionChunk) GetDetection() *Detection { + if x, ok := x.GetValue().(*DetectionChunk_Detection); ok { + return x.Detection + } + return nil } -var xxx_messageInfo_DetectionChunk proto.InternalMessageInfo +func (x *DetectionChunk) GetFileChunk() *FileChunk { + if x, ok := x.GetValue().(*DetectionChunk_FileChunk); ok { + return x.FileChunk + } + return nil +} type isDetectionChunk_Value interface { isDetectionChunk_Value() } type DetectionChunk_Detection struct { + // A Detection proto that contains a request and/or response, depending on + // what is needed. Note that any chunks provided should cover all necessary + // inputs/outputs as specified in this proto. Detection *Detection `protobuf:"bytes,1,opt,name=detection,proto3,oneof"` } type DetectionChunk_FileChunk struct { + // Chunks of file(s) used for or provided in the detection above. Any files + // mentioned in the Detection should be provided here as needed. For + // example, on request all Resource URIs should be represented in these + // file chunks as file chunk names. On response, all response URIs should + // be present in a similar way. FileChunk *FileChunk `protobuf:"bytes,2,opt,name=file_chunk,json=fileChunk,proto3,oneof"` } @@ -156,73 +201,137 @@ func (*DetectionChunk_Detection) isDetectionChunk_Value() {} func (*DetectionChunk_FileChunk) isDetectionChunk_Value() {} -func (m *DetectionChunk) GetValue() isDetectionChunk_Value { - if m != nil { - return m.Value - } - return nil -} +var File_medifor_v1_streamingproxy_proto protoreflect.FileDescriptor + +var file_medifor_v1_streamingproxy_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x19, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8b, 0x01, 0x0a, 0x09, 0x46, + 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x37, 0x0a, 0x09, 0x64, + 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x75, + 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, + 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, + 0x6b, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x42, 0x07, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x60, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x4e, 0x0a, 0x0c, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x6d, 0x65, 0x64, 0x69, + 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x1a, 0x1c, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, + 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x28, 0x01, 0x30, 0x01, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x66, 0x6f, 0x72, + 0x65, 0x6e, 0x73, 0x69, 0x63, 0x73, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_medifor_v1_streamingproxy_proto_rawDescOnce sync.Once + file_medifor_v1_streamingproxy_proto_rawDescData = file_medifor_v1_streamingproxy_proto_rawDesc +) -func (m *DetectionChunk) GetDetection() *Detection { - if x, ok := m.GetValue().(*DetectionChunk_Detection); ok { - return x.Detection +func file_medifor_v1_streamingproxy_proto_rawDescGZIP() []byte { + file_medifor_v1_streamingproxy_proto_rawDescOnce.Do(func() { + file_medifor_v1_streamingproxy_proto_rawDescData = protoimpl.X.CompressGZIP(file_medifor_v1_streamingproxy_proto_rawDescData) + }) + return file_medifor_v1_streamingproxy_proto_rawDescData +} + +var file_medifor_v1_streamingproxy_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_medifor_v1_streamingproxy_proto_goTypes = []interface{}{ + (*FileChunk)(nil), // 0: mediforproto.FileChunk + (*DetectionChunk)(nil), // 1: mediforproto.DetectionChunk + (*Detection)(nil), // 2: mediforproto.Detection +} +var file_medifor_v1_streamingproxy_proto_depIdxs = []int32{ + 2, // 0: mediforproto.DetectionChunk.detection:type_name -> mediforproto.Detection + 0, // 1: mediforproto.DetectionChunk.file_chunk:type_name -> mediforproto.FileChunk + 1, // 2: mediforproto.StreamingProxy.DetectStream:input_type -> mediforproto.DetectionChunk + 1, // 3: mediforproto.StreamingProxy.DetectStream:output_type -> mediforproto.DetectionChunk + 3, // [3:4] is the sub-list for method output_type + 2, // [2:3] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_medifor_v1_streamingproxy_proto_init() } +func file_medifor_v1_streamingproxy_proto_init() { + if File_medifor_v1_streamingproxy_proto != nil { + return } - return nil -} - -func (m *DetectionChunk) GetFileChunk() *FileChunk { - if x, ok := m.GetValue().(*DetectionChunk_FileChunk); ok { - return x.FileChunk + file_medifor_v1_analytic_proto_init() + if !protoimpl.UnsafeEnabled { + file_medifor_v1_streamingproxy_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FileChunk); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_streamingproxy_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetectionChunk); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - return nil -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*DetectionChunk) XXX_OneofWrappers() []interface{} { - return []interface{}{ + file_medifor_v1_streamingproxy_proto_msgTypes[1].OneofWrappers = []interface{}{ (*DetectionChunk_Detection)(nil), (*DetectionChunk_FileChunk)(nil), } -} - -func init() { - proto.RegisterType((*FileChunk)(nil), "mediforproto.FileChunk") - proto.RegisterType((*DetectionChunk)(nil), "mediforproto.DetectionChunk") -} - -func init() { proto.RegisterFile("medifor/v1/streamingproxy.proto", fileDescriptor_1c83d807c84235b2) } - -var fileDescriptor_1c83d807c84235b2 = []byte{ - // 319 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x51, 0x3d, 0x4f, 0xc3, 0x30, - 0x10, 0xc5, 0xf4, 0x03, 0x72, 0xad, 0x3a, 0x58, 0x08, 0x42, 0x41, 0x6a, 0xd5, 0x29, 0x53, 0x02, - 0x05, 0x09, 0xe6, 0x82, 0x10, 0x13, 0x42, 0x81, 0x89, 0xa5, 0xb8, 0xe9, 0xa5, 0xb5, 0x1a, 0xdb, - 0x51, 0xe2, 0x56, 0xe4, 0x37, 0xc0, 0x8f, 0x46, 0x76, 0x9a, 0x12, 0x09, 0xc1, 0x64, 0xbf, 0x77, - 0xef, 0x9e, 0xdf, 0x9d, 0x61, 0x20, 0x70, 0xce, 0x63, 0x95, 0x05, 0x9b, 0xcb, 0x20, 0xd7, 0x19, - 0x32, 0xc1, 0xe5, 0x22, 0xcd, 0xd4, 0x47, 0xe1, 0xa7, 0x99, 0xd2, 0x8a, 0x76, 0xb7, 0x02, 0x8b, - 0xfa, 0xa7, 0x35, 0x39, 0x93, 0x2c, 0x29, 0x34, 0x8f, 0x4a, 0xe1, 0xe8, 0x93, 0x80, 0xf3, 0xc0, - 0x13, 0xbc, 0x5b, 0xae, 0xe5, 0x8a, 0x52, 0x68, 0x4a, 0x26, 0xd0, 0x25, 0x43, 0xe2, 0x39, 0xa1, - 0xbd, 0xd3, 0x33, 0x70, 0x04, 0x17, 0x38, 0xd5, 0x45, 0x8a, 0xee, 0xbe, 0x2d, 0x1c, 0x1a, 0xe2, - 0xb5, 0x48, 0x91, 0x1e, 0x43, 0x5b, 0xc5, 0x71, 0x8e, 0xda, 0x6d, 0x0c, 0x89, 0xd7, 0x08, 0xb7, - 0x88, 0x0e, 0xa0, 0xa3, 0x95, 0x66, 0xc9, 0x74, 0x56, 0x68, 0xcc, 0xdd, 0xa6, 0x2d, 0x82, 0xa5, - 0x26, 0x86, 0xa1, 0x47, 0xd0, 0xda, 0xb0, 0x64, 0x8d, 0x6e, 0x6b, 0x48, 0xbc, 0x6e, 0x58, 0x82, - 0xd1, 0x17, 0x81, 0xde, 0x3d, 0x6a, 0x8c, 0x34, 0x57, 0xb2, 0x8c, 0x74, 0x03, 0xce, 0xbc, 0x62, - 0x6c, 0xae, 0xce, 0xf8, 0xc4, 0xaf, 0x4f, 0xe7, 0xef, 0x1a, 0x1e, 0xf7, 0xc2, 0x1f, 0x2d, 0xbd, - 0x05, 0x88, 0x79, 0x82, 0xd3, 0xc8, 0xd8, 0xd8, 0xe0, 0xbf, 0x3a, 0x77, 0x83, 0x9b, 0xce, 0xb8, - 0x02, 0x93, 0x83, 0x6d, 0xb6, 0xf1, 0x3b, 0xf4, 0x5e, 0xaa, 0xed, 0x3e, 0x9b, 0xed, 0xd2, 0x27, - 0xe8, 0x96, 0xcf, 0x95, 0x3c, 0x3d, 0xff, 0x23, 0x8a, 0x35, 0xea, 0xff, 0x5b, 0xf5, 0xc8, 0x05, - 0x99, 0x5c, 0xbf, 0x8d, 0x17, 0x5c, 0x2f, 0xd7, 0x33, 0x3f, 0x52, 0x22, 0x30, 0x6a, 0x16, 0xab, - 0x0c, 0x65, 0xce, 0xa3, 0x3c, 0xa8, 0x7e, 0x2d, 0x5d, 0x2d, 0x82, 0xba, 0xd1, 0xac, 0x6d, 0x8f, - 0xab, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf4, 0x9f, 0x68, 0x49, 0x07, 0x02, 0x00, 0x00, + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_medifor_v1_streamingproxy_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_medifor_v1_streamingproxy_proto_goTypes, + DependencyIndexes: file_medifor_v1_streamingproxy_proto_depIdxs, + MessageInfos: file_medifor_v1_streamingproxy_proto_msgTypes, + }.Build() + File_medifor_v1_streamingproxy_proto = out.File + file_medifor_v1_streamingproxy_proto_rawDesc = nil + file_medifor_v1_streamingproxy_proto_goTypes = nil + file_medifor_v1_streamingproxy_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +const _ = grpc.SupportPackageIsVersion6 // StreamingProxyClient is the client API for StreamingProxy service. // @@ -232,10 +341,10 @@ type StreamingProxyClient interface { } type streamingProxyClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewStreamingProxyClient(cc *grpc.ClientConn) StreamingProxyClient { +func NewStreamingProxyClient(cc grpc.ClientConnInterface) StreamingProxyClient { return &streamingProxyClient{cc} } @@ -279,7 +388,7 @@ type StreamingProxyServer interface { type UnimplementedStreamingProxyServer struct { } -func (*UnimplementedStreamingProxyServer) DetectStream(srv StreamingProxy_DetectStreamServer) error { +func (*UnimplementedStreamingProxyServer) DetectStream(StreamingProxy_DetectStreamServer) error { return status.Errorf(codes.Unimplemented, "method DetectStream not implemented") } diff --git a/pkg/mediforproto/task.pb.go b/pkg/mediforproto/task.pb.go index 0aa767d..6b8cf3f 100644 --- a/pkg/mediforproto/task.pb.go +++ b/pkg/mediforproto/task.pb.go @@ -1,30 +1,34 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.6.1 // source: medifor/v1/task.proto package mediforproto import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // DetectionTask contains a Detection (partial - holding only the // request) and enough surrounding machinery to allow workflow tasks to // maintain state in a larger system. // Next Tag: 10 type DetectionTask struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // An identifier that uniquely represents this particular detection task. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Analytics to run this detection on. When a single analytic receives a task @@ -51,102 +55,110 @@ type DetectionTask struct { Meta map[string]string `protobuf:"bytes,8,rep,name=meta,proto3" json:"meta,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Timeout in seconds after which an analytic worker will die waiting for the // analytic to respond. Default is "no timeout" (0 seconds). - AnalyticTimeoutSec int64 `protobuf:"varint,6,opt,name=analytic_timeout_sec,json=analyticTimeoutSec,proto3" json:"analytic_timeout_sec,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + AnalyticTimeoutSec int64 `protobuf:"varint,6,opt,name=analytic_timeout_sec,json=analyticTimeoutSec,proto3" json:"analytic_timeout_sec,omitempty"` } -func (m *DetectionTask) Reset() { *m = DetectionTask{} } -func (m *DetectionTask) String() string { return proto.CompactTextString(m) } -func (*DetectionTask) ProtoMessage() {} -func (*DetectionTask) Descriptor() ([]byte, []int) { - return fileDescriptor_fe6fd396ef9e302f, []int{0} +func (x *DetectionTask) Reset() { + *x = DetectionTask{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_task_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DetectionTask) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DetectionTask.Unmarshal(m, b) -} -func (m *DetectionTask) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DetectionTask.Marshal(b, m, deterministic) -} -func (m *DetectionTask) XXX_Merge(src proto.Message) { - xxx_messageInfo_DetectionTask.Merge(m, src) -} -func (m *DetectionTask) XXX_Size() int { - return xxx_messageInfo_DetectionTask.Size(m) +func (x *DetectionTask) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DetectionTask) XXX_DiscardUnknown() { - xxx_messageInfo_DetectionTask.DiscardUnknown(m) + +func (*DetectionTask) ProtoMessage() {} + +func (x *DetectionTask) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_task_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DetectionTask proto.InternalMessageInfo +// Deprecated: Use DetectionTask.ProtoReflect.Descriptor instead. +func (*DetectionTask) Descriptor() ([]byte, []int) { + return file_medifor_v1_task_proto_rawDescGZIP(), []int{0} +} -func (m *DetectionTask) GetId() string { - if m != nil { - return m.Id +func (x *DetectionTask) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *DetectionTask) GetAnalyticId() []string { - if m != nil { - return m.AnalyticId +func (x *DetectionTask) GetAnalyticId() []string { + if x != nil { + return x.AnalyticId } return nil } -func (m *DetectionTask) GetFuserId() []string { - if m != nil { - return m.FuserId +func (x *DetectionTask) GetFuserId() []string { + if x != nil { + return x.FuserId } return nil } -func (m *DetectionTask) GetDetection() *Detection { - if m != nil { - return m.Detection +func (x *DetectionTask) GetDetection() *Detection { + if x != nil { + return x.Detection } return nil } -func (m *DetectionTask) GetDoneQueue() string { - if m != nil { - return m.DoneQueue +func (x *DetectionTask) GetDoneQueue() string { + if x != nil { + return x.DoneQueue } return "" } -func (m *DetectionTask) GetTags() map[string]string { - if m != nil { - return m.Tags +func (x *DetectionTask) GetTags() map[string]string { + if x != nil { + return x.Tags } return nil } -func (m *DetectionTask) GetUserTags() map[string]string { - if m != nil { - return m.UserTags +func (x *DetectionTask) GetUserTags() map[string]string { + if x != nil { + return x.UserTags } return nil } -func (m *DetectionTask) GetMeta() map[string]string { - if m != nil { - return m.Meta +func (x *DetectionTask) GetMeta() map[string]string { + if x != nil { + return x.Meta } return nil } -func (m *DetectionTask) GetAnalyticTimeoutSec() int64 { - if m != nil { - return m.AnalyticTimeoutSec +func (x *DetectionTask) GetAnalyticTimeoutSec() int64 { + if x != nil { + return x.AnalyticTimeoutSec } return 0 } // Next ID: 8 type FusionTask struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Unique identifier for the fusion task UnusedId string `protobuf:"bytes,1,opt,name=unused_id,json=unusedId,proto3" json:"unused_id,omitempty"` // Fusion algorithms to run this fusion on. @@ -162,127 +174,250 @@ type FusionTask struct { // analytic to respond. Default is "no timeout" (0 seconds). AnalyticTimeoutSec int64 `protobuf:"varint,6,opt,name=analytic_timeout_sec,json=analyticTimeoutSec,proto3" json:"analytic_timeout_sec,omitempty"` // detection_id for the detections to be fused. Required for database writes - DetectionId string `protobuf:"bytes,7,opt,name=detection_id,json=detectionId,proto3" json:"detection_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + DetectionId string `protobuf:"bytes,7,opt,name=detection_id,json=detectionId,proto3" json:"detection_id,omitempty"` } -func (m *FusionTask) Reset() { *m = FusionTask{} } -func (m *FusionTask) String() string { return proto.CompactTextString(m) } -func (*FusionTask) ProtoMessage() {} -func (*FusionTask) Descriptor() ([]byte, []int) { - return fileDescriptor_fe6fd396ef9e302f, []int{1} +func (x *FusionTask) Reset() { + *x = FusionTask{} + if protoimpl.UnsafeEnabled { + mi := &file_medifor_v1_task_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FusionTask) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FusionTask.Unmarshal(m, b) +func (x *FusionTask) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FusionTask) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FusionTask.Marshal(b, m, deterministic) -} -func (m *FusionTask) XXX_Merge(src proto.Message) { - xxx_messageInfo_FusionTask.Merge(m, src) -} -func (m *FusionTask) XXX_Size() int { - return xxx_messageInfo_FusionTask.Size(m) -} -func (m *FusionTask) XXX_DiscardUnknown() { - xxx_messageInfo_FusionTask.DiscardUnknown(m) + +func (*FusionTask) ProtoMessage() {} + +func (x *FusionTask) ProtoReflect() protoreflect.Message { + mi := &file_medifor_v1_task_proto_msgTypes[1] + 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) } -var xxx_messageInfo_FusionTask proto.InternalMessageInfo +// Deprecated: Use FusionTask.ProtoReflect.Descriptor instead. +func (*FusionTask) Descriptor() ([]byte, []int) { + return file_medifor_v1_task_proto_rawDescGZIP(), []int{1} +} -func (m *FusionTask) GetUnusedId() string { - if m != nil { - return m.UnusedId +func (x *FusionTask) GetUnusedId() string { + if x != nil { + return x.UnusedId } return "" } -func (m *FusionTask) GetFuserId() []string { - if m != nil { - return m.FuserId +func (x *FusionTask) GetFuserId() []string { + if x != nil { + return x.FuserId } return nil } -func (m *FusionTask) GetFusion() *Fusion { - if m != nil { - return m.Fusion +func (x *FusionTask) GetFusion() *Fusion { + if x != nil { + return x.Fusion } return nil } -func (m *FusionTask) GetDoneQueue() string { - if m != nil { - return m.DoneQueue +func (x *FusionTask) GetDoneQueue() string { + if x != nil { + return x.DoneQueue } return "" } -func (m *FusionTask) GetTags() map[string]string { - if m != nil { - return m.Tags +func (x *FusionTask) GetTags() map[string]string { + if x != nil { + return x.Tags } return nil } -func (m *FusionTask) GetAnalyticTimeoutSec() int64 { - if m != nil { - return m.AnalyticTimeoutSec +func (x *FusionTask) GetAnalyticTimeoutSec() int64 { + if x != nil { + return x.AnalyticTimeoutSec } return 0 } -func (m *FusionTask) GetDetectionId() string { - if m != nil { - return m.DetectionId +func (x *FusionTask) GetDetectionId() string { + if x != nil { + return x.DetectionId } return "" } -func init() { - proto.RegisterType((*DetectionTask)(nil), "mediforproto.DetectionTask") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionTask.MetaEntry") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionTask.TagsEntry") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.DetectionTask.UserTagsEntry") - proto.RegisterType((*FusionTask)(nil), "mediforproto.FusionTask") - proto.RegisterMapType((map[string]string)(nil), "mediforproto.FusionTask.TagsEntry") +var File_medifor_v1_task_proto protoreflect.FileDescriptor + +var file_medifor_v1_task_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x73, + 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, + 0x31, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x17, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd0, 0x04, 0x0a, 0x0d, 0x44, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, + 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, + 0x66, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x66, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x65, 0x64, + 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, + 0x0a, 0x0a, 0x64, 0x6f, 0x6e, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x6f, 0x6e, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x39, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x65, + 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, + 0x12, 0x39, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x14, 0x61, + 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, + 0x73, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x61, 0x6e, 0x61, 0x6c, 0x79, + 0x74, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x1a, 0x37, 0x0a, + 0x09, 0x54, 0x61, 0x67, 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, 0x1a, 0x3b, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, + 0x67, 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, 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x65, 0x74, 0x61, 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, 0xd7, 0x02, 0x0a, + 0x0a, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x75, + 0x6e, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x66, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x66, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6f, 0x6e, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6f, 0x6e, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x12, 0x36, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x74, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, + 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x37, 0x0a, + 0x09, 0x54, 0x61, 0x67, 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, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x66, 0x6f, 0x72, 0x65, 0x6e, 0x73, + 0x69, 0x63, 0x73, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, + 0x6d, 0x65, 0x64, 0x69, 0x66, 0x6f, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } -func init() { proto.RegisterFile("medifor/v1/task.proto", fileDescriptor_fe6fd396ef9e302f) } - -var fileDescriptor_fe6fd396ef9e302f = []byte{ - // 465 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x53, 0xdd, 0x6f, 0xd3, 0x3e, - 0x14, 0x55, 0x92, 0xae, 0xad, 0x6f, 0xb7, 0x9f, 0x7e, 0xb2, 0x8a, 0x96, 0x15, 0x21, 0x42, 0x25, - 0xa4, 0x20, 0xa1, 0x04, 0xca, 0xc7, 0xf8, 0x78, 0x43, 0x30, 0xa9, 0x0f, 0x3c, 0x10, 0xca, 0x0b, - 0x2f, 0x95, 0x17, 0xdf, 0x16, 0xab, 0x6b, 0x3c, 0x62, 0x7b, 0x52, 0xff, 0x4b, 0xde, 0xf8, 0x77, - 0x90, 0x9d, 0x8f, 0xb5, 0x68, 0x30, 0x95, 0xa7, 0xf6, 0x9e, 0x73, 0xcf, 0xf5, 0xb9, 0xf6, 0x09, - 0xdc, 0x59, 0x23, 0x17, 0x0b, 0x59, 0xa6, 0x57, 0x4f, 0x53, 0xcd, 0xd4, 0x2a, 0xb9, 0x2c, 0xa5, - 0x96, 0xf4, 0xb0, 0x86, 0x5d, 0x35, 0x3a, 0xd9, 0x6a, 0x62, 0x05, 0xbb, 0xd8, 0x68, 0x91, 0x57, - 0x8d, 0xa3, 0xe3, 0x2d, 0x6a, 0x61, 0x94, 0x90, 0x45, 0x45, 0x8c, 0x7f, 0x74, 0xe0, 0xe8, 0x3d, - 0x6a, 0xcc, 0xb5, 0x90, 0xc5, 0x8c, 0xa9, 0x15, 0xfd, 0x0f, 0x7c, 0xc1, 0x43, 0x2f, 0xf2, 0x62, - 0x92, 0xf9, 0x82, 0xd3, 0xfb, 0x30, 0x68, 0x86, 0xcd, 0x05, 0x0f, 0xfd, 0x28, 0x88, 0x49, 0x06, - 0x0d, 0x34, 0xe5, 0xf4, 0x04, 0xfa, 0x0b, 0xa3, 0xb0, 0xb4, 0x2c, 0x71, 0x6c, 0xcf, 0xd5, 0x53, - 0x4e, 0x5f, 0x00, 0xe1, 0xcd, 0xf0, 0x30, 0x88, 0xbc, 0x78, 0x30, 0x39, 0x4e, 0xb6, 0x3d, 0x27, - 0xed, 0xd9, 0xd9, 0x75, 0x27, 0xbd, 0x07, 0xc0, 0x65, 0x81, 0xf3, 0xef, 0x06, 0x0d, 0x86, 0x1d, - 0x67, 0x85, 0x58, 0xe4, 0x93, 0x05, 0xe8, 0x6b, 0xe8, 0x68, 0xb6, 0x54, 0xe1, 0x41, 0x14, 0xc4, - 0x83, 0xc9, 0xc3, 0x3f, 0x0c, 0xb4, 0xcb, 0x24, 0x33, 0xb6, 0x54, 0x1f, 0x0a, 0x5d, 0x6e, 0x32, - 0x27, 0xa1, 0x67, 0x40, 0x9c, 0x55, 0xa7, 0xef, 0x39, 0xfd, 0xa3, 0xbf, 0xe9, 0xbf, 0x28, 0x2c, - 0xaf, 0x67, 0xf4, 0x4d, 0x5d, 0x5a, 0x0b, 0x6b, 0xd4, 0x2c, 0xec, 0xdf, 0x6e, 0xe1, 0x23, 0x6a, - 0x56, 0x5b, 0xb0, 0x12, 0xfa, 0x04, 0x86, 0xed, 0x7d, 0x6a, 0xb1, 0x46, 0x69, 0xf4, 0x5c, 0x61, - 0x1e, 0x76, 0x23, 0x2f, 0x0e, 0x32, 0xda, 0x70, 0xb3, 0x8a, 0xfa, 0x8c, 0xf9, 0xe8, 0x14, 0x48, - 0xeb, 0x81, 0xfe, 0x0f, 0xc1, 0x0a, 0x37, 0xf5, 0xfb, 0xd8, 0xbf, 0x74, 0x08, 0x07, 0x57, 0xec, - 0xc2, 0x60, 0xe8, 0x3b, 0xac, 0x2a, 0xde, 0xf8, 0xaf, 0xbc, 0xd1, 0x5b, 0x38, 0xda, 0x59, 0x60, - 0x2f, 0xf1, 0x29, 0x90, 0xd6, 0xfa, 0x3e, 0xc2, 0xf1, 0x4f, 0x1f, 0xe0, 0xcc, 0x65, 0xcc, 0xe5, - 0xe9, 0x2e, 0x10, 0x53, 0x18, 0x85, 0x7c, 0xde, 0xc6, 0xaa, 0x5f, 0x01, 0xbf, 0x65, 0xc7, 0xdf, - 0xcd, 0xce, 0x63, 0xe8, 0x56, 0x49, 0xad, 0x83, 0x33, 0xdc, 0xbd, 0xe4, 0xea, 0x84, 0xac, 0xee, - 0xb9, 0x2d, 0x32, 0x2f, 0x77, 0x22, 0x33, 0xbe, 0x69, 0xd4, 0x8d, 0x79, 0xd9, 0xfb, 0xb1, 0xe8, - 0x03, 0x38, 0x6c, 0x83, 0x6c, 0xb7, 0xea, 0x39, 0x2b, 0x83, 0x16, 0x9b, 0xf2, 0x7f, 0x7e, 0xcf, - 0x77, 0xcf, 0xbf, 0x4e, 0x96, 0x42, 0x7f, 0x33, 0xe7, 0x49, 0x2e, 0xd7, 0xa9, 0xdd, 0x81, 0x2d, - 0x64, 0x89, 0x85, 0x12, 0xb9, 0x4a, 0x9b, 0x2f, 0xfc, 0x72, 0xb5, 0x4c, 0xb7, 0xd7, 0x3b, 0xef, - 0xba, 0x9f, 0x67, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x73, 0x91, 0x14, 0x39, 0x44, 0x04, 0x00, - 0x00, +var ( + file_medifor_v1_task_proto_rawDescOnce sync.Once + file_medifor_v1_task_proto_rawDescData = file_medifor_v1_task_proto_rawDesc +) + +func file_medifor_v1_task_proto_rawDescGZIP() []byte { + file_medifor_v1_task_proto_rawDescOnce.Do(func() { + file_medifor_v1_task_proto_rawDescData = protoimpl.X.CompressGZIP(file_medifor_v1_task_proto_rawDescData) + }) + return file_medifor_v1_task_proto_rawDescData +} + +var file_medifor_v1_task_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_medifor_v1_task_proto_goTypes = []interface{}{ + (*DetectionTask)(nil), // 0: mediforproto.DetectionTask + (*FusionTask)(nil), // 1: mediforproto.FusionTask + nil, // 2: mediforproto.DetectionTask.TagsEntry + nil, // 3: mediforproto.DetectionTask.UserTagsEntry + nil, // 4: mediforproto.DetectionTask.MetaEntry + nil, // 5: mediforproto.FusionTask.TagsEntry + (*Detection)(nil), // 6: mediforproto.Detection + (*Fusion)(nil), // 7: mediforproto.Fusion +} +var file_medifor_v1_task_proto_depIdxs = []int32{ + 6, // 0: mediforproto.DetectionTask.detection:type_name -> mediforproto.Detection + 2, // 1: mediforproto.DetectionTask.tags:type_name -> mediforproto.DetectionTask.TagsEntry + 3, // 2: mediforproto.DetectionTask.user_tags:type_name -> mediforproto.DetectionTask.UserTagsEntry + 4, // 3: mediforproto.DetectionTask.meta:type_name -> mediforproto.DetectionTask.MetaEntry + 7, // 4: mediforproto.FusionTask.fusion:type_name -> mediforproto.Fusion + 5, // 5: mediforproto.FusionTask.tags:type_name -> mediforproto.FusionTask.TagsEntry + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_medifor_v1_task_proto_init() } +func file_medifor_v1_task_proto_init() { + if File_medifor_v1_task_proto != nil { + return + } + file_medifor_v1_analytic_proto_init() + file_medifor_v1_fusion_proto_init() + if !protoimpl.UnsafeEnabled { + file_medifor_v1_task_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetectionTask); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_medifor_v1_task_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FusionTask); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_medifor_v1_task_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_medifor_v1_task_proto_goTypes, + DependencyIndexes: file_medifor_v1_task_proto_depIdxs, + MessageInfos: file_medifor_v1_task_proto_msgTypes, + }.Build() + File_medifor_v1_task_proto = out.File + file_medifor_v1_task_proto_rawDesc = nil + file_medifor_v1_task_proto_goTypes = nil + file_medifor_v1_task_proto_depIdxs = nil } diff --git a/pkg/protoc.sh b/pkg/protoc.sh index 89fb914..c422f88 100755 --- a/pkg/protoc.sh +++ b/pkg/protoc.sh @@ -1,13 +1,15 @@ #!/bin/bash +set -e + cd $(dirname "$0") pdir='../proto' mfdir="medifor/v1" +mkdir -p mediforproto/ protoc -I"${pdir}" -I"${pdir}/${mfdir}" --go_out=plugins=grpc:mediforproto "${pdir}/${mfdir}"/*.proto - -mv "mediforproto/${mfdir}"/*.pb.go mediforproto/ -rm -rf mediforproto/${mfdir%%/*} +mv mediforproto/github.com/mediaforensics/medifor/pkg/mediforproto//*.pb.go mediforproto/ +rm -rf mediforproto/github.com/ diff --git a/proto/medifor/v1/analytic.proto b/proto/medifor/v1/analytic.proto index 1cc41ea..896c7f4 100644 --- a/proto/medifor/v1/analytic.proto +++ b/proto/medifor/v1/analytic.proto @@ -38,7 +38,7 @@ enum ManipulationType { enum SpecificityType { SPEC_GLOBAL = 0; - SPEC_FRAM = 1; + SPEC_FRAME = 1; SPEC_PIXEL = 2; SPEC_METADATA = 3; } diff --git a/proto/medifor/v1/pipeline.proto b/proto/medifor/v1/pipeline.proto index 58699d2..c58b745 100644 --- a/proto/medifor/v1/pipeline.proto +++ b/proto/medifor/v1/pipeline.proto @@ -117,8 +117,8 @@ message DetectionInfo { string id = 1; // A list of input resources for this detection. Usually a singleton, but can - // contain multiple if multiple are accepted for this particular kind of - // request + // contain multiple if multiple are accepted for this particular kind of + // request repeated Resource req_resources = 11; // Results for individual analytics. @@ -171,7 +171,7 @@ message DetectionListRequest { // If specified (can be empty), all listed tags (both key and value) must be // simultaneously present for a detection ID to be returned. map tags = 1; - + // This contains a "fuzzy meta search" query. It will look through // detection metatags for string values that match the given query. string meta_query = 10; @@ -181,7 +181,7 @@ message DetectionListRequest { // If end time is present (nonzero), all detections must have at least one analytic create time <= end. // If either is zero (not present), then the filter is unbounded in that direction. DateRange date_range = 11; - + // If specified, only returns results from the given list of detection IDs. // Good for returning a single detection or one of a few. Not great for very // long lists (thousands). @@ -355,6 +355,177 @@ message AnalyticList { repeated AnalyticMeta analytics = 1; } +// Lists detections +message ListDetectionsRequest { + // Filter results by score + ScoreFilter score_filter = 1; + + // Filter results by metadata + repeated MetaFilter meta_filters = 2; + + // Filter results by tags + map tags = 3; + + // Exclude results with the specified tags + map exclude_tags = 9; + + // Filter results by metadata query + string meta_query = 10; + + // Sort results + repeated SortCol order_by = 4; + + // Analytic whose score is used for filtering and sorting results. If not + // specified, fuser_id is used instead. + string analytic_id = 5; + + // Fuser whose score is used for filtering and sorting results. Only used + // if analytic_id is not specified. + string fuser_id = 6; + + // Return at most the specified number of results + int32 page_size = 7; + + // Return the specified page of results + string page_token = 8; +} + +message ScoreFilter { + // Whether the `min` field is valid + bool has_min = 1; + + // Minimum score (inclusive) + double min = 2; + + // Whether the `max` field is valid + bool has_max = 3; + + // Maximum score (inclusive) + double max = 4; +} + +message MetaFilter { + // Metadata key + string meta_key = 1; + + // Whether the `min` field is valid + bool has_min = 2; + + // Minimum value (inclusive) + string min = 3; + + // Whether the `max` field is valid + bool has_max = 4; + + // Maximum value (inclusive) + string max = 5; +} + +// Updates a detection's metadata +message UpdateDetectionMetadataRequest { + // Detection ID + string detection_id = 1; + + // Metadata to be merged with the detection's existing metadata + map metadata = 2; +} + +// Gets analytic and fuser stats +message GetAnalyticStatsRequest { + // Analytics to get. If empty, returns all analytics. + repeated string analytic_ids = 1; + + // Fusers to get. If empty, returns all fusers. + repeated string fuser_ids = 2; +} + +message GetAnalyticStatsResponse { + // Analytic stats + repeated AnalyticStats analytic_stats = 1; + + // Fuser stats + repeated AnalyticStats fuser_stats = 2; +} + +message AnalyticStats { + // Analytic/fuser ID + string id = 1; + + // Number of tasks that are pending + int32 pending = 2; + + // Number of tasks that are running + int32 running = 3; + + // Number of tasks that succeeded and produced a score + int32 succeeded = 4; + + // Number of tasks that succeeded but did not produce a score + int32 opted_out = 6; + + // Number of tasks that failed + int32 failed = 5; +} + +// Gets histogram for the specified analytic +message GetHistogramRequest { + // Analytic ID. If empty, use fuser instead. + string analytic_id = 1; + + // Fuser ID + string fuser_id = 2; + + // Filters detections by system and/or user tags + map tags = 3; + + // Excludes detections with the specified tags + map exclude_tags = 5; + + // Number of histogram buckets (default 10) + int32 num_buckets = 4; +} + +message GetHistogramResponse { + repeated Bucket buckets = 1; +} + +message Bucket { + double min = 1; + double max = 2; + int32 frequency = 3; +} + +// Deletes detection tasks that failed +message DeleteFailedAnalyticsRequest { +} + +message DeleteFailedAnalyticsResponse { + // Maps detection IDs to deleted analytics + map deleted_analytics = 1; +} + +message DeletedAnalytics { + // Deleted analytic IDs + repeated string deleted_analytic_ids = 1; +} + +// Gets analytics and fusers that produced a score for at least one detection +message GetAnalyticsWithScoresRequest { + // Filters detections by system and/or user tags + map tags = 1; + + // Excludes detections with the specified tags + map exclude_tags = 2; +} + +message GetAnalyticsWithScoresResponse { + // Analytic IDs with scores + repeated string analytic_ids = 1; + + // Fuser IDs with scores + repeated string fuser_ids = 2; +} + service Pipeline { rpc Detect(DetectionRequest) returns (DetectionInfo); rpc GetDetectionInfo(DetectionInfoRequest) returns (DetectionInfo); @@ -366,4 +537,10 @@ service Pipeline { rpc UpdateDetectionTags(UpdateDetectionTagsRequest) returns (DetectionInfo); rpc GetDetectionTagInfo(DetectionTagInfoRequest) returns (DetectionTagInfo); rpc GetAnalyticMeta(Empty) returns (AnalyticList); + rpc ListDetections(ListDetectionsRequest) returns (DetectionList); + rpc UpdateDetectionMetadata(UpdateDetectionMetadataRequest) returns (DetectionInfo); + rpc GetAnalyticStats(GetAnalyticStatsRequest) returns (GetAnalyticStatsResponse); + rpc GetHistogram(GetHistogramRequest) returns (GetHistogramResponse); + rpc DeleteFailedAnalytics(DeleteFailedAnalyticsRequest) returns (DeleteFailedAnalyticsResponse); + rpc GetAnalyticsWithScores(GetAnalyticsWithScoresRequest) returns (GetAnalyticsWithScoresResponse); } diff --git a/python/Makefile b/python/Makefile index 820887c..b8cdf80 100644 --- a/python/Makefile +++ b/python/Makefile @@ -1,14 +1,12 @@ SHELL := /bin/bash .PHONY: default -default: get-deps build +default: get-deps genproto .PHONY: get-deps get-deps: - pip install -r ../../requirements.txt + pip install -r ../requirements.txt .PHONY: genproto genproto: python3 -m grpc_tools.protoc -I../proto --python_out=. --grpc_python_out=. ../proto/medifor/v1/*.proto - # python3 -m grpc_tools.protoc -I../proto/v1 --python_out=. ../proto/v1/google/rpc/*.proto - # touch google/rpc/__init__.py # for Python2 compatibility. diff --git a/python/medifor/v1/analytic_pb2.py b/python/medifor/v1/analytic_pb2.py index fcc26c3..64ac399 100644 --- a/python/medifor/v1/analytic_pb2.py +++ b/python/medifor/v1/analytic_pb2.py @@ -20,8 +20,8 @@ name='medifor/v1/analytic.proto', package='mediforproto', syntax='proto3', - serialized_options=None, - serialized_pb=_b('\n\x19medifor/v1/analytic.proto\x12\x0cmediforproto\x1a\x17google/rpc/status.proto\"\xba\x06\n\tDetection\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12\x19\n\x11start_time_millis\x18\x02 \x01(\x03\x12\x17\n\x0f\x65nd_time_millis\x18\x03 \x01(\x03\x12?\n\rimg_manip_req\x18\x0b \x01(\x0b\x32&.mediforproto.ImageManipulationRequestH\x00\x12?\n\rvid_manip_req\x18\x0c \x01(\x0b\x32&.mediforproto.VideoManipulationRequestH\x00\x12:\n\x0eimg_splice_req\x18\r \x01(\x0b\x32 .mediforproto.ImageSpliceRequestH\x00\x12\x42\n\x11img_cam_match_req\x18\x0e \x01(\x0b\x32%.mediforproto.ImageCameraMatchRequestH\x00\x12\x39\n\x0cimg_cams_req\x18\x0f \x01(\x0b\x32!.mediforproto.ImageCamerasRequestH\x00\x12\x42\n\x11vid_cam_match_req\x18\x10 \x01(\x0b\x32%.mediforproto.VideoCameraMatchRequestH\x00\x12\x34\n\timg_manip\x18\x15 \x01(\x0b\x32\x1f.mediforproto.ImageManipulationH\x01\x12\x34\n\tvid_manip\x18\x16 \x01(\x0b\x32\x1f.mediforproto.VideoManipulationH\x01\x12/\n\nimg_splice\x18\x17 \x01(\x0b\x32\x19.mediforproto.ImageSpliceH\x01\x12\x37\n\rimg_cam_match\x18\x18 \x01(\x0b\x32\x1e.mediforproto.ImageCameraMatchH\x01\x12.\n\x08img_cams\x18\x19 \x01(\x0b\x32\x1a.mediforproto.ImageCamerasH\x01\x12\x37\n\rvid_cam_match\x18\x1a \x01(\x0b\x32\x1e.mediforproto.VideoCameraMatchH\x01\x42\t\n\x07requestB\n\n\x08response\"r\n\x12\x41nnotatedDetection\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12*\n\tdetection\x18\x03 \x01(\x0b\x32\x17.mediforproto.Detection\x12\x13\n\x0b\x61nalytic_id\x18\x04 \x01(\t\"4\n\x08Resource\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\r\n\x05notes\x18\x03 \x01(\t\"&\n\x08IntRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\"F\n\x0eScoredIntRange\x12%\n\x05range\x18\x01 \x01(\x0b\x32\x16.mediforproto.IntRange\x12\r\n\x05score\x18\x02 \x01(\x01\"[\n\x0cMaskIntRange\x12%\n\x05range\x18\x01 \x01(\x0b\x32\x16.mediforproto.IntRange\x12$\n\x04mask\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\"(\n\nFloatRange\x12\r\n\x05start\x18\x01 \x01(\x01\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x01\"J\n\x10ScoredFloatRange\x12\'\n\x05range\x18\x01 \x01(\x0b\x32\x18.mediforproto.FloatRange\x12\r\n\x05score\x18\x02 \x01(\x01\"~\n\x11ImageLocalization\x12$\n\x04mask\x18\x01 \x01(\x0b\x32\x16.mediforproto.Resource\x12+\n\x0bmask_optout\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x16\n\x0emask_threshold\x18\x03 \x01(\x01\"\xcc\x03\n\x11ImageManipulation\x12\r\n\x05score\x18\x01 \x01(\x01\x12;\n\x06\x66\x61\x63\x65ts\x18\n \x03(\x0b\x32+.mediforproto.ImageManipulation.FacetsEntry\x12\x12\n\nconfidence\x18\x02 \x01(\x01\x12\x16\n\x0ehas_confidence\x18\t \x01(\x08\x12)\n\x07opt_out\x18\x03 \x01(\x0e\x32\x18.mediforproto.OptOutType\x12\x13\n\x0b\x65xplanation\x18\x04 \x01(\t\x12\x35\n\x0clocalization\x18\x05 \x01(\x0b\x32\x1f.mediforproto.ImageLocalization\x12\x32\n\x0bspecificity\x18\x06 \x01(\x0e\x32\x1d.mediforproto.SpecificityType\x12\x39\n\x11manipulation_type\x18\x07 \x03(\x0e\x32\x1e.mediforproto.ManipulationType\x12*\n\nsupplement\x18\x08 \x03(\x0b\x32\x16.mediforproto.Resource\x1a-\n\x0b\x46\x61\x63\x65tsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\"|\n\x18ImageManipulationRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12%\n\x05image\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x0f\n\x07out_dir\x18\x03 \x01(\t\x12\x14\n\x0chp_device_id\x18\x04 \x01(\t\"\xe6\x02\n\x11VideoLocalization\x12\x35\n\x0f\x66rame_detection\x18\x01 \x03(\x0b\x32\x1c.mediforproto.ScoredIntRange\x12,\n\x0c\x66rame_optout\x18\x02 \x03(\x0b\x32\x16.mediforproto.IntRange\x12\x37\n\x0f\x61udio_detection\x18\x03 \x03(\x0b\x32\x1e.mediforproto.ScoredFloatRange\x12.\n\x0c\x61udio_optout\x18\x04 \x03(\x0b\x32\x18.mediforproto.FloatRange\x12.\n\nvideo_mask\x18\x05 \x03(\x0b\x32\x1a.mediforproto.MaskIntRange\x12\x35\n\x11video_mask_optout\x18\x06 \x03(\x0b\x32\x1a.mediforproto.MaskIntRange\x12\x1c\n\x14video_mask_threshold\x18\x07 \x01(\x01\"\xd1\x03\n\x11VideoManipulation\x12\r\n\x05score\x18\x01 \x01(\x01\x12;\n\x06\x66\x61\x63\x65ts\x18\n \x03(\x0b\x32+.mediforproto.VideoManipulation.FacetsEntry\x12\x12\n\nconfidence\x18\x02 \x01(\x01\x12\x16\n\x0ehas_confidence\x18\t \x01(\x08\x12.\n\x07opt_out\x18\x03 \x03(\x0e\x32\x1d.mediforproto.VideoOptOutType\x12\x13\n\x0b\x65xplanation\x18\x04 \x01(\t\x12\x35\n\x0clocalization\x18\x05 \x01(\x0b\x32\x1f.mediforproto.VideoLocalization\x12\x32\n\x0bspecificity\x18\x06 \x01(\x0e\x32\x1d.mediforproto.SpecificityType\x12\x39\n\x11manipulation_type\x18\x07 \x03(\x0e\x32\x1e.mediforproto.ManipulationType\x12*\n\nsupplement\x18\x08 \x03(\x0b\x32\x16.mediforproto.Resource\x1a-\n\x0b\x46\x61\x63\x65tsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\"\xe7\x01\n\x18VideoManipulationRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12%\n\x05video\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x0f\n\x07out_dir\x18\x03 \x01(\t\x12\x14\n\x0chp_device_id\x18\t \x01(\t\x12\x16\n\x0ekeep_workspace\x18\x04 \x01(\x08\x12\x12\n\nskip_audio\x18\x05 \x01(\x08\x12\x13\n\x0bskip_visual\x18\x06 \x01(\x08\x12\x17\n\x0f\x64\x65\x62ug_resources\x18\x07 \x01(\x08\x12\x0f\n\x07gpu_ord\x18\x08 \x01(\x05\"\x99\x02\n\x04Link\x12\x10\n\x08\x66rom_uri\x18\x01 \x01(\t\x12\x0e\n\x06to_uri\x18\x02 \x01(\t\x12\r\n\x05score\x18\x03 \x01(\x01\x12\x12\n\nconfidence\x18\x04 \x01(\x01\x12\x16\n\x0ehas_confidence\x18\t \x01(\x08\x12\x32\n\tfrom_mask\x18\x05 \x01(\x0b\x32\x1f.mediforproto.ImageLocalization\x12\x30\n\x07to_mask\x18\x06 \x01(\x0b\x32\x1f.mediforproto.ImageLocalization\x12\x13\n\x0b\x65xplanation\x18\x07 \x01(\t\x12\x39\n\x11manipulation_type\x18\x08 \x03(\x0e\x32\x1e.mediforproto.ManipulationType\"Z\n\x0bImageSplice\x12)\n\x07opt_out\x18\x01 \x01(\x0e\x32\x18.mediforproto.OptOutType\x12 \n\x04link\x18\x02 \x01(\x0b\x32\x12.mediforproto.Link\"\x93\x01\n\x12ImageSpliceRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12+\n\x0bprobe_image\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12+\n\x0b\x64onor_image\x18\x03 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x0f\n\x07out_dir\x18\x04 \x01(\t\"\xc6\x01\n\x10ImageCameraMatch\x12\r\n\x05score\x18\x01 \x01(\x01\x12\x11\n\thas_score\x18\x02 \x01(\x08\x12\x13\n\x0b\x65xplanation\x18\x03 \x01(\t\x12\x35\n\x0clocalization\x18\x04 \x01(\x0b\x32\x1f.mediforproto.ImageLocalization\x12\x18\n\x10has_localization\x18\x05 \x01(\x08\x12*\n\nsupplement\x18\x06 \x03(\x0b\x32\x16.mediforproto.Resource\"x\n\x17ImageCameraMatchRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12%\n\x05image\x18\x03 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x11\n\tcamera_id\x18\x04 \x01(\t\"\xc6\x01\n\x10VideoCameraMatch\x12\r\n\x05score\x18\x01 \x01(\x01\x12\x11\n\thas_score\x18\x02 \x01(\x08\x12\x13\n\x0b\x65xplanation\x18\x03 \x01(\t\x12\x35\n\x0clocalization\x18\x04 \x01(\x0b\x32\x1f.mediforproto.VideoLocalization\x12\x18\n\x10has_localization\x18\x05 \x01(\x08\x12*\n\nsupplement\x18\x06 \x03(\x0b\x32\x16.mediforproto.Resource\"x\n\x17VideoCameraMatchRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12%\n\x05image\x18\x03 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x11\n\tcamera_id\x18\x04 \x01(\t\"D\n\x0b\x43\x61meraScore\x12\x11\n\tcamera_id\x18\x01 \x01(\t\x12\r\n\x05score\x18\x02 \x01(\x01\x12\x13\n\x0b\x65xplanation\x18\x03 \x01(\t\"N\n\x0cImageCameras\x12)\n\x06scores\x18\x01 \x03(\x0b\x32\x19.mediforproto.CameraScore\x12\x13\n\x0b\x65xplanation\x18\x02 \x01(\t\"a\n\x13ImageCamerasRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12%\n\x05image\x18\x03 \x01(\x0b\x32\x16.mediforproto.Resource\"\x07\n\x05\x45mpty*\x9f\x04\n\x10ManipulationType\x12\x11\n\rMANIP_UNKNOWN\x10\x00\x12\x10\n\x0cMANIP_FILTER\x10\x01\x12\x16\n\x12MANIP_ADJUST_COLOR\x10\x02\x12\x10\n\x0cMANIP_REMOVE\x10\x03\x12\x1c\n\x18MANIP_CONTENT_AWARE_FILL\x10\x04\x12\x19\n\x15MANIP_PAINTBRUSH_TOOL\x10\x05\x12\x14\n\x10MANIP_PATCH_TOOL\x10\x06\x12\x0e\n\nMANIP_BLUR\x10\x07\x12\x10\n\x0cMANIP_SPLICE\x10\x08\x12\x0f\n\x0bMANIP_CLONE\x10\t\x12\x0e\n\nMANIP_CROP\x10\n\x12\x0e\n\nMANIP_FLIP\x10\x0b\x12\x10\n\x0cMANIP_RESIZE\x10\x0c\x12\x16\n\x12MANIP_SEAM_CARVING\x10\r\x12\x10\n\x0cMANIP_ROTATE\x10\x0e\x12\x0e\n\nMANIP_SKEW\x10\x0f\x12\x0e\n\nMANIP_WARP\x10\x10\x12\x12\n\x0eMANIP_METADATA\x10\x11\x12\x17\n\x13MANIP_ANTIFORENSICS\x10\x12\x12\x19\n\x15MANIP_IMAGE_RECAPTURE\x10\x13\x12\r\n\tMANIP_CGI\x10\x14\x12\x19\n\x15MANIP_FRAME_INSERTION\x10\x15\x12\x14\n\x10MANIP_FRAME_DROP\x10\x16\x12\x0f\n\x0bMANIP_AUDIO\x10\x17\x12\x14\n\x10MANIP_DOUBLE_JPG\x10\x18\x12\x0f\n\x0bMANIP_OTHER\x10\x19*U\n\x0fSpecificityType\x12\x0f\n\x0bSPEC_GLOBAL\x10\x00\x12\x0e\n\nSPEC_FRAME\x10\x01\x12\x0e\n\nSPEC_PIXEL\x10\x02\x12\x11\n\rSPEC_METADATA\x10\x03*`\n\nOptOutType\x12\x10\n\x0cOPT_OUT_NONE\x10\x00\x12\x0f\n\x0bOPT_OUT_ALL\x10\x01\x12\x15\n\x11OPT_OUT_DETECTION\x10\x02\x12\x18\n\x14OPT_OUT_LOCALIZATION\x10\x03*e\n\x0fVideoOptOutType\x12\x1b\n\x17VIDEO_OPT_OUT_DETECTION\x10\x00\x12\x1a\n\x16VIDEO_OPT_OUT_TEMPORAL\x10\x01\x12\x19\n\x15VIDEO_OPT_OUT_SPATIAL\x10\x02\x32\xed\x04\n\x08\x41nalytic\x12\x62\n\x17\x44\x65tectImageManipulation\x12&.mediforproto.ImageManipulationRequest\x1a\x1f.mediforproto.ImageManipulation\x12P\n\x11\x44\x65tectImageSplice\x12 .mediforproto.ImageSpliceRequest\x1a\x19.mediforproto.ImageSplice\x12\x62\n\x17\x44\x65tectVideoManipulation\x12&.mediforproto.VideoManipulationRequest\x1a\x1f.mediforproto.VideoManipulation\x12_\n\x16\x44\x65tectImageCameraMatch\x12%.mediforproto.ImageCameraMatchRequest\x1a\x1e.mediforproto.ImageCameraMatch\x12S\n\x12\x44\x65tectImageCameras\x12!.mediforproto.ImageCamerasRequest\x1a\x1a.mediforproto.ImageCameras\x12_\n\x16\x44\x65tectVideoCameraMatch\x12%.mediforproto.VideoCameraMatchRequest\x1a\x1e.mediforproto.VideoCameraMatch\x12\x30\n\x04Kill\x12\x13.mediforproto.Empty\x1a\x13.mediforproto.Emptyb\x06proto3') + serialized_options=_b('Z2github.com/mediaforensics/medifor/pkg/mediforproto'), + serialized_pb=_b('\n\x19medifor/v1/analytic.proto\x12\x0cmediforproto\x1a\x17google/rpc/status.proto\"\xba\x06\n\tDetection\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12\x19\n\x11start_time_millis\x18\x02 \x01(\x03\x12\x17\n\x0f\x65nd_time_millis\x18\x03 \x01(\x03\x12?\n\rimg_manip_req\x18\x0b \x01(\x0b\x32&.mediforproto.ImageManipulationRequestH\x00\x12?\n\rvid_manip_req\x18\x0c \x01(\x0b\x32&.mediforproto.VideoManipulationRequestH\x00\x12:\n\x0eimg_splice_req\x18\r \x01(\x0b\x32 .mediforproto.ImageSpliceRequestH\x00\x12\x42\n\x11img_cam_match_req\x18\x0e \x01(\x0b\x32%.mediforproto.ImageCameraMatchRequestH\x00\x12\x39\n\x0cimg_cams_req\x18\x0f \x01(\x0b\x32!.mediforproto.ImageCamerasRequestH\x00\x12\x42\n\x11vid_cam_match_req\x18\x10 \x01(\x0b\x32%.mediforproto.VideoCameraMatchRequestH\x00\x12\x34\n\timg_manip\x18\x15 \x01(\x0b\x32\x1f.mediforproto.ImageManipulationH\x01\x12\x34\n\tvid_manip\x18\x16 \x01(\x0b\x32\x1f.mediforproto.VideoManipulationH\x01\x12/\n\nimg_splice\x18\x17 \x01(\x0b\x32\x19.mediforproto.ImageSpliceH\x01\x12\x37\n\rimg_cam_match\x18\x18 \x01(\x0b\x32\x1e.mediforproto.ImageCameraMatchH\x01\x12.\n\x08img_cams\x18\x19 \x01(\x0b\x32\x1a.mediforproto.ImageCamerasH\x01\x12\x37\n\rvid_cam_match\x18\x1a \x01(\x0b\x32\x1e.mediforproto.VideoCameraMatchH\x01\x42\t\n\x07requestB\n\n\x08response\"r\n\x12\x41nnotatedDetection\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12*\n\tdetection\x18\x03 \x01(\x0b\x32\x17.mediforproto.Detection\x12\x13\n\x0b\x61nalytic_id\x18\x04 \x01(\t\"4\n\x08Resource\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\r\n\x05notes\x18\x03 \x01(\t\"&\n\x08IntRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\"F\n\x0eScoredIntRange\x12%\n\x05range\x18\x01 \x01(\x0b\x32\x16.mediforproto.IntRange\x12\r\n\x05score\x18\x02 \x01(\x01\"[\n\x0cMaskIntRange\x12%\n\x05range\x18\x01 \x01(\x0b\x32\x16.mediforproto.IntRange\x12$\n\x04mask\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\"(\n\nFloatRange\x12\r\n\x05start\x18\x01 \x01(\x01\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x01\"J\n\x10ScoredFloatRange\x12\'\n\x05range\x18\x01 \x01(\x0b\x32\x18.mediforproto.FloatRange\x12\r\n\x05score\x18\x02 \x01(\x01\"~\n\x11ImageLocalization\x12$\n\x04mask\x18\x01 \x01(\x0b\x32\x16.mediforproto.Resource\x12+\n\x0bmask_optout\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x16\n\x0emask_threshold\x18\x03 \x01(\x01\"\xcc\x03\n\x11ImageManipulation\x12\r\n\x05score\x18\x01 \x01(\x01\x12;\n\x06\x66\x61\x63\x65ts\x18\n \x03(\x0b\x32+.mediforproto.ImageManipulation.FacetsEntry\x12\x12\n\nconfidence\x18\x02 \x01(\x01\x12\x16\n\x0ehas_confidence\x18\t \x01(\x08\x12)\n\x07opt_out\x18\x03 \x01(\x0e\x32\x18.mediforproto.OptOutType\x12\x13\n\x0b\x65xplanation\x18\x04 \x01(\t\x12\x35\n\x0clocalization\x18\x05 \x01(\x0b\x32\x1f.mediforproto.ImageLocalization\x12\x32\n\x0bspecificity\x18\x06 \x01(\x0e\x32\x1d.mediforproto.SpecificityType\x12\x39\n\x11manipulation_type\x18\x07 \x03(\x0e\x32\x1e.mediforproto.ManipulationType\x12*\n\nsupplement\x18\x08 \x03(\x0b\x32\x16.mediforproto.Resource\x1a-\n\x0b\x46\x61\x63\x65tsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\"|\n\x18ImageManipulationRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12%\n\x05image\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x0f\n\x07out_dir\x18\x03 \x01(\t\x12\x14\n\x0chp_device_id\x18\x04 \x01(\t\"\xe6\x02\n\x11VideoLocalization\x12\x35\n\x0f\x66rame_detection\x18\x01 \x03(\x0b\x32\x1c.mediforproto.ScoredIntRange\x12,\n\x0c\x66rame_optout\x18\x02 \x03(\x0b\x32\x16.mediforproto.IntRange\x12\x37\n\x0f\x61udio_detection\x18\x03 \x03(\x0b\x32\x1e.mediforproto.ScoredFloatRange\x12.\n\x0c\x61udio_optout\x18\x04 \x03(\x0b\x32\x18.mediforproto.FloatRange\x12.\n\nvideo_mask\x18\x05 \x03(\x0b\x32\x1a.mediforproto.MaskIntRange\x12\x35\n\x11video_mask_optout\x18\x06 \x03(\x0b\x32\x1a.mediforproto.MaskIntRange\x12\x1c\n\x14video_mask_threshold\x18\x07 \x01(\x01\"\xd1\x03\n\x11VideoManipulation\x12\r\n\x05score\x18\x01 \x01(\x01\x12;\n\x06\x66\x61\x63\x65ts\x18\n \x03(\x0b\x32+.mediforproto.VideoManipulation.FacetsEntry\x12\x12\n\nconfidence\x18\x02 \x01(\x01\x12\x16\n\x0ehas_confidence\x18\t \x01(\x08\x12.\n\x07opt_out\x18\x03 \x03(\x0e\x32\x1d.mediforproto.VideoOptOutType\x12\x13\n\x0b\x65xplanation\x18\x04 \x01(\t\x12\x35\n\x0clocalization\x18\x05 \x01(\x0b\x32\x1f.mediforproto.VideoLocalization\x12\x32\n\x0bspecificity\x18\x06 \x01(\x0e\x32\x1d.mediforproto.SpecificityType\x12\x39\n\x11manipulation_type\x18\x07 \x03(\x0e\x32\x1e.mediforproto.ManipulationType\x12*\n\nsupplement\x18\x08 \x03(\x0b\x32\x16.mediforproto.Resource\x1a-\n\x0b\x46\x61\x63\x65tsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\"\xe7\x01\n\x18VideoManipulationRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12%\n\x05video\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x0f\n\x07out_dir\x18\x03 \x01(\t\x12\x14\n\x0chp_device_id\x18\t \x01(\t\x12\x16\n\x0ekeep_workspace\x18\x04 \x01(\x08\x12\x12\n\nskip_audio\x18\x05 \x01(\x08\x12\x13\n\x0bskip_visual\x18\x06 \x01(\x08\x12\x17\n\x0f\x64\x65\x62ug_resources\x18\x07 \x01(\x08\x12\x0f\n\x07gpu_ord\x18\x08 \x01(\x05\"\x99\x02\n\x04Link\x12\x10\n\x08\x66rom_uri\x18\x01 \x01(\t\x12\x0e\n\x06to_uri\x18\x02 \x01(\t\x12\r\n\x05score\x18\x03 \x01(\x01\x12\x12\n\nconfidence\x18\x04 \x01(\x01\x12\x16\n\x0ehas_confidence\x18\t \x01(\x08\x12\x32\n\tfrom_mask\x18\x05 \x01(\x0b\x32\x1f.mediforproto.ImageLocalization\x12\x30\n\x07to_mask\x18\x06 \x01(\x0b\x32\x1f.mediforproto.ImageLocalization\x12\x13\n\x0b\x65xplanation\x18\x07 \x01(\t\x12\x39\n\x11manipulation_type\x18\x08 \x03(\x0e\x32\x1e.mediforproto.ManipulationType\"Z\n\x0bImageSplice\x12)\n\x07opt_out\x18\x01 \x01(\x0e\x32\x18.mediforproto.OptOutType\x12 \n\x04link\x18\x02 \x01(\x0b\x32\x12.mediforproto.Link\"\x93\x01\n\x12ImageSpliceRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12+\n\x0bprobe_image\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12+\n\x0b\x64onor_image\x18\x03 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x0f\n\x07out_dir\x18\x04 \x01(\t\"\xc6\x01\n\x10ImageCameraMatch\x12\r\n\x05score\x18\x01 \x01(\x01\x12\x11\n\thas_score\x18\x02 \x01(\x08\x12\x13\n\x0b\x65xplanation\x18\x03 \x01(\t\x12\x35\n\x0clocalization\x18\x04 \x01(\x0b\x32\x1f.mediforproto.ImageLocalization\x12\x18\n\x10has_localization\x18\x05 \x01(\x08\x12*\n\nsupplement\x18\x06 \x03(\x0b\x32\x16.mediforproto.Resource\"x\n\x17ImageCameraMatchRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12%\n\x05image\x18\x03 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x11\n\tcamera_id\x18\x04 \x01(\t\"\xc6\x01\n\x10VideoCameraMatch\x12\r\n\x05score\x18\x01 \x01(\x01\x12\x11\n\thas_score\x18\x02 \x01(\x08\x12\x13\n\x0b\x65xplanation\x18\x03 \x01(\t\x12\x35\n\x0clocalization\x18\x04 \x01(\x0b\x32\x1f.mediforproto.VideoLocalization\x12\x18\n\x10has_localization\x18\x05 \x01(\x08\x12*\n\nsupplement\x18\x06 \x03(\x0b\x32\x16.mediforproto.Resource\"x\n\x17VideoCameraMatchRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12%\n\x05image\x18\x03 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x11\n\tcamera_id\x18\x04 \x01(\t\"D\n\x0b\x43\x61meraScore\x12\x11\n\tcamera_id\x18\x01 \x01(\t\x12\r\n\x05score\x18\x02 \x01(\x01\x12\x13\n\x0b\x65xplanation\x18\x03 \x01(\t\"N\n\x0cImageCameras\x12)\n\x06scores\x18\x01 \x03(\x0b\x32\x19.mediforproto.CameraScore\x12\x13\n\x0b\x65xplanation\x18\x02 \x01(\t\"a\n\x13ImageCamerasRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12%\n\x05image\x18\x03 \x01(\x0b\x32\x16.mediforproto.Resource\"\x07\n\x05\x45mpty*\x9f\x04\n\x10ManipulationType\x12\x11\n\rMANIP_UNKNOWN\x10\x00\x12\x10\n\x0cMANIP_FILTER\x10\x01\x12\x16\n\x12MANIP_ADJUST_COLOR\x10\x02\x12\x10\n\x0cMANIP_REMOVE\x10\x03\x12\x1c\n\x18MANIP_CONTENT_AWARE_FILL\x10\x04\x12\x19\n\x15MANIP_PAINTBRUSH_TOOL\x10\x05\x12\x14\n\x10MANIP_PATCH_TOOL\x10\x06\x12\x0e\n\nMANIP_BLUR\x10\x07\x12\x10\n\x0cMANIP_SPLICE\x10\x08\x12\x0f\n\x0bMANIP_CLONE\x10\t\x12\x0e\n\nMANIP_CROP\x10\n\x12\x0e\n\nMANIP_FLIP\x10\x0b\x12\x10\n\x0cMANIP_RESIZE\x10\x0c\x12\x16\n\x12MANIP_SEAM_CARVING\x10\r\x12\x10\n\x0cMANIP_ROTATE\x10\x0e\x12\x0e\n\nMANIP_SKEW\x10\x0f\x12\x0e\n\nMANIP_WARP\x10\x10\x12\x12\n\x0eMANIP_METADATA\x10\x11\x12\x17\n\x13MANIP_ANTIFORENSICS\x10\x12\x12\x19\n\x15MANIP_IMAGE_RECAPTURE\x10\x13\x12\r\n\tMANIP_CGI\x10\x14\x12\x19\n\x15MANIP_FRAME_INSERTION\x10\x15\x12\x14\n\x10MANIP_FRAME_DROP\x10\x16\x12\x0f\n\x0bMANIP_AUDIO\x10\x17\x12\x14\n\x10MANIP_DOUBLE_JPG\x10\x18\x12\x0f\n\x0bMANIP_OTHER\x10\x19*U\n\x0fSpecificityType\x12\x0f\n\x0bSPEC_GLOBAL\x10\x00\x12\x0e\n\nSPEC_FRAME\x10\x01\x12\x0e\n\nSPEC_PIXEL\x10\x02\x12\x11\n\rSPEC_METADATA\x10\x03*`\n\nOptOutType\x12\x10\n\x0cOPT_OUT_NONE\x10\x00\x12\x0f\n\x0bOPT_OUT_ALL\x10\x01\x12\x15\n\x11OPT_OUT_DETECTION\x10\x02\x12\x18\n\x14OPT_OUT_LOCALIZATION\x10\x03*e\n\x0fVideoOptOutType\x12\x1b\n\x17VIDEO_OPT_OUT_DETECTION\x10\x00\x12\x1a\n\x16VIDEO_OPT_OUT_TEMPORAL\x10\x01\x12\x19\n\x15VIDEO_OPT_OUT_SPATIAL\x10\x02\x32\xed\x04\n\x08\x41nalytic\x12\x62\n\x17\x44\x65tectImageManipulation\x12&.mediforproto.ImageManipulationRequest\x1a\x1f.mediforproto.ImageManipulation\x12P\n\x11\x44\x65tectImageSplice\x12 .mediforproto.ImageSpliceRequest\x1a\x19.mediforproto.ImageSplice\x12\x62\n\x17\x44\x65tectVideoManipulation\x12&.mediforproto.VideoManipulationRequest\x1a\x1f.mediforproto.VideoManipulation\x12_\n\x16\x44\x65tectImageCameraMatch\x12%.mediforproto.ImageCameraMatchRequest\x1a\x1e.mediforproto.ImageCameraMatch\x12S\n\x12\x44\x65tectImageCameras\x12!.mediforproto.ImageCamerasRequest\x1a\x1a.mediforproto.ImageCameras\x12_\n\x16\x44\x65tectVideoCameraMatch\x12%.mediforproto.VideoCameraMatchRequest\x1a\x1e.mediforproto.VideoCameraMatch\x12\x30\n\x04Kill\x12\x13.mediforproto.Empty\x1a\x13.mediforproto.EmptyB4Z2github.com/mediaforensics/medifor/pkg/mediforprotob\x06proto3') , dependencies=[google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) @@ -2094,6 +2094,7 @@ _sym_db.RegisterMessage(Empty) +DESCRIPTOR._options = None _IMAGEMANIPULATION_FACETSENTRY._options = None _VIDEOMANIPULATION_FACETSENTRY._options = None diff --git a/python/medifor/v1/fusion_pb2.py b/python/medifor/v1/fusion_pb2.py index 3e1e10a..de42d54 100644 --- a/python/medifor/v1/fusion_pb2.py +++ b/python/medifor/v1/fusion_pb2.py @@ -20,8 +20,8 @@ name='medifor/v1/fusion.proto', package='mediforproto', syntax='proto3', - serialized_options=None, - serialized_pb=_b('\n\x17medifor/v1/fusion.proto\x12\x0cmediforproto\x1a\x17google/rpc/status.proto\x1a\x19medifor/v1/analytic.proto\"\xdf\x04\n\x06\x46usion\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12\x19\n\x11start_time_millis\x18\x02 \x01(\x03\x12\x17\n\x0f\x65nd_time_millis\x18\x03 \x01(\x03\x12\x43\n\rimg_manip_req\x18\x0b \x01(\x0b\x32*.mediforproto.FuseImageManipulationRequestH\x00\x12\x43\n\rvid_manip_req\x18\x0c \x01(\x0b\x32*.mediforproto.FuseVideoManipulationRequestH\x00\x12>\n\x0eimg_splice_req\x18\r \x01(\x0b\x32$.mediforproto.FuseImageSpliceRequestH\x00\x12\x46\n\x11img_cam_match_req\x18\x0e \x01(\x0b\x32).mediforproto.FuseImageCameraMatchRequestH\x00\x12\x34\n\timg_manip\x18\x15 \x01(\x0b\x32\x1f.mediforproto.ImageManipulationH\x01\x12\x34\n\tvid_manip\x18\x16 \x01(\x0b\x32\x1f.mediforproto.VideoManipulationH\x01\x12/\n\nimg_splice\x18\x17 \x01(\x0b\x32\x19.mediforproto.ImageSpliceH\x01\x12\x37\n\rimg_cam_match\x18\x18 \x01(\x0b\x32\x1e.mediforproto.ImageCameraMatchH\x01\x42\t\n\x07requestB\n\n\x08response\"h\n\x1a\x41nnotatedImageManipulation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12-\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x1f.mediforproto.ImageManipulation\"\xd3\x01\n\x1c\x46useImageManipulationRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12=\n\rimg_manip_req\x18\x03 \x01(\x0b\x32&.mediforproto.ImageManipulationRequest\x12;\n\timg_manip\x18\x04 \x03(\x0b\x32(.mediforproto.AnnotatedImageManipulation\x12\x12\n\nwant_masks\x18\x05 \x01(\x08\"h\n\x1a\x41nnotatedVideoManipulation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12-\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x1f.mediforproto.VideoManipulation\"\xd3\x01\n\x1c\x46useVideoManipulationRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12=\n\rvid_manip_req\x18\x03 \x01(\x0b\x32&.mediforproto.VideoManipulationRequest\x12;\n\tvid_manip\x18\x04 \x03(\x0b\x32(.mediforproto.AnnotatedVideoManipulation\x12\x12\n\nwant_masks\x18\x05 \x01(\x08\"\\\n\x14\x41nnotatedImageSplice\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\'\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x19.mediforproto.ImageSplice\"\xc3\x01\n\x16\x46useImageSpliceRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12\x38\n\x0eimg_splice_req\x18\x03 \x01(\x0b\x32 .mediforproto.ImageSpliceRequest\x12\x36\n\nimg_splice\x18\x04 \x03(\x0b\x32\".mediforproto.AnnotatedImageSplice\x12\x12\n\nwant_masks\x18\x05 \x01(\x08\"f\n\x19\x41nnotatedImageCameraMatch\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12,\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x1e.mediforproto.ImageCameraMatch\"\xd8\x01\n\x1b\x46useImageCameraMatchRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12@\n\x11img_cam_match_req\x18\x03 \x01(\x0b\x32%.mediforproto.ImageCameraMatchRequest\x12>\n\rimg_cam_match\x18\x04 \x03(\x0b\x32\'.mediforproto.AnnotatedImageCameraMatch\x12\x12\n\nwant_masks\x18\x05 \x01(\x08\"f\n\x19\x41nnotatedVideoCameraMatch\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12,\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x1e.mediforproto.VideoCameraMatch\"\xd8\x01\n\x1b\x46useVideoCameraMatchRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12@\n\x11vid_cam_match_req\x18\x03 \x01(\x0b\x32%.mediforproto.VideoCameraMatchRequest\x12>\n\rvid_cam_match\x18\x04 \x03(\x0b\x32\'.mediforproto.AnnotatedVideoCameraMatch\x12\x12\n\nwant_masks\x18\x05 \x01(\x08\x32\x9f\x04\n\x05\x46user\x12\x64\n\x15\x46useImageManipulation\x12*.mediforproto.FuseImageManipulationRequest\x1a\x1f.mediforproto.ImageManipulation\x12R\n\x0f\x46useImageSplice\x12$.mediforproto.FuseImageSpliceRequest\x1a\x19.mediforproto.ImageSplice\x12\x64\n\x15\x46useVideoManipulation\x12*.mediforproto.FuseVideoManipulationRequest\x1a\x1f.mediforproto.VideoManipulation\x12\x61\n\x14\x46useImageCameraMatch\x12).mediforproto.FuseImageCameraMatchRequest\x1a\x1e.mediforproto.ImageCameraMatch\x12\x61\n\x14\x46useVideoCameraMatch\x12).mediforproto.FuseVideoCameraMatchRequest\x1a\x1e.mediforproto.VideoCameraMatch\x12\x30\n\x04Kill\x12\x13.mediforproto.Empty\x1a\x13.mediforproto.Emptyb\x06proto3') + serialized_options=_b('Z2github.com/mediaforensics/medifor/pkg/mediforproto'), + serialized_pb=_b('\n\x17medifor/v1/fusion.proto\x12\x0cmediforproto\x1a\x17google/rpc/status.proto\x1a\x19medifor/v1/analytic.proto\"\xdf\x04\n\x06\x46usion\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12\x19\n\x11start_time_millis\x18\x02 \x01(\x03\x12\x17\n\x0f\x65nd_time_millis\x18\x03 \x01(\x03\x12\x43\n\rimg_manip_req\x18\x0b \x01(\x0b\x32*.mediforproto.FuseImageManipulationRequestH\x00\x12\x43\n\rvid_manip_req\x18\x0c \x01(\x0b\x32*.mediforproto.FuseVideoManipulationRequestH\x00\x12>\n\x0eimg_splice_req\x18\r \x01(\x0b\x32$.mediforproto.FuseImageSpliceRequestH\x00\x12\x46\n\x11img_cam_match_req\x18\x0e \x01(\x0b\x32).mediforproto.FuseImageCameraMatchRequestH\x00\x12\x34\n\timg_manip\x18\x15 \x01(\x0b\x32\x1f.mediforproto.ImageManipulationH\x01\x12\x34\n\tvid_manip\x18\x16 \x01(\x0b\x32\x1f.mediforproto.VideoManipulationH\x01\x12/\n\nimg_splice\x18\x17 \x01(\x0b\x32\x19.mediforproto.ImageSpliceH\x01\x12\x37\n\rimg_cam_match\x18\x18 \x01(\x0b\x32\x1e.mediforproto.ImageCameraMatchH\x01\x42\t\n\x07requestB\n\n\x08response\"h\n\x1a\x41nnotatedImageManipulation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12-\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x1f.mediforproto.ImageManipulation\"\xd3\x01\n\x1c\x46useImageManipulationRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12=\n\rimg_manip_req\x18\x03 \x01(\x0b\x32&.mediforproto.ImageManipulationRequest\x12;\n\timg_manip\x18\x04 \x03(\x0b\x32(.mediforproto.AnnotatedImageManipulation\x12\x12\n\nwant_masks\x18\x05 \x01(\x08\"h\n\x1a\x41nnotatedVideoManipulation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12-\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x1f.mediforproto.VideoManipulation\"\xd3\x01\n\x1c\x46useVideoManipulationRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12=\n\rvid_manip_req\x18\x03 \x01(\x0b\x32&.mediforproto.VideoManipulationRequest\x12;\n\tvid_manip\x18\x04 \x03(\x0b\x32(.mediforproto.AnnotatedVideoManipulation\x12\x12\n\nwant_masks\x18\x05 \x01(\x08\"\\\n\x14\x41nnotatedImageSplice\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\'\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x19.mediforproto.ImageSplice\"\xc3\x01\n\x16\x46useImageSpliceRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12\x38\n\x0eimg_splice_req\x18\x03 \x01(\x0b\x32 .mediforproto.ImageSpliceRequest\x12\x36\n\nimg_splice\x18\x04 \x03(\x0b\x32\".mediforproto.AnnotatedImageSplice\x12\x12\n\nwant_masks\x18\x05 \x01(\x08\"f\n\x19\x41nnotatedImageCameraMatch\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12,\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x1e.mediforproto.ImageCameraMatch\"\xd8\x01\n\x1b\x46useImageCameraMatchRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12@\n\x11img_cam_match_req\x18\x03 \x01(\x0b\x32%.mediforproto.ImageCameraMatchRequest\x12>\n\rimg_cam_match\x18\x04 \x03(\x0b\x32\'.mediforproto.AnnotatedImageCameraMatch\x12\x12\n\nwant_masks\x18\x05 \x01(\x08\"f\n\x19\x41nnotatedVideoCameraMatch\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12,\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x1e.mediforproto.VideoCameraMatch\"\xd8\x01\n\x1b\x46useVideoCameraMatchRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\x12@\n\x11vid_cam_match_req\x18\x03 \x01(\x0b\x32%.mediforproto.VideoCameraMatchRequest\x12>\n\rvid_cam_match\x18\x04 \x03(\x0b\x32\'.mediforproto.AnnotatedVideoCameraMatch\x12\x12\n\nwant_masks\x18\x05 \x01(\x08\x32\x9f\x04\n\x05\x46user\x12\x64\n\x15\x46useImageManipulation\x12*.mediforproto.FuseImageManipulationRequest\x1a\x1f.mediforproto.ImageManipulation\x12R\n\x0f\x46useImageSplice\x12$.mediforproto.FuseImageSpliceRequest\x1a\x19.mediforproto.ImageSplice\x12\x64\n\x15\x46useVideoManipulation\x12*.mediforproto.FuseVideoManipulationRequest\x1a\x1f.mediforproto.VideoManipulation\x12\x61\n\x14\x46useImageCameraMatch\x12).mediforproto.FuseImageCameraMatchRequest\x1a\x1e.mediforproto.ImageCameraMatch\x12\x61\n\x14\x46useVideoCameraMatch\x12).mediforproto.FuseVideoCameraMatchRequest\x1a\x1e.mediforproto.VideoCameraMatch\x12\x30\n\x04Kill\x12\x13.mediforproto.Empty\x1a\x13.mediforproto.EmptyB4Z2github.com/mediaforensics/medifor/pkg/mediforprotob\x06proto3') , dependencies=[google_dot_rpc_dot_status__pb2.DESCRIPTOR,medifor_dot_v1_dot_analytic__pb2.DESCRIPTOR,]) @@ -793,6 +793,7 @@ _sym_db.RegisterMessage(FuseVideoCameraMatchRequest) +DESCRIPTOR._options = None _FUSER = _descriptor.ServiceDescriptor( name='Fuser', diff --git a/python/medifor/v1/kill_pb2.py b/python/medifor/v1/kill_pb2.py index c4fa220..f6e95b8 100644 --- a/python/medifor/v1/kill_pb2.py +++ b/python/medifor/v1/kill_pb2.py @@ -19,8 +19,8 @@ name='medifor/v1/kill.proto', package='mediforproto', syntax='proto3', - serialized_options=_b('\n\030com.mediforprogram.protoB\tKillProto'), - serialized_pb=_b('\n\x15medifor/v1/kill.proto\x12\x0cmediforproto\x1a\x19medifor/v1/analytic.proto2<\n\x08Killable\x12\x30\n\x04Kill\x12\x13.mediforproto.Empty\x1a\x13.mediforproto.EmptyB%\n\x18\x63om.mediforprogram.protoB\tKillProtob\x06proto3') + serialized_options=_b('\n\030com.mediforprogram.protoB\tKillProtoZ2github.com/mediaforensics/medifor/pkg/mediforproto'), + serialized_pb=_b('\n\x15medifor/v1/kill.proto\x12\x0cmediforproto\x1a\x19medifor/v1/analytic.proto2<\n\x08Killable\x12\x30\n\x04Kill\x12\x13.mediforproto.Empty\x1a\x13.mediforproto.EmptyBY\n\x18\x63om.mediforprogram.protoB\tKillProtoZ2github.com/mediaforensics/medifor/pkg/mediforprotob\x06proto3') , dependencies=[medifor_dot_v1_dot_analytic__pb2.DESCRIPTOR,]) diff --git a/python/medifor/v1/pipeline_pb2.py b/python/medifor/v1/pipeline_pb2.py index c2d51b4..2563499 100644 --- a/python/medifor/v1/pipeline_pb2.py +++ b/python/medifor/v1/pipeline_pb2.py @@ -19,16 +19,16 @@ DESCRIPTOR = _descriptor.FileDescriptor( name='medifor/v1/pipeline.proto', - package='workflowproto', + package='mediforproto', syntax='proto3', - serialized_options=None, - serialized_pb=_b('\n\x19medifor/v1/pipeline.proto\x12\rworkflowproto\x1a\x19medifor/v1/analytic.proto\x1a\x17medifor/v1/fusion.proto\"c\n\x07SortCol\x12#\n\x03key\x18\x01 \x01(\x0e\x32\x16.workflowproto.SortKey\x12\x0e\n\x06is_asc\x18\x02 \x01(\x08\x12\x11\n\ttype_cast\x18\x03 \x01(\t\x12\x10\n\x08meta_key\x18\x04 \x01(\t\"\xcc\x03\n\x10\x44\x65tectionRequest\x12\n\n\x02id\x18\x03 \x01(\t\x12(\n\x07request\x18\x01 \x01(\x0b\x32\x17.mediforproto.Detection\x12\x13\n\x0b\x61nalytic_id\x18\x02 \x03(\t\x12\x10\n\x08\x66user_id\x18\x08 \x03(\t\x12\x37\n\x04tags\x18\x04 \x03(\x0b\x32).workflowproto.DetectionRequest.TagsEntry\x12@\n\tuser_tags\x18\x06 \x03(\x0b\x32-.workflowproto.DetectionRequest.UserTagsEntry\x12\x37\n\x04meta\x18\x07 \x03(\x0b\x32).workflowproto.DetectionRequest.MetaEntry\x12\x1c\n\x14\x61nalytic_timeout_sec\x18\x05 \x01(\x03\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rUserTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a+\n\tMetaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb6\x01\n\x15\x41nalyticDetectionInfo\x12\x13\n\x0b\x61nalytic_id\x18\x01 \x01(\t\x12,\n\x05stage\x18\x02 \x01(\x0e\x32\x1d.workflowproto.DetectionStage\x12.\n\x06status\x18\x03 \x01(\x0e\x32\x1e.workflowproto.DetectionStatus\x12*\n\tdetection\x18\x04 \x01(\x0b\x32\x17.mediforproto.Detection\"\xa0\x04\n\rDetectionInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12;\n\ranalytic_info\x18\x02 \x03(\x0b\x32$.workflowproto.AnalyticDetectionInfo\x12\x33\n\x0b\x66usion_info\x18\x08 \x03(\x0b\x32\x1e.workflowproto.FuserFusionInfo\x12\x34\n\x04tags\x18\x03 \x03(\x0b\x32&.workflowproto.DetectionInfo.TagsEntry\x12=\n\tuser_tags\x18\x06 \x03(\x0b\x32*.workflowproto.DetectionInfo.UserTagsEntry\x12\x34\n\x04meta\x18\x07 \x03(\x0b\x32&.workflowproto.DetectionInfo.MetaEntry\x12\x11\n\thas_fused\x18\x04 \x01(\x08\x12\x13\n\x0b\x66used_score\x18\x05 \x01(\x01\x12\x17\n\x0f\x61nalytics_total\x18\t \x01(\x05\x12\x1a\n\x12\x61nalytics_finished\x18\n \x01(\x05\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rUserTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a+\n\tMetaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"6\n\x14\x44\x65tectionInfoRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nwant_fused\x18\x02 \x01(\x08\"\xf1\x02\n\x14\x44\x65tectionListRequest\x12;\n\x04tags\x18\x01 \x03(\x0b\x32-.workflowproto.DetectionListRequest.TagsEntry\x12\x15\n\rdetection_ids\x18\x07 \x03(\t\x12\x12\n\nwant_fused\x18\x04 \x01(\x08\x12(\n\x08order_by\x18\x05 \x03(\x0b\x32\x16.workflowproto.SortCol\x12\x10\n\x08\x66user_id\x18\x06 \x01(\t\x12\x41\n\x15\x66usion_threshold_type\x18\x08 \x01(\x0e\x32\".workflowproto.FusionThresholdType\x12\x1e\n\x16\x66usion_threshold_value\x18\t \x01(\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\rDetectionList\x12\x30\n\ndetections\x18\x01 \x03(\x0b\x32\x1c.workflowproto.DetectionInfo\x12\r\n\x05total\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"\xeb\x01\n\rFusionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12%\n\x07request\x18\x02 \x01(\x0b\x32\x14.mediforproto.Fusion\x12\x10\n\x08\x66user_id\x18\x04 \x03(\t\x12\x34\n\x04tags\x18\x03 \x03(\x0b\x32&.workflowproto.FusionRequest.TagsEntry\x12\x14\n\x0c\x64\x65tection_id\x18\x05 \x01(\t\x12\x1c\n\x14\x64\x65tection_id_out_dir\x18\x06 \x01(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa7\x01\n\x0f\x46userFusionInfo\x12\x10\n\x08\x66user_id\x18\x01 \x01(\t\x12,\n\x05stage\x18\x02 \x01(\x0e\x32\x1d.workflowproto.DetectionStage\x12.\n\x06status\x18\x03 \x01(\x0e\x32\x1e.workflowproto.DetectionStatus\x12$\n\x06\x66usion\x18\x04 \x01(\x0b\x32\x14.mediforproto.Fusion\"\xd6\x01\n\nFusionInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x34\n\x0c\x66usion_infos\x18\x02 \x03(\x0b\x32\x1e.workflowproto.FuserFusionInfo\x12\x31\n\x04tags\x18\x03 \x03(\x0b\x32#.workflowproto.FusionInfo.TagsEntry\x12\x11\n\thas_fused\x18\x04 \x01(\x08\x12\x13\n\x0b\x66used_score\x18\x05 \x01(\x01\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"6\n\x11\x46useAllIDsRequest\x12\x10\n\x08\x66user_id\x18\x01 \x03(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\"\x14\n\x12\x46useAllIDsResponse\"\xc8\x01\n\x1aUpdateDetectionTagsRequest\x12\x14\n\x0c\x64\x65tection_id\x18\x01 \x01(\t\x12\x0f\n\x07replace\x18\x02 \x01(\x08\x12\x41\n\x04tags\x18\x03 \x03(\x0b\x32\x33.workflowproto.UpdateDetectionTagsRequest.TagsEntry\x12\x13\n\x0b\x64\x65lete_tags\x18\x04 \x03(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x19\n\x17\x44\x65tectionTagInfoRequest\"\x8b\x02\n\x10\x44\x65tectionTagInfo\x12\x42\n\ntag_counts\x18\x01 \x03(\x0b\x32..workflowproto.DetectionTagInfo.TagCountsEntry\x12K\n\x0fuser_tag_counts\x18\x02 \x03(\x0b\x32\x32.workflowproto.DetectionTagInfo.UserTagCountsEntry\x1a\x30\n\x0eTagCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12UserTagCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\".\n\x16\x44\x65leteDetectionRequest\x12\x14\n\x0c\x64\x65tection_id\x18\x01 \x01(\t\"\x93\x02\n\x0c\x41nalyticMeta\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x0b\n\x03\x63pu\x18\x03 \x01(\x01\x12\x0b\n\x03ram\x18\x04 \x01(\x01\x12\x0b\n\x03gpu\x18\x05 \x01(\x05\x12\'\n\x05media\x18\x06 \x03(\x0e\x32\x18.workflowproto.MediaType\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x0c\n\x04name\x18\x08 \x01(\t\x12@\n\x0buser_fields\x18\t \x03(\x0b\x32+.workflowproto.AnalyticMeta.UserFieldsEntry\x1a\x31\n\x0fUserFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\">\n\x0c\x41nalyticList\x12.\n\tanalytics\x18\x01 \x03(\x0b\x32\x1b.workflowproto.AnalyticMeta\"\x07\n\x05\x45mpty*\x81\x01\n\x0e\x44\x65tectionStage\x12\x18\n\x14\x44\x45TECTION_STAGE_NONE\x10\x00\x12\x1a\n\x16\x44\x45TECTION_STAGE_QUEUED\x10\x01\x12\x1b\n\x17\x44\x45TECTION_STAGE_CLAIMED\x10\x02\x12\x1c\n\x18\x44\x45TECTION_STAGE_FINISHED\x10\x03*h\n\x0f\x44\x65tectionStatus\x12\x19\n\x15\x44\x45TECTION_STATUS_NONE\x10\x00\x12\x1c\n\x18\x44\x45TECTION_STATUS_SUCCESS\x10\x01\x12\x1c\n\x18\x44\x45TECTION_STATUS_FAILURE\x10\x02*.\n\x07SortKey\x12\t\n\x05SCORE\x10\x00\x12\x08\n\x04META\x10\x01\x12\x0e\n\nMETA_QUERY\x10\x02*`\n\x13\x46usionThresholdType\x12\x17\n\x13\x46USION_NO_THRESHOLD\x10\x00\x12\x17\n\x13\x46USION_LT_THRESHOLD\x10\x01\x12\x17\n\x13\x46USION_GT_THRESHOLD\x10\x02*E\n\tMediaType\x12\t\n\x05IMAGE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x10\n\x0c\x46USION_IMAGE\x10\x02\x12\x10\n\x0c\x46USION_VIDEO\x10\x03\x32\xb0\x06\n\x08Pipeline\x12G\n\x06\x44\x65tect\x12\x1f.workflowproto.DetectionRequest\x1a\x1c.workflowproto.DetectionInfo\x12U\n\x10GetDetectionInfo\x12#.workflowproto.DetectionInfoRequest\x1a\x1c.workflowproto.DetectionInfo\x12U\n\x10GetDetectionList\x12#.workflowproto.DetectionListRequest\x1a\x1c.workflowproto.DetectionList\x12N\n\x0f\x44\x65leteDetection\x12%.workflowproto.DeleteDetectionRequest\x1a\x14.workflowproto.Empty\x12?\n\x04\x46use\x12\x1c.workflowproto.FusionRequest\x1a\x19.workflowproto.FusionInfo\x12\x43\n\x08\x46useByID\x12\x1c.workflowproto.FusionRequest\x1a\x19.workflowproto.FusionInfo\x12Q\n\nFuseAllIDs\x12 .workflowproto.FuseAllIDsRequest\x1a!.workflowproto.FuseAllIDsResponse\x12^\n\x13UpdateDetectionTags\x12).workflowproto.UpdateDetectionTagsRequest\x1a\x1c.workflowproto.DetectionInfo\x12^\n\x13GetDetectionTagInfo\x12&.workflowproto.DetectionTagInfoRequest\x1a\x1f.workflowproto.DetectionTagInfo\x12\x44\n\x0fGetAnalyticMeta\x12\x14.workflowproto.Empty\x1a\x1b.workflowproto.AnalyticListb\x06proto3') + serialized_options=_b('Z2github.com/mediaforensics/medifor/pkg/mediforproto'), + serialized_pb=_b('\n\x19medifor/v1/pipeline.proto\x12\x0cmediforproto\x1a\x19medifor/v1/analytic.proto\x1a\x17medifor/v1/fusion.proto\"b\n\x07SortCol\x12\"\n\x03key\x18\x01 \x01(\x0e\x32\x15.mediforproto.SortKey\x12\x0e\n\x06is_asc\x18\x02 \x01(\x08\x12\x11\n\ttype_cast\x18\x03 \x01(\t\x12\x10\n\x08meta_key\x18\x04 \x01(\t\"\xc9\x03\n\x10\x44\x65tectionRequest\x12\n\n\x02id\x18\x03 \x01(\t\x12(\n\x07request\x18\x01 \x01(\x0b\x32\x17.mediforproto.Detection\x12\x13\n\x0b\x61nalytic_id\x18\x02 \x03(\t\x12\x10\n\x08\x66user_id\x18\x08 \x03(\t\x12\x36\n\x04tags\x18\x04 \x03(\x0b\x32(.mediforproto.DetectionRequest.TagsEntry\x12?\n\tuser_tags\x18\x06 \x03(\x0b\x32,.mediforproto.DetectionRequest.UserTagsEntry\x12\x36\n\x04meta\x18\x07 \x03(\x0b\x32(.mediforproto.DetectionRequest.MetaEntry\x12\x1c\n\x14\x61nalytic_timeout_sec\x18\x05 \x01(\x03\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rUserTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a+\n\tMetaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb4\x01\n\x15\x41nalyticDetectionInfo\x12\x13\n\x0b\x61nalytic_id\x18\x01 \x01(\t\x12+\n\x05stage\x18\x02 \x01(\x0e\x32\x1c.mediforproto.DetectionStage\x12-\n\x06status\x18\x03 \x01(\x0e\x32\x1d.mediforproto.DetectionStatus\x12*\n\tdetection\x18\x04 \x01(\x0b\x32\x17.mediforproto.Detection\"\xca\x04\n\rDetectionInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12-\n\rreq_resources\x18\x0b \x03(\x0b\x32\x16.mediforproto.Resource\x12:\n\ranalytic_info\x18\x02 \x03(\x0b\x32#.mediforproto.AnalyticDetectionInfo\x12\x32\n\x0b\x66usion_info\x18\x08 \x03(\x0b\x32\x1d.mediforproto.FuserFusionInfo\x12\x33\n\x04tags\x18\x03 \x03(\x0b\x32%.mediforproto.DetectionInfo.TagsEntry\x12<\n\tuser_tags\x18\x06 \x03(\x0b\x32).mediforproto.DetectionInfo.UserTagsEntry\x12\x33\n\x04meta\x18\x07 \x03(\x0b\x32%.mediforproto.DetectionInfo.MetaEntry\x12\x11\n\thas_fused\x18\x04 \x01(\x08\x12\x13\n\x0b\x66used_score\x18\x05 \x01(\x01\x12\x17\n\x0f\x61nalytics_total\x18\t \x01(\x05\x12\x1a\n\x12\x61nalytics_finished\x18\n \x01(\x05\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rUserTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a+\n\tMetaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"6\n\x14\x44\x65tectionInfoRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nwant_fused\x18\x02 \x01(\x08\"?\n\tDateRange\x12\x19\n\x11start_seconds_utc\x18\x01 \x01(\x03\x12\x17\n\x0f\x65nd_seconds_utc\x18\x02 \x01(\x03\"\xe8\x03\n\x14\x44\x65tectionListRequest\x12\x37\n\tverbosity\x18\x0c \x01(\x0e\x32$.mediforproto.DetectionListVerbosity\x12:\n\x04tags\x18\x01 \x03(\x0b\x32,.mediforproto.DetectionListRequest.TagsEntry\x12\x12\n\nmeta_query\x18\n \x01(\t\x12+\n\ndate_range\x18\x0b \x01(\x0b\x32\x17.mediforproto.DateRange\x12\x15\n\rdetection_ids\x18\x07 \x03(\t\x12\x12\n\nwant_fused\x18\x04 \x01(\x08\x12\'\n\x08order_by\x18\x05 \x03(\x0b\x32\x15.mediforproto.SortCol\x12\x10\n\x08\x66user_id\x18\x06 \x01(\t\x12@\n\x15\x66usion_threshold_type\x18\x08 \x01(\x0e\x32!.mediforproto.FusionThresholdType\x12\x1e\n\x16\x66usion_threshold_value\x18\t \x01(\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"c\n\rDetectionList\x12/\n\ndetections\x18\x01 \x03(\x0b\x32\x1b.mediforproto.DetectionInfo\x12\r\n\x05total\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"\xea\x01\n\rFusionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12%\n\x07request\x18\x02 \x01(\x0b\x32\x14.mediforproto.Fusion\x12\x10\n\x08\x66user_id\x18\x04 \x03(\t\x12\x33\n\x04tags\x18\x03 \x03(\x0b\x32%.mediforproto.FusionRequest.TagsEntry\x12\x14\n\x0c\x64\x65tection_id\x18\x05 \x01(\t\x12\x1c\n\x14\x64\x65tection_id_out_dir\x18\x06 \x01(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xa5\x01\n\x0f\x46userFusionInfo\x12\x10\n\x08\x66user_id\x18\x01 \x01(\t\x12+\n\x05stage\x18\x02 \x01(\x0e\x32\x1c.mediforproto.DetectionStage\x12-\n\x06status\x18\x03 \x01(\x0e\x32\x1d.mediforproto.DetectionStatus\x12$\n\x06\x66usion\x18\x04 \x01(\x0b\x32\x14.mediforproto.Fusion\"\xd4\x01\n\nFusionInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x33\n\x0c\x66usion_infos\x18\x02 \x03(\x0b\x32\x1d.mediforproto.FuserFusionInfo\x12\x30\n\x04tags\x18\x03 \x03(\x0b\x32\".mediforproto.FusionInfo.TagsEntry\x12\x11\n\thas_fused\x18\x04 \x01(\x08\x12\x13\n\x0b\x66used_score\x18\x05 \x01(\x01\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"6\n\x11\x46useAllIDsRequest\x12\x10\n\x08\x66user_id\x18\x01 \x03(\t\x12\x0f\n\x07out_dir\x18\x02 \x01(\t\"\x14\n\x12\x46useAllIDsResponse\"\xc7\x01\n\x1aUpdateDetectionTagsRequest\x12\x14\n\x0c\x64\x65tection_id\x18\x01 \x01(\t\x12\x0f\n\x07replace\x18\x02 \x01(\x08\x12@\n\x04tags\x18\x03 \x03(\x0b\x32\x32.mediforproto.UpdateDetectionTagsRequest.TagsEntry\x12\x13\n\x0b\x64\x65lete_tags\x18\x04 \x03(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb2\x01\n\x17\x44\x65tectionTagInfoRequest\x12L\n\x0crequire_tags\x18\x01 \x03(\x0b\x32\x36.mediforproto.DetectionTagInfoRequest.RequireTagsEntry\x12\x15\n\rskip_prefixes\x18\x02 \x03(\t\x1a\x32\n\x10RequireTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x89\x02\n\x10\x44\x65tectionTagInfo\x12\x41\n\ntag_counts\x18\x01 \x03(\x0b\x32-.mediforproto.DetectionTagInfo.TagCountsEntry\x12J\n\x0fuser_tag_counts\x18\x02 \x03(\x0b\x32\x31.mediforproto.DetectionTagInfo.UserTagCountsEntry\x1a\x30\n\x0eTagCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12UserTagCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\".\n\x16\x44\x65leteDetectionRequest\x12\x14\n\x0c\x64\x65tection_id\x18\x01 \x01(\t\"\x91\x02\n\x0c\x41nalyticMeta\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x0b\n\x03\x63pu\x18\x03 \x01(\x01\x12\x0b\n\x03ram\x18\x04 \x01(\x01\x12\x0b\n\x03gpu\x18\x05 \x01(\x05\x12&\n\x05media\x18\x06 \x03(\x0e\x32\x17.mediforproto.MediaType\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x0c\n\x04name\x18\x08 \x01(\t\x12?\n\x0buser_fields\x18\t \x03(\x0b\x32*.mediforproto.AnalyticMeta.UserFieldsEntry\x1a\x31\n\x0fUserFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"=\n\x0c\x41nalyticList\x12-\n\tanalytics\x18\x01 \x03(\x0b\x32\x1a.mediforproto.AnalyticMeta\"\xed\x03\n\x15ListDetectionsRequest\x12/\n\x0cscore_filter\x18\x01 \x01(\x0b\x32\x19.mediforproto.ScoreFilter\x12.\n\x0cmeta_filters\x18\x02 \x03(\x0b\x32\x18.mediforproto.MetaFilter\x12;\n\x04tags\x18\x03 \x03(\x0b\x32-.mediforproto.ListDetectionsRequest.TagsEntry\x12J\n\x0c\x65xclude_tags\x18\t \x03(\x0b\x32\x34.mediforproto.ListDetectionsRequest.ExcludeTagsEntry\x12\x12\n\nmeta_query\x18\n \x01(\t\x12\'\n\x08order_by\x18\x04 \x03(\x0b\x32\x15.mediforproto.SortCol\x12\x13\n\x0b\x61nalytic_id\x18\x05 \x01(\t\x12\x10\n\x08\x66user_id\x18\x06 \x01(\t\x12\x11\n\tpage_size\x18\x07 \x01(\x05\x12\x12\n\npage_token\x18\x08 \x01(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x45xcludeTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"I\n\x0bScoreFilter\x12\x0f\n\x07has_min\x18\x01 \x01(\x08\x12\x0b\n\x03min\x18\x02 \x01(\x01\x12\x0f\n\x07has_max\x18\x03 \x01(\x08\x12\x0b\n\x03max\x18\x04 \x01(\x01\"Z\n\nMetaFilter\x12\x10\n\x08meta_key\x18\x01 \x01(\t\x12\x0f\n\x07has_min\x18\x02 \x01(\x08\x12\x0b\n\x03min\x18\x03 \x01(\t\x12\x0f\n\x07has_max\x18\x04 \x01(\x08\x12\x0b\n\x03max\x18\x05 \x01(\t\"\xb5\x01\n\x1eUpdateDetectionMetadataRequest\x12\x14\n\x0c\x64\x65tection_id\x18\x01 \x01(\t\x12L\n\x08metadata\x18\x02 \x03(\x0b\x32:.mediforproto.UpdateDetectionMetadataRequest.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"B\n\x17GetAnalyticStatsRequest\x12\x14\n\x0c\x61nalytic_ids\x18\x01 \x03(\t\x12\x11\n\tfuser_ids\x18\x02 \x03(\t\"\x81\x01\n\x18GetAnalyticStatsResponse\x12\x33\n\x0e\x61nalytic_stats\x18\x01 \x03(\x0b\x32\x1b.mediforproto.AnalyticStats\x12\x30\n\x0b\x66user_stats\x18\x02 \x03(\x0b\x32\x1b.mediforproto.AnalyticStats\"s\n\rAnalyticStats\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07pending\x18\x02 \x01(\x05\x12\x0f\n\x07running\x18\x03 \x01(\x05\x12\x11\n\tsucceeded\x18\x04 \x01(\x05\x12\x11\n\topted_out\x18\x06 \x01(\x05\x12\x0e\n\x06\x66\x61iled\x18\x05 \x01(\x05\"\xb7\x02\n\x13GetHistogramRequest\x12\x13\n\x0b\x61nalytic_id\x18\x01 \x01(\t\x12\x10\n\x08\x66user_id\x18\x02 \x01(\t\x12\x39\n\x04tags\x18\x03 \x03(\x0b\x32+.mediforproto.GetHistogramRequest.TagsEntry\x12H\n\x0c\x65xclude_tags\x18\x05 \x03(\x0b\x32\x32.mediforproto.GetHistogramRequest.ExcludeTagsEntry\x12\x13\n\x0bnum_buckets\x18\x04 \x01(\x05\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x45xcludeTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"=\n\x14GetHistogramResponse\x12%\n\x07\x62uckets\x18\x01 \x03(\x0b\x32\x14.mediforproto.Bucket\"5\n\x06\x42ucket\x12\x0b\n\x03min\x18\x01 \x01(\x01\x12\x0b\n\x03max\x18\x02 \x01(\x01\x12\x11\n\tfrequency\x18\x03 \x01(\x05\"\x1e\n\x1c\x44\x65leteFailedAnalyticsRequest\"\xd6\x01\n\x1d\x44\x65leteFailedAnalyticsResponse\x12\\\n\x11\x64\x65leted_analytics\x18\x01 \x03(\x0b\x32\x41.mediforproto.DeleteFailedAnalyticsResponse.DeletedAnalyticsEntry\x1aW\n\x15\x44\x65letedAnalyticsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.mediforproto.DeletedAnalytics:\x02\x38\x01\"0\n\x10\x44\x65letedAnalytics\x12\x1c\n\x14\x64\x65leted_analytic_ids\x18\x01 \x03(\t\"\x99\x02\n\x1dGetAnalyticsWithScoresRequest\x12\x43\n\x04tags\x18\x01 \x03(\x0b\x32\x35.mediforproto.GetAnalyticsWithScoresRequest.TagsEntry\x12R\n\x0c\x65xclude_tags\x18\x02 \x03(\x0b\x32<.mediforproto.GetAnalyticsWithScoresRequest.ExcludeTagsEntry\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x45xcludeTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"I\n\x1eGetAnalyticsWithScoresResponse\x12\x14\n\x0c\x61nalytic_ids\x18\x01 \x03(\t\x12\x11\n\tfuser_ids\x18\x02 \x03(\t*\x81\x01\n\x0e\x44\x65tectionStage\x12\x18\n\x14\x44\x45TECTION_STAGE_NONE\x10\x00\x12\x1a\n\x16\x44\x45TECTION_STAGE_QUEUED\x10\x01\x12\x1b\n\x17\x44\x45TECTION_STAGE_CLAIMED\x10\x02\x12\x1c\n\x18\x44\x45TECTION_STAGE_FINISHED\x10\x03*h\n\x0f\x44\x65tectionStatus\x12\x19\n\x15\x44\x45TECTION_STATUS_NONE\x10\x00\x12\x1c\n\x18\x44\x45TECTION_STATUS_SUCCESS\x10\x01\x12\x1c\n\x18\x44\x45TECTION_STATUS_FAILURE\x10\x02*.\n\x07SortKey\x12\t\n\x05SCORE\x10\x00\x12\x08\n\x04META\x10\x01\x12\x0e\n\nMETA_QUERY\x10\x02*`\n\x13\x46usionThresholdType\x12\x17\n\x13\x46USION_NO_THRESHOLD\x10\x00\x12\x17\n\x13\x46USION_LT_THRESHOLD\x10\x01\x12\x17\n\x13\x46USION_GT_THRESHOLD\x10\x02*E\n\tMediaType\x12\t\n\x05IMAGE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x10\n\x0c\x46USION_IMAGE\x10\x02\x12\x10\n\x0c\x46USION_VIDEO\x10\x03*W\n\x16\x44\x65tectionListVerbosity\x12\x1c\n\x18\x44\x45TECTION_VERBOSITY_FULL\x10\x00\x12\x1f\n\x1b\x44\x45TECTION_VERBOSITY_MINIMAL\x10\x01\x32\xf7\n\n\x08Pipeline\x12\x45\n\x06\x44\x65tect\x12\x1e.mediforproto.DetectionRequest\x1a\x1b.mediforproto.DetectionInfo\x12S\n\x10GetDetectionInfo\x12\".mediforproto.DetectionInfoRequest\x1a\x1b.mediforproto.DetectionInfo\x12S\n\x10GetDetectionList\x12\".mediforproto.DetectionListRequest\x1a\x1b.mediforproto.DetectionList\x12L\n\x0f\x44\x65leteDetection\x12$.mediforproto.DeleteDetectionRequest\x1a\x13.mediforproto.Empty\x12=\n\x04\x46use\x12\x1b.mediforproto.FusionRequest\x1a\x18.mediforproto.FusionInfo\x12\x41\n\x08\x46useByID\x12\x1b.mediforproto.FusionRequest\x1a\x18.mediforproto.FusionInfo\x12O\n\nFuseAllIDs\x12\x1f.mediforproto.FuseAllIDsRequest\x1a .mediforproto.FuseAllIDsResponse\x12\\\n\x13UpdateDetectionTags\x12(.mediforproto.UpdateDetectionTagsRequest\x1a\x1b.mediforproto.DetectionInfo\x12\\\n\x13GetDetectionTagInfo\x12%.mediforproto.DetectionTagInfoRequest\x1a\x1e.mediforproto.DetectionTagInfo\x12\x42\n\x0fGetAnalyticMeta\x12\x13.mediforproto.Empty\x1a\x1a.mediforproto.AnalyticList\x12R\n\x0eListDetections\x12#.mediforproto.ListDetectionsRequest\x1a\x1b.mediforproto.DetectionList\x12\x64\n\x17UpdateDetectionMetadata\x12,.mediforproto.UpdateDetectionMetadataRequest\x1a\x1b.mediforproto.DetectionInfo\x12\x61\n\x10GetAnalyticStats\x12%.mediforproto.GetAnalyticStatsRequest\x1a&.mediforproto.GetAnalyticStatsResponse\x12U\n\x0cGetHistogram\x12!.mediforproto.GetHistogramRequest\x1a\".mediforproto.GetHistogramResponse\x12p\n\x15\x44\x65leteFailedAnalytics\x12*.mediforproto.DeleteFailedAnalyticsRequest\x1a+.mediforproto.DeleteFailedAnalyticsResponse\x12s\n\x16GetAnalyticsWithScores\x12+.mediforproto.GetAnalyticsWithScoresRequest\x1a,.mediforproto.GetAnalyticsWithScoresResponseB4Z2github.com/mediaforensics/medifor/pkg/mediforprotob\x06proto3') , dependencies=[medifor_dot_v1_dot_analytic__pb2.DESCRIPTOR,medifor_dot_v1_dot_fusion__pb2.DESCRIPTOR,]) _DETECTIONSTAGE = _descriptor.EnumDescriptor( name='DetectionStage', - full_name='workflowproto.DetectionStage', + full_name='mediforproto.DetectionStage', filename=None, file=DESCRIPTOR, values=[ @@ -51,15 +51,15 @@ ], containing_type=None, serialized_options=None, - serialized_start=3525, - serialized_end=3654, + serialized_start=6131, + serialized_end=6260, ) _sym_db.RegisterEnumDescriptor(_DETECTIONSTAGE) DetectionStage = enum_type_wrapper.EnumTypeWrapper(_DETECTIONSTAGE) _DETECTIONSTATUS = _descriptor.EnumDescriptor( name='DetectionStatus', - full_name='workflowproto.DetectionStatus', + full_name='mediforproto.DetectionStatus', filename=None, file=DESCRIPTOR, values=[ @@ -78,15 +78,15 @@ ], containing_type=None, serialized_options=None, - serialized_start=3656, - serialized_end=3760, + serialized_start=6262, + serialized_end=6366, ) _sym_db.RegisterEnumDescriptor(_DETECTIONSTATUS) DetectionStatus = enum_type_wrapper.EnumTypeWrapper(_DETECTIONSTATUS) _SORTKEY = _descriptor.EnumDescriptor( name='SortKey', - full_name='workflowproto.SortKey', + full_name='mediforproto.SortKey', filename=None, file=DESCRIPTOR, values=[ @@ -105,15 +105,15 @@ ], containing_type=None, serialized_options=None, - serialized_start=3762, - serialized_end=3808, + serialized_start=6368, + serialized_end=6414, ) _sym_db.RegisterEnumDescriptor(_SORTKEY) SortKey = enum_type_wrapper.EnumTypeWrapper(_SORTKEY) _FUSIONTHRESHOLDTYPE = _descriptor.EnumDescriptor( name='FusionThresholdType', - full_name='workflowproto.FusionThresholdType', + full_name='mediforproto.FusionThresholdType', filename=None, file=DESCRIPTOR, values=[ @@ -132,15 +132,15 @@ ], containing_type=None, serialized_options=None, - serialized_start=3810, - serialized_end=3906, + serialized_start=6416, + serialized_end=6512, ) _sym_db.RegisterEnumDescriptor(_FUSIONTHRESHOLDTYPE) FusionThresholdType = enum_type_wrapper.EnumTypeWrapper(_FUSIONTHRESHOLDTYPE) _MEDIATYPE = _descriptor.EnumDescriptor( name='MediaType', - full_name='workflowproto.MediaType', + full_name='mediforproto.MediaType', filename=None, file=DESCRIPTOR, values=[ @@ -163,12 +163,35 @@ ], containing_type=None, serialized_options=None, - serialized_start=3908, - serialized_end=3977, + serialized_start=6514, + serialized_end=6583, ) _sym_db.RegisterEnumDescriptor(_MEDIATYPE) MediaType = enum_type_wrapper.EnumTypeWrapper(_MEDIATYPE) +_DETECTIONLISTVERBOSITY = _descriptor.EnumDescriptor( + name='DetectionListVerbosity', + full_name='mediforproto.DetectionListVerbosity', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DETECTION_VERBOSITY_FULL', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DETECTION_VERBOSITY_MINIMAL', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=6585, + serialized_end=6672, +) +_sym_db.RegisterEnumDescriptor(_DETECTIONLISTVERBOSITY) + +DetectionListVerbosity = enum_type_wrapper.EnumTypeWrapper(_DETECTIONLISTVERBOSITY) DETECTION_STAGE_NONE = 0 DETECTION_STAGE_QUEUED = 1 DETECTION_STAGE_CLAIMED = 2 @@ -186,39 +209,41 @@ VIDEO = 1 FUSION_IMAGE = 2 FUSION_VIDEO = 3 +DETECTION_VERBOSITY_FULL = 0 +DETECTION_VERBOSITY_MINIMAL = 1 _SORTCOL = _descriptor.Descriptor( name='SortCol', - full_name='workflowproto.SortCol', + full_name='mediforproto.SortCol', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.SortCol.key', index=0, + name='key', full_name='mediforproto.SortCol.key', index=0, number=1, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='is_asc', full_name='workflowproto.SortCol.is_asc', index=1, + name='is_asc', full_name='mediforproto.SortCol.is_asc', index=1, number=2, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='type_cast', full_name='workflowproto.SortCol.type_cast', index=2, + name='type_cast', full_name='mediforproto.SortCol.type_cast', index=2, number=3, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='meta_key', full_name='workflowproto.SortCol.meta_key', index=3, + name='meta_key', full_name='mediforproto.SortCol.meta_key', index=3, number=4, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -236,27 +261,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=96, - serialized_end=195, + serialized_start=95, + serialized_end=193, ) _DETECTIONREQUEST_TAGSENTRY = _descriptor.Descriptor( name='TagsEntry', - full_name='workflowproto.DetectionRequest.TagsEntry', + full_name='mediforproto.DetectionRequest.TagsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.DetectionRequest.TagsEntry.key', index=0, + name='key', full_name='mediforproto.DetectionRequest.TagsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.DetectionRequest.TagsEntry.value', index=1, + name='value', full_name='mediforproto.DetectionRequest.TagsEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -274,26 +299,26 @@ extension_ranges=[], oneofs=[ ], - serialized_start=521, - serialized_end=564, + serialized_start=516, + serialized_end=559, ) _DETECTIONREQUEST_USERTAGSENTRY = _descriptor.Descriptor( name='UserTagsEntry', - full_name='workflowproto.DetectionRequest.UserTagsEntry', + full_name='mediforproto.DetectionRequest.UserTagsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.DetectionRequest.UserTagsEntry.key', index=0, + name='key', full_name='mediforproto.DetectionRequest.UserTagsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.DetectionRequest.UserTagsEntry.value', index=1, + name='value', full_name='mediforproto.DetectionRequest.UserTagsEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -311,26 +336,26 @@ extension_ranges=[], oneofs=[ ], - serialized_start=566, - serialized_end=613, + serialized_start=561, + serialized_end=608, ) _DETECTIONREQUEST_METAENTRY = _descriptor.Descriptor( name='MetaEntry', - full_name='workflowproto.DetectionRequest.MetaEntry', + full_name='mediforproto.DetectionRequest.MetaEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.DetectionRequest.MetaEntry.key', index=0, + name='key', full_name='mediforproto.DetectionRequest.MetaEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.DetectionRequest.MetaEntry.value', index=1, + name='value', full_name='mediforproto.DetectionRequest.MetaEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -348,68 +373,68 @@ extension_ranges=[], oneofs=[ ], - serialized_start=615, - serialized_end=658, + serialized_start=610, + serialized_end=653, ) _DETECTIONREQUEST = _descriptor.Descriptor( name='DetectionRequest', - full_name='workflowproto.DetectionRequest', + full_name='mediforproto.DetectionRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='id', full_name='workflowproto.DetectionRequest.id', index=0, + name='id', full_name='mediforproto.DetectionRequest.id', index=0, number=3, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='request', full_name='workflowproto.DetectionRequest.request', index=1, + name='request', full_name='mediforproto.DetectionRequest.request', index=1, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='analytic_id', full_name='workflowproto.DetectionRequest.analytic_id', index=2, + name='analytic_id', full_name='mediforproto.DetectionRequest.analytic_id', index=2, number=2, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='fuser_id', full_name='workflowproto.DetectionRequest.fuser_id', index=3, + name='fuser_id', full_name='mediforproto.DetectionRequest.fuser_id', index=3, number=8, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tags', full_name='workflowproto.DetectionRequest.tags', index=4, + name='tags', full_name='mediforproto.DetectionRequest.tags', index=4, number=4, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='user_tags', full_name='workflowproto.DetectionRequest.user_tags', index=5, + name='user_tags', full_name='mediforproto.DetectionRequest.user_tags', index=5, number=6, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='meta', full_name='workflowproto.DetectionRequest.meta', index=6, + name='meta', full_name='mediforproto.DetectionRequest.meta', index=6, number=7, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='analytic_timeout_sec', full_name='workflowproto.DetectionRequest.analytic_timeout_sec', index=7, + name='analytic_timeout_sec', full_name='mediforproto.DetectionRequest.analytic_timeout_sec', index=7, number=5, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, @@ -427,41 +452,41 @@ extension_ranges=[], oneofs=[ ], - serialized_start=198, - serialized_end=658, + serialized_start=196, + serialized_end=653, ) _ANALYTICDETECTIONINFO = _descriptor.Descriptor( name='AnalyticDetectionInfo', - full_name='workflowproto.AnalyticDetectionInfo', + full_name='mediforproto.AnalyticDetectionInfo', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='analytic_id', full_name='workflowproto.AnalyticDetectionInfo.analytic_id', index=0, + name='analytic_id', full_name='mediforproto.AnalyticDetectionInfo.analytic_id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='stage', full_name='workflowproto.AnalyticDetectionInfo.stage', index=1, + name='stage', full_name='mediforproto.AnalyticDetectionInfo.stage', index=1, number=2, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='status', full_name='workflowproto.AnalyticDetectionInfo.status', index=2, + name='status', full_name='mediforproto.AnalyticDetectionInfo.status', index=2, number=3, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='detection', full_name='workflowproto.AnalyticDetectionInfo.detection', index=3, + name='detection', full_name='mediforproto.AnalyticDetectionInfo.detection', index=3, number=4, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, @@ -479,27 +504,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=661, - serialized_end=843, + serialized_start=656, + serialized_end=836, ) _DETECTIONINFO_TAGSENTRY = _descriptor.Descriptor( name='TagsEntry', - full_name='workflowproto.DetectionInfo.TagsEntry', + full_name='mediforproto.DetectionInfo.TagsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.DetectionInfo.TagsEntry.key', index=0, + name='key', full_name='mediforproto.DetectionInfo.TagsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.DetectionInfo.TagsEntry.value', index=1, + name='value', full_name='mediforproto.DetectionInfo.TagsEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -517,26 +542,26 @@ extension_ranges=[], oneofs=[ ], - serialized_start=521, - serialized_end=564, + serialized_start=516, + serialized_end=559, ) _DETECTIONINFO_USERTAGSENTRY = _descriptor.Descriptor( name='UserTagsEntry', - full_name='workflowproto.DetectionInfo.UserTagsEntry', + full_name='mediforproto.DetectionInfo.UserTagsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.DetectionInfo.UserTagsEntry.key', index=0, + name='key', full_name='mediforproto.DetectionInfo.UserTagsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.DetectionInfo.UserTagsEntry.value', index=1, + name='value', full_name='mediforproto.DetectionInfo.UserTagsEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -554,26 +579,26 @@ extension_ranges=[], oneofs=[ ], - serialized_start=566, - serialized_end=613, + serialized_start=561, + serialized_end=608, ) _DETECTIONINFO_METAENTRY = _descriptor.Descriptor( name='MetaEntry', - full_name='workflowproto.DetectionInfo.MetaEntry', + full_name='mediforproto.DetectionInfo.MetaEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.DetectionInfo.MetaEntry.key', index=0, + name='key', full_name='mediforproto.DetectionInfo.MetaEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.DetectionInfo.MetaEntry.value', index=1, + name='value', full_name='mediforproto.DetectionInfo.MetaEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -591,82 +616,89 @@ extension_ranges=[], oneofs=[ ], - serialized_start=615, - serialized_end=658, + serialized_start=610, + serialized_end=653, ) _DETECTIONINFO = _descriptor.Descriptor( name='DetectionInfo', - full_name='workflowproto.DetectionInfo', + full_name='mediforproto.DetectionInfo', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='id', full_name='workflowproto.DetectionInfo.id', index=0, + name='id', full_name='mediforproto.DetectionInfo.id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='analytic_info', full_name='workflowproto.DetectionInfo.analytic_info', index=1, + name='req_resources', full_name='mediforproto.DetectionInfo.req_resources', index=1, + number=11, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='analytic_info', full_name='mediforproto.DetectionInfo.analytic_info', index=2, number=2, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='fusion_info', full_name='workflowproto.DetectionInfo.fusion_info', index=2, + name='fusion_info', full_name='mediforproto.DetectionInfo.fusion_info', index=3, number=8, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tags', full_name='workflowproto.DetectionInfo.tags', index=3, + name='tags', full_name='mediforproto.DetectionInfo.tags', index=4, number=3, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='user_tags', full_name='workflowproto.DetectionInfo.user_tags', index=4, + name='user_tags', full_name='mediforproto.DetectionInfo.user_tags', index=5, number=6, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='meta', full_name='workflowproto.DetectionInfo.meta', index=5, + name='meta', full_name='mediforproto.DetectionInfo.meta', index=6, number=7, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='has_fused', full_name='workflowproto.DetectionInfo.has_fused', index=6, + name='has_fused', full_name='mediforproto.DetectionInfo.has_fused', index=7, number=4, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='fused_score', full_name='workflowproto.DetectionInfo.fused_score', index=7, + name='fused_score', full_name='mediforproto.DetectionInfo.fused_score', index=8, number=5, type=1, cpp_type=5, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='analytics_total', full_name='workflowproto.DetectionInfo.analytics_total', index=8, + name='analytics_total', full_name='mediforproto.DetectionInfo.analytics_total', index=9, number=9, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='analytics_finished', full_name='workflowproto.DetectionInfo.analytics_finished', index=9, + name='analytics_finished', full_name='mediforproto.DetectionInfo.analytics_finished', index=10, number=10, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, @@ -684,27 +716,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=846, - serialized_end=1390, + serialized_start=839, + serialized_end=1425, ) _DETECTIONINFOREQUEST = _descriptor.Descriptor( name='DetectionInfoRequest', - full_name='workflowproto.DetectionInfoRequest', + full_name='mediforproto.DetectionInfoRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='id', full_name='workflowproto.DetectionInfoRequest.id', index=0, + name='id', full_name='mediforproto.DetectionInfoRequest.id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='want_fused', full_name='workflowproto.DetectionInfoRequest.want_fused', index=1, + name='want_fused', full_name='mediforproto.DetectionInfoRequest.want_fused', index=1, number=2, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, @@ -722,27 +754,65 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1392, - serialized_end=1446, + serialized_start=1427, + serialized_end=1481, +) + + +_DATERANGE = _descriptor.Descriptor( + name='DateRange', + full_name='mediforproto.DateRange', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='start_seconds_utc', full_name='mediforproto.DateRange.start_seconds_utc', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='end_seconds_utc', full_name='mediforproto.DateRange.end_seconds_utc', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1483, + serialized_end=1546, ) _DETECTIONLISTREQUEST_TAGSENTRY = _descriptor.Descriptor( name='TagsEntry', - full_name='workflowproto.DetectionListRequest.TagsEntry', + full_name='mediforproto.DetectionListRequest.TagsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.DetectionListRequest.TagsEntry.key', index=0, + name='key', full_name='mediforproto.DetectionListRequest.TagsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.DetectionListRequest.TagsEntry.value', index=1, + name='value', full_name='mediforproto.DetectionListRequest.TagsEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -760,75 +830,96 @@ extension_ranges=[], oneofs=[ ], - serialized_start=521, - serialized_end=564, + serialized_start=516, + serialized_end=559, ) _DETECTIONLISTREQUEST = _descriptor.Descriptor( name='DetectionListRequest', - full_name='workflowproto.DetectionListRequest', + full_name='mediforproto.DetectionListRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='tags', full_name='workflowproto.DetectionListRequest.tags', index=0, + name='verbosity', full_name='mediforproto.DetectionListRequest.verbosity', index=0, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tags', full_name='mediforproto.DetectionListRequest.tags', index=1, number=1, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='detection_ids', full_name='workflowproto.DetectionListRequest.detection_ids', index=1, + name='meta_query', full_name='mediforproto.DetectionListRequest.meta_query', index=2, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='date_range', full_name='mediforproto.DetectionListRequest.date_range', index=3, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='detection_ids', full_name='mediforproto.DetectionListRequest.detection_ids', index=4, number=7, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='want_fused', full_name='workflowproto.DetectionListRequest.want_fused', index=2, + name='want_fused', full_name='mediforproto.DetectionListRequest.want_fused', index=5, number=4, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='order_by', full_name='workflowproto.DetectionListRequest.order_by', index=3, + name='order_by', full_name='mediforproto.DetectionListRequest.order_by', index=6, number=5, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='fuser_id', full_name='workflowproto.DetectionListRequest.fuser_id', index=4, + name='fuser_id', full_name='mediforproto.DetectionListRequest.fuser_id', index=7, number=6, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='fusion_threshold_type', full_name='workflowproto.DetectionListRequest.fusion_threshold_type', index=5, + name='fusion_threshold_type', full_name='mediforproto.DetectionListRequest.fusion_threshold_type', index=8, number=8, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='fusion_threshold_value', full_name='workflowproto.DetectionListRequest.fusion_threshold_value', index=6, + name='fusion_threshold_value', full_name='mediforproto.DetectionListRequest.fusion_threshold_value', index=9, number=9, type=2, cpp_type=6, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='page_size', full_name='workflowproto.DetectionListRequest.page_size', index=7, + name='page_size', full_name='mediforproto.DetectionListRequest.page_size', index=10, number=2, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='page_token', full_name='workflowproto.DetectionListRequest.page_token', index=8, + name='page_token', full_name='mediforproto.DetectionListRequest.page_token', index=11, number=3, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -846,34 +937,34 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1449, - serialized_end=1818, + serialized_start=1549, + serialized_end=2037, ) _DETECTIONLIST = _descriptor.Descriptor( name='DetectionList', - full_name='workflowproto.DetectionList', + full_name='mediforproto.DetectionList', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='detections', full_name='workflowproto.DetectionList.detections', index=0, + name='detections', full_name='mediforproto.DetectionList.detections', index=0, number=1, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='total', full_name='workflowproto.DetectionList.total', index=1, + name='total', full_name='mediforproto.DetectionList.total', index=1, number=3, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='page_token', full_name='workflowproto.DetectionList.page_token', index=2, + name='page_token', full_name='mediforproto.DetectionList.page_token', index=2, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -891,27 +982,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1820, - serialized_end=1920, + serialized_start=2039, + serialized_end=2138, ) _FUSIONREQUEST_TAGSENTRY = _descriptor.Descriptor( name='TagsEntry', - full_name='workflowproto.FusionRequest.TagsEntry', + full_name='mediforproto.FusionRequest.TagsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.FusionRequest.TagsEntry.key', index=0, + name='key', full_name='mediforproto.FusionRequest.TagsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.FusionRequest.TagsEntry.value', index=1, + name='value', full_name='mediforproto.FusionRequest.TagsEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -929,54 +1020,54 @@ extension_ranges=[], oneofs=[ ], - serialized_start=521, - serialized_end=564, + serialized_start=516, + serialized_end=559, ) _FUSIONREQUEST = _descriptor.Descriptor( name='FusionRequest', - full_name='workflowproto.FusionRequest', + full_name='mediforproto.FusionRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='id', full_name='workflowproto.FusionRequest.id', index=0, + name='id', full_name='mediforproto.FusionRequest.id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='request', full_name='workflowproto.FusionRequest.request', index=1, + name='request', full_name='mediforproto.FusionRequest.request', index=1, number=2, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='fuser_id', full_name='workflowproto.FusionRequest.fuser_id', index=2, + name='fuser_id', full_name='mediforproto.FusionRequest.fuser_id', index=2, number=4, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tags', full_name='workflowproto.FusionRequest.tags', index=3, + name='tags', full_name='mediforproto.FusionRequest.tags', index=3, number=3, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='detection_id', full_name='workflowproto.FusionRequest.detection_id', index=4, + name='detection_id', full_name='mediforproto.FusionRequest.detection_id', index=4, number=5, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='detection_id_out_dir', full_name='workflowproto.FusionRequest.detection_id_out_dir', index=5, + name='detection_id_out_dir', full_name='mediforproto.FusionRequest.detection_id_out_dir', index=5, number=6, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -994,41 +1085,41 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1923, - serialized_end=2158, + serialized_start=2141, + serialized_end=2375, ) _FUSERFUSIONINFO = _descriptor.Descriptor( name='FuserFusionInfo', - full_name='workflowproto.FuserFusionInfo', + full_name='mediforproto.FuserFusionInfo', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='fuser_id', full_name='workflowproto.FuserFusionInfo.fuser_id', index=0, + name='fuser_id', full_name='mediforproto.FuserFusionInfo.fuser_id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='stage', full_name='workflowproto.FuserFusionInfo.stage', index=1, + name='stage', full_name='mediforproto.FuserFusionInfo.stage', index=1, number=2, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='status', full_name='workflowproto.FuserFusionInfo.status', index=2, + name='status', full_name='mediforproto.FuserFusionInfo.status', index=2, number=3, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='fusion', full_name='workflowproto.FuserFusionInfo.fusion', index=3, + name='fusion', full_name='mediforproto.FuserFusionInfo.fusion', index=3, number=4, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, @@ -1046,27 +1137,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2161, - serialized_end=2328, + serialized_start=2378, + serialized_end=2543, ) _FUSIONINFO_TAGSENTRY = _descriptor.Descriptor( name='TagsEntry', - full_name='workflowproto.FusionInfo.TagsEntry', + full_name='mediforproto.FusionInfo.TagsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.FusionInfo.TagsEntry.key', index=0, + name='key', full_name='mediforproto.FusionInfo.TagsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.FusionInfo.TagsEntry.value', index=1, + name='value', full_name='mediforproto.FusionInfo.TagsEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -1084,47 +1175,47 @@ extension_ranges=[], oneofs=[ ], - serialized_start=521, - serialized_end=564, + serialized_start=516, + serialized_end=559, ) _FUSIONINFO = _descriptor.Descriptor( name='FusionInfo', - full_name='workflowproto.FusionInfo', + full_name='mediforproto.FusionInfo', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='id', full_name='workflowproto.FusionInfo.id', index=0, + name='id', full_name='mediforproto.FusionInfo.id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='fusion_infos', full_name='workflowproto.FusionInfo.fusion_infos', index=1, + name='fusion_infos', full_name='mediforproto.FusionInfo.fusion_infos', index=1, number=2, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tags', full_name='workflowproto.FusionInfo.tags', index=2, + name='tags', full_name='mediforproto.FusionInfo.tags', index=2, number=3, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='has_fused', full_name='workflowproto.FusionInfo.has_fused', index=3, + name='has_fused', full_name='mediforproto.FusionInfo.has_fused', index=3, number=4, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='fused_score', full_name='workflowproto.FusionInfo.fused_score', index=4, + name='fused_score', full_name='mediforproto.FusionInfo.fused_score', index=4, number=5, type=1, cpp_type=5, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, @@ -1142,27 +1233,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2331, - serialized_end=2545, + serialized_start=2546, + serialized_end=2758, ) _FUSEALLIDSREQUEST = _descriptor.Descriptor( name='FuseAllIDsRequest', - full_name='workflowproto.FuseAllIDsRequest', + full_name='mediforproto.FuseAllIDsRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='fuser_id', full_name='workflowproto.FuseAllIDsRequest.fuser_id', index=0, + name='fuser_id', full_name='mediforproto.FuseAllIDsRequest.fuser_id', index=0, number=1, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='out_dir', full_name='workflowproto.FuseAllIDsRequest.out_dir', index=1, + name='out_dir', full_name='mediforproto.FuseAllIDsRequest.out_dir', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -1180,14 +1271,14 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2547, - serialized_end=2601, + serialized_start=2760, + serialized_end=2814, ) _FUSEALLIDSRESPONSE = _descriptor.Descriptor( name='FuseAllIDsResponse', - full_name='workflowproto.FuseAllIDsResponse', + full_name='mediforproto.FuseAllIDsResponse', filename=None, file=DESCRIPTOR, containing_type=None, @@ -1204,27 +1295,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2603, - serialized_end=2623, + serialized_start=2816, + serialized_end=2836, ) _UPDATEDETECTIONTAGSREQUEST_TAGSENTRY = _descriptor.Descriptor( name='TagsEntry', - full_name='workflowproto.UpdateDetectionTagsRequest.TagsEntry', + full_name='mediforproto.UpdateDetectionTagsRequest.TagsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.UpdateDetectionTagsRequest.TagsEntry.key', index=0, + name='key', full_name='mediforproto.UpdateDetectionTagsRequest.TagsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.UpdateDetectionTagsRequest.TagsEntry.value', index=1, + name='value', full_name='mediforproto.UpdateDetectionTagsRequest.TagsEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -1242,40 +1333,40 @@ extension_ranges=[], oneofs=[ ], - serialized_start=521, - serialized_end=564, + serialized_start=516, + serialized_end=559, ) _UPDATEDETECTIONTAGSREQUEST = _descriptor.Descriptor( name='UpdateDetectionTagsRequest', - full_name='workflowproto.UpdateDetectionTagsRequest', + full_name='mediforproto.UpdateDetectionTagsRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='detection_id', full_name='workflowproto.UpdateDetectionTagsRequest.detection_id', index=0, + name='detection_id', full_name='mediforproto.UpdateDetectionTagsRequest.detection_id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='replace', full_name='workflowproto.UpdateDetectionTagsRequest.replace', index=1, + name='replace', full_name='mediforproto.UpdateDetectionTagsRequest.replace', index=1, number=2, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tags', full_name='workflowproto.UpdateDetectionTagsRequest.tags', index=2, + name='tags', full_name='mediforproto.UpdateDetectionTagsRequest.tags', index=2, number=3, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='delete_tags', full_name='workflowproto.UpdateDetectionTagsRequest.delete_tags', index=3, + name='delete_tags', full_name='mediforproto.UpdateDetectionTagsRequest.delete_tags', index=3, number=4, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, @@ -1293,22 +1384,73 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2626, - serialized_end=2826, + serialized_start=2839, + serialized_end=3038, ) +_DETECTIONTAGINFOREQUEST_REQUIRETAGSENTRY = _descriptor.Descriptor( + name='RequireTagsEntry', + full_name='mediforproto.DetectionTagInfoRequest.RequireTagsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.DetectionTagInfoRequest.RequireTagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.DetectionTagInfoRequest.RequireTagsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3169, + serialized_end=3219, +) + _DETECTIONTAGINFOREQUEST = _descriptor.Descriptor( name='DetectionTagInfoRequest', - full_name='workflowproto.DetectionTagInfoRequest', + full_name='mediforproto.DetectionTagInfoRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ + _descriptor.FieldDescriptor( + name='require_tags', full_name='mediforproto.DetectionTagInfoRequest.require_tags', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='skip_prefixes', full_name='mediforproto.DetectionTagInfoRequest.skip_prefixes', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], - nested_types=[], + nested_types=[_DETECTIONTAGINFOREQUEST_REQUIRETAGSENTRY, ], enum_types=[ ], serialized_options=None, @@ -1317,27 +1459,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2828, - serialized_end=2853, + serialized_start=3041, + serialized_end=3219, ) _DETECTIONTAGINFO_TAGCOUNTSENTRY = _descriptor.Descriptor( name='TagCountsEntry', - full_name='workflowproto.DetectionTagInfo.TagCountsEntry', + full_name='mediforproto.DetectionTagInfo.TagCountsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.DetectionTagInfo.TagCountsEntry.key', index=0, + name='key', full_name='mediforproto.DetectionTagInfo.TagCountsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.DetectionTagInfo.TagCountsEntry.value', index=1, + name='value', full_name='mediforproto.DetectionTagInfo.TagCountsEntry.value', index=1, number=2, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, @@ -1355,26 +1497,26 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3021, - serialized_end=3069, + serialized_start=3385, + serialized_end=3433, ) _DETECTIONTAGINFO_USERTAGCOUNTSENTRY = _descriptor.Descriptor( name='UserTagCountsEntry', - full_name='workflowproto.DetectionTagInfo.UserTagCountsEntry', + full_name='mediforproto.DetectionTagInfo.UserTagCountsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.DetectionTagInfo.UserTagCountsEntry.key', index=0, + name='key', full_name='mediforproto.DetectionTagInfo.UserTagCountsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.DetectionTagInfo.UserTagCountsEntry.value', index=1, + name='value', full_name='mediforproto.DetectionTagInfo.UserTagCountsEntry.value', index=1, number=2, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, @@ -1392,26 +1534,26 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3071, - serialized_end=3123, + serialized_start=3435, + serialized_end=3487, ) _DETECTIONTAGINFO = _descriptor.Descriptor( name='DetectionTagInfo', - full_name='workflowproto.DetectionTagInfo', + full_name='mediforproto.DetectionTagInfo', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='tag_counts', full_name='workflowproto.DetectionTagInfo.tag_counts', index=0, + name='tag_counts', full_name='mediforproto.DetectionTagInfo.tag_counts', index=0, number=1, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='user_tag_counts', full_name='workflowproto.DetectionTagInfo.user_tag_counts', index=1, + name='user_tag_counts', full_name='mediforproto.DetectionTagInfo.user_tag_counts', index=1, number=2, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, @@ -1429,20 +1571,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2856, - serialized_end=3123, + serialized_start=3222, + serialized_end=3487, ) _DELETEDETECTIONREQUEST = _descriptor.Descriptor( name='DeleteDetectionRequest', - full_name='workflowproto.DeleteDetectionRequest', + full_name='mediforproto.DeleteDetectionRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='detection_id', full_name='workflowproto.DeleteDetectionRequest.detection_id', index=0, + name='detection_id', full_name='mediforproto.DeleteDetectionRequest.detection_id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -1460,27 +1602,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3125, - serialized_end=3171, + serialized_start=3489, + serialized_end=3535, ) _ANALYTICMETA_USERFIELDSENTRY = _descriptor.Descriptor( name='UserFieldsEntry', - full_name='workflowproto.AnalyticMeta.UserFieldsEntry', + full_name='mediforproto.AnalyticMeta.UserFieldsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='workflowproto.AnalyticMeta.UserFieldsEntry.key', index=0, + name='key', full_name='mediforproto.AnalyticMeta.UserFieldsEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='workflowproto.AnalyticMeta.UserFieldsEntry.value', index=1, + name='value', full_name='mediforproto.AnalyticMeta.UserFieldsEntry.value', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -1498,75 +1640,75 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3400, - serialized_end=3449, + serialized_start=3762, + serialized_end=3811, ) _ANALYTICMETA = _descriptor.Descriptor( name='AnalyticMeta', - full_name='workflowproto.AnalyticMeta', + full_name='mediforproto.AnalyticMeta', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='id', full_name='workflowproto.AnalyticMeta.id', index=0, + name='id', full_name='mediforproto.AnalyticMeta.id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='version', full_name='workflowproto.AnalyticMeta.version', index=1, + name='version', full_name='mediforproto.AnalyticMeta.version', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='cpu', full_name='workflowproto.AnalyticMeta.cpu', index=2, + name='cpu', full_name='mediforproto.AnalyticMeta.cpu', index=2, number=3, type=1, cpp_type=5, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='ram', full_name='workflowproto.AnalyticMeta.ram', index=3, + name='ram', full_name='mediforproto.AnalyticMeta.ram', index=3, number=4, type=1, cpp_type=5, label=1, has_default_value=False, default_value=float(0), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='gpu', full_name='workflowproto.AnalyticMeta.gpu', index=4, + name='gpu', full_name='mediforproto.AnalyticMeta.gpu', index=4, number=5, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='media', full_name='workflowproto.AnalyticMeta.media', index=5, + name='media', full_name='mediforproto.AnalyticMeta.media', index=5, number=6, type=14, cpp_type=8, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='description', full_name='workflowproto.AnalyticMeta.description', index=6, + name='description', full_name='mediforproto.AnalyticMeta.description', index=6, number=7, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='name', full_name='workflowproto.AnalyticMeta.name', index=7, + name='name', full_name='mediforproto.AnalyticMeta.name', index=7, number=8, type=9, cpp_type=9, label=1, has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='user_fields', full_name='workflowproto.AnalyticMeta.user_fields', index=8, + name='user_fields', full_name='mediforproto.AnalyticMeta.user_fields', index=8, number=9, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, @@ -1584,20 +1726,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3174, - serialized_end=3449, + serialized_start=3538, + serialized_end=3811, ) _ANALYTICLIST = _descriptor.Descriptor( name='AnalyticList', - full_name='workflowproto.AnalyticList', + full_name='mediforproto.AnalyticList', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='analytics', full_name='workflowproto.AnalyticList.analytics', index=0, + name='analytics', full_name='mediforproto.AnalyticList.analytics', index=0, number=1, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, @@ -1615,145 +1757,1143 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3451, - serialized_end=3513, + serialized_start=3813, + serialized_end=3874, ) -_EMPTY = _descriptor.Descriptor( - name='Empty', - full_name='workflowproto.Empty', +_LISTDETECTIONSREQUEST_TAGSENTRY = _descriptor.Descriptor( + name='TagsEntry', + full_name='mediforproto.ListDetectionsRequest.TagsEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.ListDetectionsRequest.TagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.ListDetectionsRequest.TagsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[], enum_types=[ ], - serialized_options=None, + serialized_options=_b('8\001'), is_extendable=False, syntax='proto3', extension_ranges=[], oneofs=[ ], - serialized_start=3515, - serialized_end=3522, + serialized_start=516, + serialized_end=559, ) -_SORTCOL.fields_by_name['key'].enum_type = _SORTKEY -_DETECTIONREQUEST_TAGSENTRY.containing_type = _DETECTIONREQUEST -_DETECTIONREQUEST_USERTAGSENTRY.containing_type = _DETECTIONREQUEST -_DETECTIONREQUEST_METAENTRY.containing_type = _DETECTIONREQUEST -_DETECTIONREQUEST.fields_by_name['request'].message_type = medifor_dot_v1_dot_analytic__pb2._DETECTION -_DETECTIONREQUEST.fields_by_name['tags'].message_type = _DETECTIONREQUEST_TAGSENTRY -_DETECTIONREQUEST.fields_by_name['user_tags'].message_type = _DETECTIONREQUEST_USERTAGSENTRY -_DETECTIONREQUEST.fields_by_name['meta'].message_type = _DETECTIONREQUEST_METAENTRY -_ANALYTICDETECTIONINFO.fields_by_name['stage'].enum_type = _DETECTIONSTAGE -_ANALYTICDETECTIONINFO.fields_by_name['status'].enum_type = _DETECTIONSTATUS -_ANALYTICDETECTIONINFO.fields_by_name['detection'].message_type = medifor_dot_v1_dot_analytic__pb2._DETECTION -_DETECTIONINFO_TAGSENTRY.containing_type = _DETECTIONINFO -_DETECTIONINFO_USERTAGSENTRY.containing_type = _DETECTIONINFO -_DETECTIONINFO_METAENTRY.containing_type = _DETECTIONINFO -_DETECTIONINFO.fields_by_name['analytic_info'].message_type = _ANALYTICDETECTIONINFO -_DETECTIONINFO.fields_by_name['fusion_info'].message_type = _FUSERFUSIONINFO -_DETECTIONINFO.fields_by_name['tags'].message_type = _DETECTIONINFO_TAGSENTRY -_DETECTIONINFO.fields_by_name['user_tags'].message_type = _DETECTIONINFO_USERTAGSENTRY -_DETECTIONINFO.fields_by_name['meta'].message_type = _DETECTIONINFO_METAENTRY -_DETECTIONLISTREQUEST_TAGSENTRY.containing_type = _DETECTIONLISTREQUEST -_DETECTIONLISTREQUEST.fields_by_name['tags'].message_type = _DETECTIONLISTREQUEST_TAGSENTRY -_DETECTIONLISTREQUEST.fields_by_name['order_by'].message_type = _SORTCOL -_DETECTIONLISTREQUEST.fields_by_name['fusion_threshold_type'].enum_type = _FUSIONTHRESHOLDTYPE -_DETECTIONLIST.fields_by_name['detections'].message_type = _DETECTIONINFO -_FUSIONREQUEST_TAGSENTRY.containing_type = _FUSIONREQUEST -_FUSIONREQUEST.fields_by_name['request'].message_type = medifor_dot_v1_dot_fusion__pb2._FUSION -_FUSIONREQUEST.fields_by_name['tags'].message_type = _FUSIONREQUEST_TAGSENTRY -_FUSERFUSIONINFO.fields_by_name['stage'].enum_type = _DETECTIONSTAGE -_FUSERFUSIONINFO.fields_by_name['status'].enum_type = _DETECTIONSTATUS -_FUSERFUSIONINFO.fields_by_name['fusion'].message_type = medifor_dot_v1_dot_fusion__pb2._FUSION -_FUSIONINFO_TAGSENTRY.containing_type = _FUSIONINFO -_FUSIONINFO.fields_by_name['fusion_infos'].message_type = _FUSERFUSIONINFO -_FUSIONINFO.fields_by_name['tags'].message_type = _FUSIONINFO_TAGSENTRY -_UPDATEDETECTIONTAGSREQUEST_TAGSENTRY.containing_type = _UPDATEDETECTIONTAGSREQUEST -_UPDATEDETECTIONTAGSREQUEST.fields_by_name['tags'].message_type = _UPDATEDETECTIONTAGSREQUEST_TAGSENTRY -_DETECTIONTAGINFO_TAGCOUNTSENTRY.containing_type = _DETECTIONTAGINFO -_DETECTIONTAGINFO_USERTAGCOUNTSENTRY.containing_type = _DETECTIONTAGINFO -_DETECTIONTAGINFO.fields_by_name['tag_counts'].message_type = _DETECTIONTAGINFO_TAGCOUNTSENTRY -_DETECTIONTAGINFO.fields_by_name['user_tag_counts'].message_type = _DETECTIONTAGINFO_USERTAGCOUNTSENTRY -_ANALYTICMETA_USERFIELDSENTRY.containing_type = _ANALYTICMETA -_ANALYTICMETA.fields_by_name['media'].enum_type = _MEDIATYPE -_ANALYTICMETA.fields_by_name['user_fields'].message_type = _ANALYTICMETA_USERFIELDSENTRY -_ANALYTICLIST.fields_by_name['analytics'].message_type = _ANALYTICMETA -DESCRIPTOR.message_types_by_name['SortCol'] = _SORTCOL -DESCRIPTOR.message_types_by_name['DetectionRequest'] = _DETECTIONREQUEST -DESCRIPTOR.message_types_by_name['AnalyticDetectionInfo'] = _ANALYTICDETECTIONINFO -DESCRIPTOR.message_types_by_name['DetectionInfo'] = _DETECTIONINFO -DESCRIPTOR.message_types_by_name['DetectionInfoRequest'] = _DETECTIONINFOREQUEST -DESCRIPTOR.message_types_by_name['DetectionListRequest'] = _DETECTIONLISTREQUEST -DESCRIPTOR.message_types_by_name['DetectionList'] = _DETECTIONLIST -DESCRIPTOR.message_types_by_name['FusionRequest'] = _FUSIONREQUEST -DESCRIPTOR.message_types_by_name['FuserFusionInfo'] = _FUSERFUSIONINFO -DESCRIPTOR.message_types_by_name['FusionInfo'] = _FUSIONINFO -DESCRIPTOR.message_types_by_name['FuseAllIDsRequest'] = _FUSEALLIDSREQUEST -DESCRIPTOR.message_types_by_name['FuseAllIDsResponse'] = _FUSEALLIDSRESPONSE -DESCRIPTOR.message_types_by_name['UpdateDetectionTagsRequest'] = _UPDATEDETECTIONTAGSREQUEST -DESCRIPTOR.message_types_by_name['DetectionTagInfoRequest'] = _DETECTIONTAGINFOREQUEST -DESCRIPTOR.message_types_by_name['DetectionTagInfo'] = _DETECTIONTAGINFO -DESCRIPTOR.message_types_by_name['DeleteDetectionRequest'] = _DELETEDETECTIONREQUEST -DESCRIPTOR.message_types_by_name['AnalyticMeta'] = _ANALYTICMETA -DESCRIPTOR.message_types_by_name['AnalyticList'] = _ANALYTICLIST -DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY -DESCRIPTOR.enum_types_by_name['DetectionStage'] = _DETECTIONSTAGE -DESCRIPTOR.enum_types_by_name['DetectionStatus'] = _DETECTIONSTATUS -DESCRIPTOR.enum_types_by_name['SortKey'] = _SORTKEY -DESCRIPTOR.enum_types_by_name['FusionThresholdType'] = _FUSIONTHRESHOLDTYPE -DESCRIPTOR.enum_types_by_name['MediaType'] = _MEDIATYPE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -SortCol = _reflection.GeneratedProtocolMessageType('SortCol', (_message.Message,), dict( - DESCRIPTOR = _SORTCOL, - __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.SortCol) - )) -_sym_db.RegisterMessage(SortCol) - -DetectionRequest = _reflection.GeneratedProtocolMessageType('DetectionRequest', (_message.Message,), dict( - - TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( - DESCRIPTOR = _DETECTIONREQUEST_TAGSENTRY, - __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionRequest.TagsEntry) - )) - , - - UserTagsEntry = _reflection.GeneratedProtocolMessageType('UserTagsEntry', (_message.Message,), dict( - DESCRIPTOR = _DETECTIONREQUEST_USERTAGSENTRY, - __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionRequest.UserTagsEntry) - )) - , - - MetaEntry = _reflection.GeneratedProtocolMessageType('MetaEntry', (_message.Message,), dict( - DESCRIPTOR = _DETECTIONREQUEST_METAENTRY, - __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionRequest.MetaEntry) - )) - , - DESCRIPTOR = _DETECTIONREQUEST, - __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionRequest) - )) -_sym_db.RegisterMessage(DetectionRequest) -_sym_db.RegisterMessage(DetectionRequest.TagsEntry) -_sym_db.RegisterMessage(DetectionRequest.UserTagsEntry) -_sym_db.RegisterMessage(DetectionRequest.MetaEntry) +_LISTDETECTIONSREQUEST_EXCLUDETAGSENTRY = _descriptor.Descriptor( + name='ExcludeTagsEntry', + full_name='mediforproto.ListDetectionsRequest.ExcludeTagsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.ListDetectionsRequest.ExcludeTagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.ListDetectionsRequest.ExcludeTagsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4320, + serialized_end=4370, +) -AnalyticDetectionInfo = _reflection.GeneratedProtocolMessageType('AnalyticDetectionInfo', (_message.Message,), dict( - DESCRIPTOR = _ANALYTICDETECTIONINFO, - __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.AnalyticDetectionInfo) +_LISTDETECTIONSREQUEST = _descriptor.Descriptor( + name='ListDetectionsRequest', + full_name='mediforproto.ListDetectionsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='score_filter', full_name='mediforproto.ListDetectionsRequest.score_filter', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='meta_filters', full_name='mediforproto.ListDetectionsRequest.meta_filters', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tags', full_name='mediforproto.ListDetectionsRequest.tags', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='exclude_tags', full_name='mediforproto.ListDetectionsRequest.exclude_tags', index=3, + number=9, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='meta_query', full_name='mediforproto.ListDetectionsRequest.meta_query', index=4, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='order_by', full_name='mediforproto.ListDetectionsRequest.order_by', index=5, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='analytic_id', full_name='mediforproto.ListDetectionsRequest.analytic_id', index=6, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fuser_id', full_name='mediforproto.ListDetectionsRequest.fuser_id', index=7, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='page_size', full_name='mediforproto.ListDetectionsRequest.page_size', index=8, + number=7, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='page_token', full_name='mediforproto.ListDetectionsRequest.page_token', index=9, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_LISTDETECTIONSREQUEST_TAGSENTRY, _LISTDETECTIONSREQUEST_EXCLUDETAGSENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3877, + serialized_end=4370, +) + + +_SCOREFILTER = _descriptor.Descriptor( + name='ScoreFilter', + full_name='mediforproto.ScoreFilter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='has_min', full_name='mediforproto.ScoreFilter.has_min', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min', full_name='mediforproto.ScoreFilter.min', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='has_max', full_name='mediforproto.ScoreFilter.has_max', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max', full_name='mediforproto.ScoreFilter.max', index=3, + number=4, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4372, + serialized_end=4445, +) + + +_METAFILTER = _descriptor.Descriptor( + name='MetaFilter', + full_name='mediforproto.MetaFilter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='meta_key', full_name='mediforproto.MetaFilter.meta_key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='has_min', full_name='mediforproto.MetaFilter.has_min', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min', full_name='mediforproto.MetaFilter.min', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='has_max', full_name='mediforproto.MetaFilter.has_max', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max', full_name='mediforproto.MetaFilter.max', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4447, + serialized_end=4537, +) + + +_UPDATEDETECTIONMETADATAREQUEST_METADATAENTRY = _descriptor.Descriptor( + name='MetadataEntry', + full_name='mediforproto.UpdateDetectionMetadataRequest.MetadataEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.UpdateDetectionMetadataRequest.MetadataEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.UpdateDetectionMetadataRequest.MetadataEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4674, + serialized_end=4721, +) + +_UPDATEDETECTIONMETADATAREQUEST = _descriptor.Descriptor( + name='UpdateDetectionMetadataRequest', + full_name='mediforproto.UpdateDetectionMetadataRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='detection_id', full_name='mediforproto.UpdateDetectionMetadataRequest.detection_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='metadata', full_name='mediforproto.UpdateDetectionMetadataRequest.metadata', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_UPDATEDETECTIONMETADATAREQUEST_METADATAENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4540, + serialized_end=4721, +) + + +_GETANALYTICSTATSREQUEST = _descriptor.Descriptor( + name='GetAnalyticStatsRequest', + full_name='mediforproto.GetAnalyticStatsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='analytic_ids', full_name='mediforproto.GetAnalyticStatsRequest.analytic_ids', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fuser_ids', full_name='mediforproto.GetAnalyticStatsRequest.fuser_ids', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4723, + serialized_end=4789, +) + + +_GETANALYTICSTATSRESPONSE = _descriptor.Descriptor( + name='GetAnalyticStatsResponse', + full_name='mediforproto.GetAnalyticStatsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='analytic_stats', full_name='mediforproto.GetAnalyticStatsResponse.analytic_stats', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fuser_stats', full_name='mediforproto.GetAnalyticStatsResponse.fuser_stats', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4792, + serialized_end=4921, +) + + +_ANALYTICSTATS = _descriptor.Descriptor( + name='AnalyticStats', + full_name='mediforproto.AnalyticStats', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='mediforproto.AnalyticStats.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pending', full_name='mediforproto.AnalyticStats.pending', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='running', full_name='mediforproto.AnalyticStats.running', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='succeeded', full_name='mediforproto.AnalyticStats.succeeded', index=3, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='opted_out', full_name='mediforproto.AnalyticStats.opted_out', index=4, + number=6, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='failed', full_name='mediforproto.AnalyticStats.failed', index=5, + number=5, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4923, + serialized_end=5038, +) + + +_GETHISTOGRAMREQUEST_TAGSENTRY = _descriptor.Descriptor( + name='TagsEntry', + full_name='mediforproto.GetHistogramRequest.TagsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.GetHistogramRequest.TagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.GetHistogramRequest.TagsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=516, + serialized_end=559, +) + +_GETHISTOGRAMREQUEST_EXCLUDETAGSENTRY = _descriptor.Descriptor( + name='ExcludeTagsEntry', + full_name='mediforproto.GetHistogramRequest.ExcludeTagsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.GetHistogramRequest.ExcludeTagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.GetHistogramRequest.ExcludeTagsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4320, + serialized_end=4370, +) + +_GETHISTOGRAMREQUEST = _descriptor.Descriptor( + name='GetHistogramRequest', + full_name='mediforproto.GetHistogramRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='analytic_id', full_name='mediforproto.GetHistogramRequest.analytic_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fuser_id', full_name='mediforproto.GetHistogramRequest.fuser_id', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tags', full_name='mediforproto.GetHistogramRequest.tags', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='exclude_tags', full_name='mediforproto.GetHistogramRequest.exclude_tags', index=3, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='num_buckets', full_name='mediforproto.GetHistogramRequest.num_buckets', index=4, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_GETHISTOGRAMREQUEST_TAGSENTRY, _GETHISTOGRAMREQUEST_EXCLUDETAGSENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5041, + serialized_end=5352, +) + + +_GETHISTOGRAMRESPONSE = _descriptor.Descriptor( + name='GetHistogramResponse', + full_name='mediforproto.GetHistogramResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='buckets', full_name='mediforproto.GetHistogramResponse.buckets', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5354, + serialized_end=5415, +) + + +_BUCKET = _descriptor.Descriptor( + name='Bucket', + full_name='mediforproto.Bucket', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='min', full_name='mediforproto.Bucket.min', index=0, + number=1, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max', full_name='mediforproto.Bucket.max', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='frequency', full_name='mediforproto.Bucket.frequency', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5417, + serialized_end=5470, +) + + +_DELETEFAILEDANALYTICSREQUEST = _descriptor.Descriptor( + name='DeleteFailedAnalyticsRequest', + full_name='mediforproto.DeleteFailedAnalyticsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5472, + serialized_end=5502, +) + + +_DELETEFAILEDANALYTICSRESPONSE_DELETEDANALYTICSENTRY = _descriptor.Descriptor( + name='DeletedAnalyticsEntry', + full_name='mediforproto.DeleteFailedAnalyticsResponse.DeletedAnalyticsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.DeleteFailedAnalyticsResponse.DeletedAnalyticsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.DeleteFailedAnalyticsResponse.DeletedAnalyticsEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5632, + serialized_end=5719, +) + +_DELETEFAILEDANALYTICSRESPONSE = _descriptor.Descriptor( + name='DeleteFailedAnalyticsResponse', + full_name='mediforproto.DeleteFailedAnalyticsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='deleted_analytics', full_name='mediforproto.DeleteFailedAnalyticsResponse.deleted_analytics', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_DELETEFAILEDANALYTICSRESPONSE_DELETEDANALYTICSENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5505, + serialized_end=5719, +) + + +_DELETEDANALYTICS = _descriptor.Descriptor( + name='DeletedAnalytics', + full_name='mediforproto.DeletedAnalytics', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='deleted_analytic_ids', full_name='mediforproto.DeletedAnalytics.deleted_analytic_ids', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5721, + serialized_end=5769, +) + + +_GETANALYTICSWITHSCORESREQUEST_TAGSENTRY = _descriptor.Descriptor( + name='TagsEntry', + full_name='mediforproto.GetAnalyticsWithScoresRequest.TagsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.GetAnalyticsWithScoresRequest.TagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.GetAnalyticsWithScoresRequest.TagsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=516, + serialized_end=559, +) + +_GETANALYTICSWITHSCORESREQUEST_EXCLUDETAGSENTRY = _descriptor.Descriptor( + name='ExcludeTagsEntry', + full_name='mediforproto.GetAnalyticsWithScoresRequest.ExcludeTagsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.GetAnalyticsWithScoresRequest.ExcludeTagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.GetAnalyticsWithScoresRequest.ExcludeTagsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4320, + serialized_end=4370, +) + +_GETANALYTICSWITHSCORESREQUEST = _descriptor.Descriptor( + name='GetAnalyticsWithScoresRequest', + full_name='mediforproto.GetAnalyticsWithScoresRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='tags', full_name='mediforproto.GetAnalyticsWithScoresRequest.tags', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='exclude_tags', full_name='mediforproto.GetAnalyticsWithScoresRequest.exclude_tags', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_GETANALYTICSWITHSCORESREQUEST_TAGSENTRY, _GETANALYTICSWITHSCORESREQUEST_EXCLUDETAGSENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5772, + serialized_end=6053, +) + + +_GETANALYTICSWITHSCORESRESPONSE = _descriptor.Descriptor( + name='GetAnalyticsWithScoresResponse', + full_name='mediforproto.GetAnalyticsWithScoresResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='analytic_ids', full_name='mediforproto.GetAnalyticsWithScoresResponse.analytic_ids', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fuser_ids', full_name='mediforproto.GetAnalyticsWithScoresResponse.fuser_ids', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6055, + serialized_end=6128, +) + +_SORTCOL.fields_by_name['key'].enum_type = _SORTKEY +_DETECTIONREQUEST_TAGSENTRY.containing_type = _DETECTIONREQUEST +_DETECTIONREQUEST_USERTAGSENTRY.containing_type = _DETECTIONREQUEST +_DETECTIONREQUEST_METAENTRY.containing_type = _DETECTIONREQUEST +_DETECTIONREQUEST.fields_by_name['request'].message_type = medifor_dot_v1_dot_analytic__pb2._DETECTION +_DETECTIONREQUEST.fields_by_name['tags'].message_type = _DETECTIONREQUEST_TAGSENTRY +_DETECTIONREQUEST.fields_by_name['user_tags'].message_type = _DETECTIONREQUEST_USERTAGSENTRY +_DETECTIONREQUEST.fields_by_name['meta'].message_type = _DETECTIONREQUEST_METAENTRY +_ANALYTICDETECTIONINFO.fields_by_name['stage'].enum_type = _DETECTIONSTAGE +_ANALYTICDETECTIONINFO.fields_by_name['status'].enum_type = _DETECTIONSTATUS +_ANALYTICDETECTIONINFO.fields_by_name['detection'].message_type = medifor_dot_v1_dot_analytic__pb2._DETECTION +_DETECTIONINFO_TAGSENTRY.containing_type = _DETECTIONINFO +_DETECTIONINFO_USERTAGSENTRY.containing_type = _DETECTIONINFO +_DETECTIONINFO_METAENTRY.containing_type = _DETECTIONINFO +_DETECTIONINFO.fields_by_name['req_resources'].message_type = medifor_dot_v1_dot_analytic__pb2._RESOURCE +_DETECTIONINFO.fields_by_name['analytic_info'].message_type = _ANALYTICDETECTIONINFO +_DETECTIONINFO.fields_by_name['fusion_info'].message_type = _FUSERFUSIONINFO +_DETECTIONINFO.fields_by_name['tags'].message_type = _DETECTIONINFO_TAGSENTRY +_DETECTIONINFO.fields_by_name['user_tags'].message_type = _DETECTIONINFO_USERTAGSENTRY +_DETECTIONINFO.fields_by_name['meta'].message_type = _DETECTIONINFO_METAENTRY +_DETECTIONLISTREQUEST_TAGSENTRY.containing_type = _DETECTIONLISTREQUEST +_DETECTIONLISTREQUEST.fields_by_name['verbosity'].enum_type = _DETECTIONLISTVERBOSITY +_DETECTIONLISTREQUEST.fields_by_name['tags'].message_type = _DETECTIONLISTREQUEST_TAGSENTRY +_DETECTIONLISTREQUEST.fields_by_name['date_range'].message_type = _DATERANGE +_DETECTIONLISTREQUEST.fields_by_name['order_by'].message_type = _SORTCOL +_DETECTIONLISTREQUEST.fields_by_name['fusion_threshold_type'].enum_type = _FUSIONTHRESHOLDTYPE +_DETECTIONLIST.fields_by_name['detections'].message_type = _DETECTIONINFO +_FUSIONREQUEST_TAGSENTRY.containing_type = _FUSIONREQUEST +_FUSIONREQUEST.fields_by_name['request'].message_type = medifor_dot_v1_dot_fusion__pb2._FUSION +_FUSIONREQUEST.fields_by_name['tags'].message_type = _FUSIONREQUEST_TAGSENTRY +_FUSERFUSIONINFO.fields_by_name['stage'].enum_type = _DETECTIONSTAGE +_FUSERFUSIONINFO.fields_by_name['status'].enum_type = _DETECTIONSTATUS +_FUSERFUSIONINFO.fields_by_name['fusion'].message_type = medifor_dot_v1_dot_fusion__pb2._FUSION +_FUSIONINFO_TAGSENTRY.containing_type = _FUSIONINFO +_FUSIONINFO.fields_by_name['fusion_infos'].message_type = _FUSERFUSIONINFO +_FUSIONINFO.fields_by_name['tags'].message_type = _FUSIONINFO_TAGSENTRY +_UPDATEDETECTIONTAGSREQUEST_TAGSENTRY.containing_type = _UPDATEDETECTIONTAGSREQUEST +_UPDATEDETECTIONTAGSREQUEST.fields_by_name['tags'].message_type = _UPDATEDETECTIONTAGSREQUEST_TAGSENTRY +_DETECTIONTAGINFOREQUEST_REQUIRETAGSENTRY.containing_type = _DETECTIONTAGINFOREQUEST +_DETECTIONTAGINFOREQUEST.fields_by_name['require_tags'].message_type = _DETECTIONTAGINFOREQUEST_REQUIRETAGSENTRY +_DETECTIONTAGINFO_TAGCOUNTSENTRY.containing_type = _DETECTIONTAGINFO +_DETECTIONTAGINFO_USERTAGCOUNTSENTRY.containing_type = _DETECTIONTAGINFO +_DETECTIONTAGINFO.fields_by_name['tag_counts'].message_type = _DETECTIONTAGINFO_TAGCOUNTSENTRY +_DETECTIONTAGINFO.fields_by_name['user_tag_counts'].message_type = _DETECTIONTAGINFO_USERTAGCOUNTSENTRY +_ANALYTICMETA_USERFIELDSENTRY.containing_type = _ANALYTICMETA +_ANALYTICMETA.fields_by_name['media'].enum_type = _MEDIATYPE +_ANALYTICMETA.fields_by_name['user_fields'].message_type = _ANALYTICMETA_USERFIELDSENTRY +_ANALYTICLIST.fields_by_name['analytics'].message_type = _ANALYTICMETA +_LISTDETECTIONSREQUEST_TAGSENTRY.containing_type = _LISTDETECTIONSREQUEST +_LISTDETECTIONSREQUEST_EXCLUDETAGSENTRY.containing_type = _LISTDETECTIONSREQUEST +_LISTDETECTIONSREQUEST.fields_by_name['score_filter'].message_type = _SCOREFILTER +_LISTDETECTIONSREQUEST.fields_by_name['meta_filters'].message_type = _METAFILTER +_LISTDETECTIONSREQUEST.fields_by_name['tags'].message_type = _LISTDETECTIONSREQUEST_TAGSENTRY +_LISTDETECTIONSREQUEST.fields_by_name['exclude_tags'].message_type = _LISTDETECTIONSREQUEST_EXCLUDETAGSENTRY +_LISTDETECTIONSREQUEST.fields_by_name['order_by'].message_type = _SORTCOL +_UPDATEDETECTIONMETADATAREQUEST_METADATAENTRY.containing_type = _UPDATEDETECTIONMETADATAREQUEST +_UPDATEDETECTIONMETADATAREQUEST.fields_by_name['metadata'].message_type = _UPDATEDETECTIONMETADATAREQUEST_METADATAENTRY +_GETANALYTICSTATSRESPONSE.fields_by_name['analytic_stats'].message_type = _ANALYTICSTATS +_GETANALYTICSTATSRESPONSE.fields_by_name['fuser_stats'].message_type = _ANALYTICSTATS +_GETHISTOGRAMREQUEST_TAGSENTRY.containing_type = _GETHISTOGRAMREQUEST +_GETHISTOGRAMREQUEST_EXCLUDETAGSENTRY.containing_type = _GETHISTOGRAMREQUEST +_GETHISTOGRAMREQUEST.fields_by_name['tags'].message_type = _GETHISTOGRAMREQUEST_TAGSENTRY +_GETHISTOGRAMREQUEST.fields_by_name['exclude_tags'].message_type = _GETHISTOGRAMREQUEST_EXCLUDETAGSENTRY +_GETHISTOGRAMRESPONSE.fields_by_name['buckets'].message_type = _BUCKET +_DELETEFAILEDANALYTICSRESPONSE_DELETEDANALYTICSENTRY.fields_by_name['value'].message_type = _DELETEDANALYTICS +_DELETEFAILEDANALYTICSRESPONSE_DELETEDANALYTICSENTRY.containing_type = _DELETEFAILEDANALYTICSRESPONSE +_DELETEFAILEDANALYTICSRESPONSE.fields_by_name['deleted_analytics'].message_type = _DELETEFAILEDANALYTICSRESPONSE_DELETEDANALYTICSENTRY +_GETANALYTICSWITHSCORESREQUEST_TAGSENTRY.containing_type = _GETANALYTICSWITHSCORESREQUEST +_GETANALYTICSWITHSCORESREQUEST_EXCLUDETAGSENTRY.containing_type = _GETANALYTICSWITHSCORESREQUEST +_GETANALYTICSWITHSCORESREQUEST.fields_by_name['tags'].message_type = _GETANALYTICSWITHSCORESREQUEST_TAGSENTRY +_GETANALYTICSWITHSCORESREQUEST.fields_by_name['exclude_tags'].message_type = _GETANALYTICSWITHSCORESREQUEST_EXCLUDETAGSENTRY +DESCRIPTOR.message_types_by_name['SortCol'] = _SORTCOL +DESCRIPTOR.message_types_by_name['DetectionRequest'] = _DETECTIONREQUEST +DESCRIPTOR.message_types_by_name['AnalyticDetectionInfo'] = _ANALYTICDETECTIONINFO +DESCRIPTOR.message_types_by_name['DetectionInfo'] = _DETECTIONINFO +DESCRIPTOR.message_types_by_name['DetectionInfoRequest'] = _DETECTIONINFOREQUEST +DESCRIPTOR.message_types_by_name['DateRange'] = _DATERANGE +DESCRIPTOR.message_types_by_name['DetectionListRequest'] = _DETECTIONLISTREQUEST +DESCRIPTOR.message_types_by_name['DetectionList'] = _DETECTIONLIST +DESCRIPTOR.message_types_by_name['FusionRequest'] = _FUSIONREQUEST +DESCRIPTOR.message_types_by_name['FuserFusionInfo'] = _FUSERFUSIONINFO +DESCRIPTOR.message_types_by_name['FusionInfo'] = _FUSIONINFO +DESCRIPTOR.message_types_by_name['FuseAllIDsRequest'] = _FUSEALLIDSREQUEST +DESCRIPTOR.message_types_by_name['FuseAllIDsResponse'] = _FUSEALLIDSRESPONSE +DESCRIPTOR.message_types_by_name['UpdateDetectionTagsRequest'] = _UPDATEDETECTIONTAGSREQUEST +DESCRIPTOR.message_types_by_name['DetectionTagInfoRequest'] = _DETECTIONTAGINFOREQUEST +DESCRIPTOR.message_types_by_name['DetectionTagInfo'] = _DETECTIONTAGINFO +DESCRIPTOR.message_types_by_name['DeleteDetectionRequest'] = _DELETEDETECTIONREQUEST +DESCRIPTOR.message_types_by_name['AnalyticMeta'] = _ANALYTICMETA +DESCRIPTOR.message_types_by_name['AnalyticList'] = _ANALYTICLIST +DESCRIPTOR.message_types_by_name['ListDetectionsRequest'] = _LISTDETECTIONSREQUEST +DESCRIPTOR.message_types_by_name['ScoreFilter'] = _SCOREFILTER +DESCRIPTOR.message_types_by_name['MetaFilter'] = _METAFILTER +DESCRIPTOR.message_types_by_name['UpdateDetectionMetadataRequest'] = _UPDATEDETECTIONMETADATAREQUEST +DESCRIPTOR.message_types_by_name['GetAnalyticStatsRequest'] = _GETANALYTICSTATSREQUEST +DESCRIPTOR.message_types_by_name['GetAnalyticStatsResponse'] = _GETANALYTICSTATSRESPONSE +DESCRIPTOR.message_types_by_name['AnalyticStats'] = _ANALYTICSTATS +DESCRIPTOR.message_types_by_name['GetHistogramRequest'] = _GETHISTOGRAMREQUEST +DESCRIPTOR.message_types_by_name['GetHistogramResponse'] = _GETHISTOGRAMRESPONSE +DESCRIPTOR.message_types_by_name['Bucket'] = _BUCKET +DESCRIPTOR.message_types_by_name['DeleteFailedAnalyticsRequest'] = _DELETEFAILEDANALYTICSREQUEST +DESCRIPTOR.message_types_by_name['DeleteFailedAnalyticsResponse'] = _DELETEFAILEDANALYTICSRESPONSE +DESCRIPTOR.message_types_by_name['DeletedAnalytics'] = _DELETEDANALYTICS +DESCRIPTOR.message_types_by_name['GetAnalyticsWithScoresRequest'] = _GETANALYTICSWITHSCORESREQUEST +DESCRIPTOR.message_types_by_name['GetAnalyticsWithScoresResponse'] = _GETANALYTICSWITHSCORESRESPONSE +DESCRIPTOR.enum_types_by_name['DetectionStage'] = _DETECTIONSTAGE +DESCRIPTOR.enum_types_by_name['DetectionStatus'] = _DETECTIONSTATUS +DESCRIPTOR.enum_types_by_name['SortKey'] = _SORTKEY +DESCRIPTOR.enum_types_by_name['FusionThresholdType'] = _FUSIONTHRESHOLDTYPE +DESCRIPTOR.enum_types_by_name['MediaType'] = _MEDIATYPE +DESCRIPTOR.enum_types_by_name['DetectionListVerbosity'] = _DETECTIONLISTVERBOSITY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SortCol = _reflection.GeneratedProtocolMessageType('SortCol', (_message.Message,), dict( + DESCRIPTOR = _SORTCOL, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.SortCol) + )) +_sym_db.RegisterMessage(SortCol) + +DetectionRequest = _reflection.GeneratedProtocolMessageType('DetectionRequest', (_message.Message,), dict( + + TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( + DESCRIPTOR = _DETECTIONREQUEST_TAGSENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DetectionRequest.TagsEntry) + )) + , + + UserTagsEntry = _reflection.GeneratedProtocolMessageType('UserTagsEntry', (_message.Message,), dict( + DESCRIPTOR = _DETECTIONREQUEST_USERTAGSENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DetectionRequest.UserTagsEntry) + )) + , + + MetaEntry = _reflection.GeneratedProtocolMessageType('MetaEntry', (_message.Message,), dict( + DESCRIPTOR = _DETECTIONREQUEST_METAENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DetectionRequest.MetaEntry) + )) + , + DESCRIPTOR = _DETECTIONREQUEST, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DetectionRequest) + )) +_sym_db.RegisterMessage(DetectionRequest) +_sym_db.RegisterMessage(DetectionRequest.TagsEntry) +_sym_db.RegisterMessage(DetectionRequest.UserTagsEntry) +_sym_db.RegisterMessage(DetectionRequest.MetaEntry) + +AnalyticDetectionInfo = _reflection.GeneratedProtocolMessageType('AnalyticDetectionInfo', (_message.Message,), dict( + DESCRIPTOR = _ANALYTICDETECTIONINFO, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.AnalyticDetectionInfo) )) _sym_db.RegisterMessage(AnalyticDetectionInfo) @@ -1762,26 +2902,26 @@ TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( DESCRIPTOR = _DETECTIONINFO_TAGSENTRY, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionInfo.TagsEntry) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionInfo.TagsEntry) )) , UserTagsEntry = _reflection.GeneratedProtocolMessageType('UserTagsEntry', (_message.Message,), dict( DESCRIPTOR = _DETECTIONINFO_USERTAGSENTRY, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionInfo.UserTagsEntry) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionInfo.UserTagsEntry) )) , MetaEntry = _reflection.GeneratedProtocolMessageType('MetaEntry', (_message.Message,), dict( DESCRIPTOR = _DETECTIONINFO_METAENTRY, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionInfo.MetaEntry) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionInfo.MetaEntry) )) , DESCRIPTOR = _DETECTIONINFO, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionInfo) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionInfo) )) _sym_db.RegisterMessage(DetectionInfo) _sym_db.RegisterMessage(DetectionInfo.TagsEntry) @@ -1791,21 +2931,28 @@ DetectionInfoRequest = _reflection.GeneratedProtocolMessageType('DetectionInfoRequest', (_message.Message,), dict( DESCRIPTOR = _DETECTIONINFOREQUEST, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionInfoRequest) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionInfoRequest) )) _sym_db.RegisterMessage(DetectionInfoRequest) +DateRange = _reflection.GeneratedProtocolMessageType('DateRange', (_message.Message,), dict( + DESCRIPTOR = _DATERANGE, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DateRange) + )) +_sym_db.RegisterMessage(DateRange) + DetectionListRequest = _reflection.GeneratedProtocolMessageType('DetectionListRequest', (_message.Message,), dict( TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( DESCRIPTOR = _DETECTIONLISTREQUEST_TAGSENTRY, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionListRequest.TagsEntry) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionListRequest.TagsEntry) )) , DESCRIPTOR = _DETECTIONLISTREQUEST, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionListRequest) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionListRequest) )) _sym_db.RegisterMessage(DetectionListRequest) _sym_db.RegisterMessage(DetectionListRequest.TagsEntry) @@ -1813,7 +2960,7 @@ DetectionList = _reflection.GeneratedProtocolMessageType('DetectionList', (_message.Message,), dict( DESCRIPTOR = _DETECTIONLIST, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionList) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionList) )) _sym_db.RegisterMessage(DetectionList) @@ -1822,12 +2969,12 @@ TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( DESCRIPTOR = _FUSIONREQUEST_TAGSENTRY, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.FusionRequest.TagsEntry) + # @@protoc_insertion_point(class_scope:mediforproto.FusionRequest.TagsEntry) )) , DESCRIPTOR = _FUSIONREQUEST, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.FusionRequest) + # @@protoc_insertion_point(class_scope:mediforproto.FusionRequest) )) _sym_db.RegisterMessage(FusionRequest) _sym_db.RegisterMessage(FusionRequest.TagsEntry) @@ -1835,7 +2982,7 @@ FuserFusionInfo = _reflection.GeneratedProtocolMessageType('FuserFusionInfo', (_message.Message,), dict( DESCRIPTOR = _FUSERFUSIONINFO, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.FuserFusionInfo) + # @@protoc_insertion_point(class_scope:mediforproto.FuserFusionInfo) )) _sym_db.RegisterMessage(FuserFusionInfo) @@ -1844,12 +2991,12 @@ TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( DESCRIPTOR = _FUSIONINFO_TAGSENTRY, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.FusionInfo.TagsEntry) + # @@protoc_insertion_point(class_scope:mediforproto.FusionInfo.TagsEntry) )) , DESCRIPTOR = _FUSIONINFO, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.FusionInfo) + # @@protoc_insertion_point(class_scope:mediforproto.FusionInfo) )) _sym_db.RegisterMessage(FusionInfo) _sym_db.RegisterMessage(FusionInfo.TagsEntry) @@ -1857,14 +3004,14 @@ FuseAllIDsRequest = _reflection.GeneratedProtocolMessageType('FuseAllIDsRequest', (_message.Message,), dict( DESCRIPTOR = _FUSEALLIDSREQUEST, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.FuseAllIDsRequest) + # @@protoc_insertion_point(class_scope:mediforproto.FuseAllIDsRequest) )) _sym_db.RegisterMessage(FuseAllIDsRequest) FuseAllIDsResponse = _reflection.GeneratedProtocolMessageType('FuseAllIDsResponse', (_message.Message,), dict( DESCRIPTOR = _FUSEALLIDSRESPONSE, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.FuseAllIDsResponse) + # @@protoc_insertion_point(class_scope:mediforproto.FuseAllIDsResponse) )) _sym_db.RegisterMessage(FuseAllIDsResponse) @@ -1873,41 +3020,49 @@ TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( DESCRIPTOR = _UPDATEDETECTIONTAGSREQUEST_TAGSENTRY, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.UpdateDetectionTagsRequest.TagsEntry) + # @@protoc_insertion_point(class_scope:mediforproto.UpdateDetectionTagsRequest.TagsEntry) )) , DESCRIPTOR = _UPDATEDETECTIONTAGSREQUEST, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.UpdateDetectionTagsRequest) + # @@protoc_insertion_point(class_scope:mediforproto.UpdateDetectionTagsRequest) )) _sym_db.RegisterMessage(UpdateDetectionTagsRequest) _sym_db.RegisterMessage(UpdateDetectionTagsRequest.TagsEntry) DetectionTagInfoRequest = _reflection.GeneratedProtocolMessageType('DetectionTagInfoRequest', (_message.Message,), dict( + + RequireTagsEntry = _reflection.GeneratedProtocolMessageType('RequireTagsEntry', (_message.Message,), dict( + DESCRIPTOR = _DETECTIONTAGINFOREQUEST_REQUIRETAGSENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DetectionTagInfoRequest.RequireTagsEntry) + )) + , DESCRIPTOR = _DETECTIONTAGINFOREQUEST, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionTagInfoRequest) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionTagInfoRequest) )) _sym_db.RegisterMessage(DetectionTagInfoRequest) +_sym_db.RegisterMessage(DetectionTagInfoRequest.RequireTagsEntry) DetectionTagInfo = _reflection.GeneratedProtocolMessageType('DetectionTagInfo', (_message.Message,), dict( TagCountsEntry = _reflection.GeneratedProtocolMessageType('TagCountsEntry', (_message.Message,), dict( DESCRIPTOR = _DETECTIONTAGINFO_TAGCOUNTSENTRY, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionTagInfo.TagCountsEntry) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionTagInfo.TagCountsEntry) )) , UserTagCountsEntry = _reflection.GeneratedProtocolMessageType('UserTagCountsEntry', (_message.Message,), dict( DESCRIPTOR = _DETECTIONTAGINFO_USERTAGCOUNTSENTRY, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionTagInfo.UserTagCountsEntry) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionTagInfo.UserTagCountsEntry) )) , DESCRIPTOR = _DETECTIONTAGINFO, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DetectionTagInfo) + # @@protoc_insertion_point(class_scope:mediforproto.DetectionTagInfo) )) _sym_db.RegisterMessage(DetectionTagInfo) _sym_db.RegisterMessage(DetectionTagInfo.TagCountsEntry) @@ -1916,7 +3071,7 @@ DeleteDetectionRequest = _reflection.GeneratedProtocolMessageType('DeleteDetectionRequest', (_message.Message,), dict( DESCRIPTOR = _DELETEDETECTIONREQUEST, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.DeleteDetectionRequest) + # @@protoc_insertion_point(class_scope:mediforproto.DeleteDetectionRequest) )) _sym_db.RegisterMessage(DeleteDetectionRequest) @@ -1925,12 +3080,12 @@ UserFieldsEntry = _reflection.GeneratedProtocolMessageType('UserFieldsEntry', (_message.Message,), dict( DESCRIPTOR = _ANALYTICMETA_USERFIELDSENTRY, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.AnalyticMeta.UserFieldsEntry) + # @@protoc_insertion_point(class_scope:mediforproto.AnalyticMeta.UserFieldsEntry) )) , DESCRIPTOR = _ANALYTICMETA, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.AnalyticMeta) + # @@protoc_insertion_point(class_scope:mediforproto.AnalyticMeta) )) _sym_db.RegisterMessage(AnalyticMeta) _sym_db.RegisterMessage(AnalyticMeta.UserFieldsEntry) @@ -1938,18 +3093,181 @@ AnalyticList = _reflection.GeneratedProtocolMessageType('AnalyticList', (_message.Message,), dict( DESCRIPTOR = _ANALYTICLIST, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.AnalyticList) + # @@protoc_insertion_point(class_scope:mediforproto.AnalyticList) )) _sym_db.RegisterMessage(AnalyticList) -Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), dict( - DESCRIPTOR = _EMPTY, +ListDetectionsRequest = _reflection.GeneratedProtocolMessageType('ListDetectionsRequest', (_message.Message,), dict( + + TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( + DESCRIPTOR = _LISTDETECTIONSREQUEST_TAGSENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.ListDetectionsRequest.TagsEntry) + )) + , + + ExcludeTagsEntry = _reflection.GeneratedProtocolMessageType('ExcludeTagsEntry', (_message.Message,), dict( + DESCRIPTOR = _LISTDETECTIONSREQUEST_EXCLUDETAGSENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.ListDetectionsRequest.ExcludeTagsEntry) + )) + , + DESCRIPTOR = _LISTDETECTIONSREQUEST, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.ListDetectionsRequest) + )) +_sym_db.RegisterMessage(ListDetectionsRequest) +_sym_db.RegisterMessage(ListDetectionsRequest.TagsEntry) +_sym_db.RegisterMessage(ListDetectionsRequest.ExcludeTagsEntry) + +ScoreFilter = _reflection.GeneratedProtocolMessageType('ScoreFilter', (_message.Message,), dict( + DESCRIPTOR = _SCOREFILTER, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.ScoreFilter) + )) +_sym_db.RegisterMessage(ScoreFilter) + +MetaFilter = _reflection.GeneratedProtocolMessageType('MetaFilter', (_message.Message,), dict( + DESCRIPTOR = _METAFILTER, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.MetaFilter) + )) +_sym_db.RegisterMessage(MetaFilter) + +UpdateDetectionMetadataRequest = _reflection.GeneratedProtocolMessageType('UpdateDetectionMetadataRequest', (_message.Message,), dict( + + MetadataEntry = _reflection.GeneratedProtocolMessageType('MetadataEntry', (_message.Message,), dict( + DESCRIPTOR = _UPDATEDETECTIONMETADATAREQUEST_METADATAENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.UpdateDetectionMetadataRequest.MetadataEntry) + )) + , + DESCRIPTOR = _UPDATEDETECTIONMETADATAREQUEST, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.UpdateDetectionMetadataRequest) + )) +_sym_db.RegisterMessage(UpdateDetectionMetadataRequest) +_sym_db.RegisterMessage(UpdateDetectionMetadataRequest.MetadataEntry) + +GetAnalyticStatsRequest = _reflection.GeneratedProtocolMessageType('GetAnalyticStatsRequest', (_message.Message,), dict( + DESCRIPTOR = _GETANALYTICSTATSREQUEST, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.GetAnalyticStatsRequest) + )) +_sym_db.RegisterMessage(GetAnalyticStatsRequest) + +GetAnalyticStatsResponse = _reflection.GeneratedProtocolMessageType('GetAnalyticStatsResponse', (_message.Message,), dict( + DESCRIPTOR = _GETANALYTICSTATSRESPONSE, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.GetAnalyticStatsResponse) + )) +_sym_db.RegisterMessage(GetAnalyticStatsResponse) + +AnalyticStats = _reflection.GeneratedProtocolMessageType('AnalyticStats', (_message.Message,), dict( + DESCRIPTOR = _ANALYTICSTATS, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.AnalyticStats) + )) +_sym_db.RegisterMessage(AnalyticStats) + +GetHistogramRequest = _reflection.GeneratedProtocolMessageType('GetHistogramRequest', (_message.Message,), dict( + + TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( + DESCRIPTOR = _GETHISTOGRAMREQUEST_TAGSENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.GetHistogramRequest.TagsEntry) + )) + , + + ExcludeTagsEntry = _reflection.GeneratedProtocolMessageType('ExcludeTagsEntry', (_message.Message,), dict( + DESCRIPTOR = _GETHISTOGRAMREQUEST_EXCLUDETAGSENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.GetHistogramRequest.ExcludeTagsEntry) + )) + , + DESCRIPTOR = _GETHISTOGRAMREQUEST, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.GetHistogramRequest) + )) +_sym_db.RegisterMessage(GetHistogramRequest) +_sym_db.RegisterMessage(GetHistogramRequest.TagsEntry) +_sym_db.RegisterMessage(GetHistogramRequest.ExcludeTagsEntry) + +GetHistogramResponse = _reflection.GeneratedProtocolMessageType('GetHistogramResponse', (_message.Message,), dict( + DESCRIPTOR = _GETHISTOGRAMRESPONSE, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.GetHistogramResponse) + )) +_sym_db.RegisterMessage(GetHistogramResponse) + +Bucket = _reflection.GeneratedProtocolMessageType('Bucket', (_message.Message,), dict( + DESCRIPTOR = _BUCKET, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.Bucket) + )) +_sym_db.RegisterMessage(Bucket) + +DeleteFailedAnalyticsRequest = _reflection.GeneratedProtocolMessageType('DeleteFailedAnalyticsRequest', (_message.Message,), dict( + DESCRIPTOR = _DELETEFAILEDANALYTICSREQUEST, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DeleteFailedAnalyticsRequest) + )) +_sym_db.RegisterMessage(DeleteFailedAnalyticsRequest) + +DeleteFailedAnalyticsResponse = _reflection.GeneratedProtocolMessageType('DeleteFailedAnalyticsResponse', (_message.Message,), dict( + + DeletedAnalyticsEntry = _reflection.GeneratedProtocolMessageType('DeletedAnalyticsEntry', (_message.Message,), dict( + DESCRIPTOR = _DELETEFAILEDANALYTICSRESPONSE_DELETEDANALYTICSENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DeleteFailedAnalyticsResponse.DeletedAnalyticsEntry) + )) + , + DESCRIPTOR = _DELETEFAILEDANALYTICSRESPONSE, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DeleteFailedAnalyticsResponse) + )) +_sym_db.RegisterMessage(DeleteFailedAnalyticsResponse) +_sym_db.RegisterMessage(DeleteFailedAnalyticsResponse.DeletedAnalyticsEntry) + +DeletedAnalytics = _reflection.GeneratedProtocolMessageType('DeletedAnalytics', (_message.Message,), dict( + DESCRIPTOR = _DELETEDANALYTICS, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DeletedAnalytics) + )) +_sym_db.RegisterMessage(DeletedAnalytics) + +GetAnalyticsWithScoresRequest = _reflection.GeneratedProtocolMessageType('GetAnalyticsWithScoresRequest', (_message.Message,), dict( + + TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( + DESCRIPTOR = _GETANALYTICSWITHSCORESREQUEST_TAGSENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.GetAnalyticsWithScoresRequest.TagsEntry) + )) + , + + ExcludeTagsEntry = _reflection.GeneratedProtocolMessageType('ExcludeTagsEntry', (_message.Message,), dict( + DESCRIPTOR = _GETANALYTICSWITHSCORESREQUEST_EXCLUDETAGSENTRY, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.GetAnalyticsWithScoresRequest.ExcludeTagsEntry) + )) + , + DESCRIPTOR = _GETANALYTICSWITHSCORESREQUEST, + __module__ = 'medifor.v1.pipeline_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.GetAnalyticsWithScoresRequest) + )) +_sym_db.RegisterMessage(GetAnalyticsWithScoresRequest) +_sym_db.RegisterMessage(GetAnalyticsWithScoresRequest.TagsEntry) +_sym_db.RegisterMessage(GetAnalyticsWithScoresRequest.ExcludeTagsEntry) + +GetAnalyticsWithScoresResponse = _reflection.GeneratedProtocolMessageType('GetAnalyticsWithScoresResponse', (_message.Message,), dict( + DESCRIPTOR = _GETANALYTICSWITHSCORESRESPONSE, __module__ = 'medifor.v1.pipeline_pb2' - # @@protoc_insertion_point(class_scope:workflowproto.Empty) + # @@protoc_insertion_point(class_scope:mediforproto.GetAnalyticsWithScoresResponse) )) -_sym_db.RegisterMessage(Empty) +_sym_db.RegisterMessage(GetAnalyticsWithScoresResponse) +DESCRIPTOR._options = None _DETECTIONREQUEST_TAGSENTRY._options = None _DETECTIONREQUEST_USERTAGSENTRY._options = None _DETECTIONREQUEST_METAENTRY._options = None @@ -1960,22 +3278,31 @@ _FUSIONREQUEST_TAGSENTRY._options = None _FUSIONINFO_TAGSENTRY._options = None _UPDATEDETECTIONTAGSREQUEST_TAGSENTRY._options = None +_DETECTIONTAGINFOREQUEST_REQUIRETAGSENTRY._options = None _DETECTIONTAGINFO_TAGCOUNTSENTRY._options = None _DETECTIONTAGINFO_USERTAGCOUNTSENTRY._options = None _ANALYTICMETA_USERFIELDSENTRY._options = None +_LISTDETECTIONSREQUEST_TAGSENTRY._options = None +_LISTDETECTIONSREQUEST_EXCLUDETAGSENTRY._options = None +_UPDATEDETECTIONMETADATAREQUEST_METADATAENTRY._options = None +_GETHISTOGRAMREQUEST_TAGSENTRY._options = None +_GETHISTOGRAMREQUEST_EXCLUDETAGSENTRY._options = None +_DELETEFAILEDANALYTICSRESPONSE_DELETEDANALYTICSENTRY._options = None +_GETANALYTICSWITHSCORESREQUEST_TAGSENTRY._options = None +_GETANALYTICSWITHSCORESREQUEST_EXCLUDETAGSENTRY._options = None _PIPELINE = _descriptor.ServiceDescriptor( name='Pipeline', - full_name='workflowproto.Pipeline', + full_name='mediforproto.Pipeline', file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=3980, - serialized_end=4796, + serialized_start=6675, + serialized_end=8074, methods=[ _descriptor.MethodDescriptor( name='Detect', - full_name='workflowproto.Pipeline.Detect', + full_name='mediforproto.Pipeline.Detect', index=0, containing_service=None, input_type=_DETECTIONREQUEST, @@ -1984,7 +3311,7 @@ ), _descriptor.MethodDescriptor( name='GetDetectionInfo', - full_name='workflowproto.Pipeline.GetDetectionInfo', + full_name='mediforproto.Pipeline.GetDetectionInfo', index=1, containing_service=None, input_type=_DETECTIONINFOREQUEST, @@ -1993,7 +3320,7 @@ ), _descriptor.MethodDescriptor( name='GetDetectionList', - full_name='workflowproto.Pipeline.GetDetectionList', + full_name='mediforproto.Pipeline.GetDetectionList', index=2, containing_service=None, input_type=_DETECTIONLISTREQUEST, @@ -2002,16 +3329,16 @@ ), _descriptor.MethodDescriptor( name='DeleteDetection', - full_name='workflowproto.Pipeline.DeleteDetection', + full_name='mediforproto.Pipeline.DeleteDetection', index=3, containing_service=None, input_type=_DELETEDETECTIONREQUEST, - output_type=_EMPTY, + output_type=medifor_dot_v1_dot_analytic__pb2._EMPTY, serialized_options=None, ), _descriptor.MethodDescriptor( name='Fuse', - full_name='workflowproto.Pipeline.Fuse', + full_name='mediforproto.Pipeline.Fuse', index=4, containing_service=None, input_type=_FUSIONREQUEST, @@ -2020,7 +3347,7 @@ ), _descriptor.MethodDescriptor( name='FuseByID', - full_name='workflowproto.Pipeline.FuseByID', + full_name='mediforproto.Pipeline.FuseByID', index=5, containing_service=None, input_type=_FUSIONREQUEST, @@ -2029,7 +3356,7 @@ ), _descriptor.MethodDescriptor( name='FuseAllIDs', - full_name='workflowproto.Pipeline.FuseAllIDs', + full_name='mediforproto.Pipeline.FuseAllIDs', index=6, containing_service=None, input_type=_FUSEALLIDSREQUEST, @@ -2038,7 +3365,7 @@ ), _descriptor.MethodDescriptor( name='UpdateDetectionTags', - full_name='workflowproto.Pipeline.UpdateDetectionTags', + full_name='mediforproto.Pipeline.UpdateDetectionTags', index=7, containing_service=None, input_type=_UPDATEDETECTIONTAGSREQUEST, @@ -2047,7 +3374,7 @@ ), _descriptor.MethodDescriptor( name='GetDetectionTagInfo', - full_name='workflowproto.Pipeline.GetDetectionTagInfo', + full_name='mediforproto.Pipeline.GetDetectionTagInfo', index=8, containing_service=None, input_type=_DETECTIONTAGINFOREQUEST, @@ -2056,13 +3383,67 @@ ), _descriptor.MethodDescriptor( name='GetAnalyticMeta', - full_name='workflowproto.Pipeline.GetAnalyticMeta', + full_name='mediforproto.Pipeline.GetAnalyticMeta', index=9, containing_service=None, - input_type=_EMPTY, + input_type=medifor_dot_v1_dot_analytic__pb2._EMPTY, output_type=_ANALYTICLIST, serialized_options=None, ), + _descriptor.MethodDescriptor( + name='ListDetections', + full_name='mediforproto.Pipeline.ListDetections', + index=10, + containing_service=None, + input_type=_LISTDETECTIONSREQUEST, + output_type=_DETECTIONLIST, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='UpdateDetectionMetadata', + full_name='mediforproto.Pipeline.UpdateDetectionMetadata', + index=11, + containing_service=None, + input_type=_UPDATEDETECTIONMETADATAREQUEST, + output_type=_DETECTIONINFO, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetAnalyticStats', + full_name='mediforproto.Pipeline.GetAnalyticStats', + index=12, + containing_service=None, + input_type=_GETANALYTICSTATSREQUEST, + output_type=_GETANALYTICSTATSRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetHistogram', + full_name='mediforproto.Pipeline.GetHistogram', + index=13, + containing_service=None, + input_type=_GETHISTOGRAMREQUEST, + output_type=_GETHISTOGRAMRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='DeleteFailedAnalytics', + full_name='mediforproto.Pipeline.DeleteFailedAnalytics', + index=14, + containing_service=None, + input_type=_DELETEFAILEDANALYTICSREQUEST, + output_type=_DELETEFAILEDANALYTICSRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetAnalyticsWithScores', + full_name='mediforproto.Pipeline.GetAnalyticsWithScores', + index=15, + containing_service=None, + input_type=_GETANALYTICSWITHSCORESREQUEST, + output_type=_GETANALYTICSWITHSCORESRESPONSE, + serialized_options=None, + ), ]) _sym_db.RegisterServiceDescriptor(_PIPELINE) diff --git a/python/medifor/v1/pipeline_pb2_grpc.py b/python/medifor/v1/pipeline_pb2_grpc.py index abc92e9..dca8c4e 100644 --- a/python/medifor/v1/pipeline_pb2_grpc.py +++ b/python/medifor/v1/pipeline_pb2_grpc.py @@ -1,6 +1,7 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! import grpc +from medifor.v1 import analytic_pb2 as medifor_dot_v1_dot_analytic__pb2 from medifor.v1 import pipeline_pb2 as medifor_dot_v1_dot_pipeline__pb2 @@ -15,55 +16,85 @@ def __init__(self, channel): channel: A grpc.Channel. """ self.Detect = channel.unary_unary( - '/workflowproto.Pipeline/Detect', + '/mediforproto.Pipeline/Detect', request_serializer=medifor_dot_v1_dot_pipeline__pb2.DetectionRequest.SerializeToString, response_deserializer=medifor_dot_v1_dot_pipeline__pb2.DetectionInfo.FromString, ) self.GetDetectionInfo = channel.unary_unary( - '/workflowproto.Pipeline/GetDetectionInfo', + '/mediforproto.Pipeline/GetDetectionInfo', request_serializer=medifor_dot_v1_dot_pipeline__pb2.DetectionInfoRequest.SerializeToString, response_deserializer=medifor_dot_v1_dot_pipeline__pb2.DetectionInfo.FromString, ) self.GetDetectionList = channel.unary_unary( - '/workflowproto.Pipeline/GetDetectionList', + '/mediforproto.Pipeline/GetDetectionList', request_serializer=medifor_dot_v1_dot_pipeline__pb2.DetectionListRequest.SerializeToString, response_deserializer=medifor_dot_v1_dot_pipeline__pb2.DetectionList.FromString, ) self.DeleteDetection = channel.unary_unary( - '/workflowproto.Pipeline/DeleteDetection', + '/mediforproto.Pipeline/DeleteDetection', request_serializer=medifor_dot_v1_dot_pipeline__pb2.DeleteDetectionRequest.SerializeToString, - response_deserializer=medifor_dot_v1_dot_pipeline__pb2.Empty.FromString, + response_deserializer=medifor_dot_v1_dot_analytic__pb2.Empty.FromString, ) self.Fuse = channel.unary_unary( - '/workflowproto.Pipeline/Fuse', + '/mediforproto.Pipeline/Fuse', request_serializer=medifor_dot_v1_dot_pipeline__pb2.FusionRequest.SerializeToString, response_deserializer=medifor_dot_v1_dot_pipeline__pb2.FusionInfo.FromString, ) self.FuseByID = channel.unary_unary( - '/workflowproto.Pipeline/FuseByID', + '/mediforproto.Pipeline/FuseByID', request_serializer=medifor_dot_v1_dot_pipeline__pb2.FusionRequest.SerializeToString, response_deserializer=medifor_dot_v1_dot_pipeline__pb2.FusionInfo.FromString, ) self.FuseAllIDs = channel.unary_unary( - '/workflowproto.Pipeline/FuseAllIDs', + '/mediforproto.Pipeline/FuseAllIDs', request_serializer=medifor_dot_v1_dot_pipeline__pb2.FuseAllIDsRequest.SerializeToString, response_deserializer=medifor_dot_v1_dot_pipeline__pb2.FuseAllIDsResponse.FromString, ) self.UpdateDetectionTags = channel.unary_unary( - '/workflowproto.Pipeline/UpdateDetectionTags', + '/mediforproto.Pipeline/UpdateDetectionTags', request_serializer=medifor_dot_v1_dot_pipeline__pb2.UpdateDetectionTagsRequest.SerializeToString, response_deserializer=medifor_dot_v1_dot_pipeline__pb2.DetectionInfo.FromString, ) self.GetDetectionTagInfo = channel.unary_unary( - '/workflowproto.Pipeline/GetDetectionTagInfo', + '/mediforproto.Pipeline/GetDetectionTagInfo', request_serializer=medifor_dot_v1_dot_pipeline__pb2.DetectionTagInfoRequest.SerializeToString, response_deserializer=medifor_dot_v1_dot_pipeline__pb2.DetectionTagInfo.FromString, ) self.GetAnalyticMeta = channel.unary_unary( - '/workflowproto.Pipeline/GetAnalyticMeta', - request_serializer=medifor_dot_v1_dot_pipeline__pb2.Empty.SerializeToString, + '/mediforproto.Pipeline/GetAnalyticMeta', + request_serializer=medifor_dot_v1_dot_analytic__pb2.Empty.SerializeToString, response_deserializer=medifor_dot_v1_dot_pipeline__pb2.AnalyticList.FromString, ) + self.ListDetections = channel.unary_unary( + '/mediforproto.Pipeline/ListDetections', + request_serializer=medifor_dot_v1_dot_pipeline__pb2.ListDetectionsRequest.SerializeToString, + response_deserializer=medifor_dot_v1_dot_pipeline__pb2.DetectionList.FromString, + ) + self.UpdateDetectionMetadata = channel.unary_unary( + '/mediforproto.Pipeline/UpdateDetectionMetadata', + request_serializer=medifor_dot_v1_dot_pipeline__pb2.UpdateDetectionMetadataRequest.SerializeToString, + response_deserializer=medifor_dot_v1_dot_pipeline__pb2.DetectionInfo.FromString, + ) + self.GetAnalyticStats = channel.unary_unary( + '/mediforproto.Pipeline/GetAnalyticStats', + request_serializer=medifor_dot_v1_dot_pipeline__pb2.GetAnalyticStatsRequest.SerializeToString, + response_deserializer=medifor_dot_v1_dot_pipeline__pb2.GetAnalyticStatsResponse.FromString, + ) + self.GetHistogram = channel.unary_unary( + '/mediforproto.Pipeline/GetHistogram', + request_serializer=medifor_dot_v1_dot_pipeline__pb2.GetHistogramRequest.SerializeToString, + response_deserializer=medifor_dot_v1_dot_pipeline__pb2.GetHistogramResponse.FromString, + ) + self.DeleteFailedAnalytics = channel.unary_unary( + '/mediforproto.Pipeline/DeleteFailedAnalytics', + request_serializer=medifor_dot_v1_dot_pipeline__pb2.DeleteFailedAnalyticsRequest.SerializeToString, + response_deserializer=medifor_dot_v1_dot_pipeline__pb2.DeleteFailedAnalyticsResponse.FromString, + ) + self.GetAnalyticsWithScores = channel.unary_unary( + '/mediforproto.Pipeline/GetAnalyticsWithScores', + request_serializer=medifor_dot_v1_dot_pipeline__pb2.GetAnalyticsWithScoresRequest.SerializeToString, + response_deserializer=medifor_dot_v1_dot_pipeline__pb2.GetAnalyticsWithScoresResponse.FromString, + ) class PipelineServicer(object): @@ -140,6 +171,48 @@ def GetAnalyticMeta(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def ListDetections(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateDetectionMetadata(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAnalyticStats(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetHistogram(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteFailedAnalytics(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAnalyticsWithScores(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_PipelineServicer_to_server(servicer, server): rpc_method_handlers = { @@ -161,7 +234,7 @@ def add_PipelineServicer_to_server(servicer, server): 'DeleteDetection': grpc.unary_unary_rpc_method_handler( servicer.DeleteDetection, request_deserializer=medifor_dot_v1_dot_pipeline__pb2.DeleteDetectionRequest.FromString, - response_serializer=medifor_dot_v1_dot_pipeline__pb2.Empty.SerializeToString, + response_serializer=medifor_dot_v1_dot_analytic__pb2.Empty.SerializeToString, ), 'Fuse': grpc.unary_unary_rpc_method_handler( servicer.Fuse, @@ -190,10 +263,40 @@ def add_PipelineServicer_to_server(servicer, server): ), 'GetAnalyticMeta': grpc.unary_unary_rpc_method_handler( servicer.GetAnalyticMeta, - request_deserializer=medifor_dot_v1_dot_pipeline__pb2.Empty.FromString, + request_deserializer=medifor_dot_v1_dot_analytic__pb2.Empty.FromString, response_serializer=medifor_dot_v1_dot_pipeline__pb2.AnalyticList.SerializeToString, ), + 'ListDetections': grpc.unary_unary_rpc_method_handler( + servicer.ListDetections, + request_deserializer=medifor_dot_v1_dot_pipeline__pb2.ListDetectionsRequest.FromString, + response_serializer=medifor_dot_v1_dot_pipeline__pb2.DetectionList.SerializeToString, + ), + 'UpdateDetectionMetadata': grpc.unary_unary_rpc_method_handler( + servicer.UpdateDetectionMetadata, + request_deserializer=medifor_dot_v1_dot_pipeline__pb2.UpdateDetectionMetadataRequest.FromString, + response_serializer=medifor_dot_v1_dot_pipeline__pb2.DetectionInfo.SerializeToString, + ), + 'GetAnalyticStats': grpc.unary_unary_rpc_method_handler( + servicer.GetAnalyticStats, + request_deserializer=medifor_dot_v1_dot_pipeline__pb2.GetAnalyticStatsRequest.FromString, + response_serializer=medifor_dot_v1_dot_pipeline__pb2.GetAnalyticStatsResponse.SerializeToString, + ), + 'GetHistogram': grpc.unary_unary_rpc_method_handler( + servicer.GetHistogram, + request_deserializer=medifor_dot_v1_dot_pipeline__pb2.GetHistogramRequest.FromString, + response_serializer=medifor_dot_v1_dot_pipeline__pb2.GetHistogramResponse.SerializeToString, + ), + 'DeleteFailedAnalytics': grpc.unary_unary_rpc_method_handler( + servicer.DeleteFailedAnalytics, + request_deserializer=medifor_dot_v1_dot_pipeline__pb2.DeleteFailedAnalyticsRequest.FromString, + response_serializer=medifor_dot_v1_dot_pipeline__pb2.DeleteFailedAnalyticsResponse.SerializeToString, + ), + 'GetAnalyticsWithScores': grpc.unary_unary_rpc_method_handler( + servicer.GetAnalyticsWithScores, + request_deserializer=medifor_dot_v1_dot_pipeline__pb2.GetAnalyticsWithScoresRequest.FromString, + response_serializer=medifor_dot_v1_dot_pipeline__pb2.GetAnalyticsWithScoresResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( - 'workflowproto.Pipeline', rpc_method_handlers) + 'mediforproto.Pipeline', rpc_method_handlers) server.add_generic_rpc_handlers((generic_handler,)) diff --git a/python/medifor/v1/provenance_pb2.py b/python/medifor/v1/provenance_pb2.py index e9eac9a..622456b 100644 --- a/python/medifor/v1/provenance_pb2.py +++ b/python/medifor/v1/provenance_pb2.py @@ -20,8 +20,8 @@ name='medifor/v1/provenance.proto', package='mediforproto', syntax='proto3', - serialized_options=_b('\n\030com.mediforprogram.protoB\017ProvenanceProto'), - serialized_pb=_b('\n\x1bmedifor/v1/provenance.proto\x12\x0cmediforproto\x1a\x19medifor/v1/analytic.proto\"m\n\x1aProvenanceFilteringRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12%\n\x05image\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x14\n\x0cresult_limit\x18\x03 \x01(\x05\"]\n\nImageMatch\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12.\n\x0ematching_image\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\r\n\x05score\x18\x03 \x01(\x02\"c\n\x0f\x46ilteringResult\x12)\n\x07matches\x18\x01 \x03(\x0b\x32\x18.mediforproto.ImageMatch\x12%\n\x05probe\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\"\x85\x01\n\x16ProvenanceGraphRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12%\n\x05image\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x30\n\x0e\x66ilter_results\x18\x03 \x03(\x0b\x32\x18.mediforproto.ImageMatch\"w\n\x0b\x41ssociation\x12$\n\x04type\x18\x01 \x01(\x0e\x32\x16.mediforproto.LinkType\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x0e\n\x06target\x18\x03 \x01(\t\x12\r\n\x05score\x18\x04 \x01(\x02\x12\x13\n\x0b\x65xplanation\x18\x05 \x01(\t\"\'\n\x04Node\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\r\n\x05score\x18\x02 \x01(\x02\"v\n\x0fProvenanceGraph\x12!\n\x05nodes\x18\x01 \x03(\x0b\x32\x12.mediforproto.Node\x12/\n\x0c\x61ssociations\x18\x02 \x03(\x0b\x32\x19.mediforproto.Association\x12\x0f\n\x07opt_out\x18\x03 \x01(\x08*M\n\x08LinkType\x12\n\n\x06SPLICE\x10\x00\x12\x0e\n\nPROVENANCE\x10\x01\x12\x0b\n\x07SPEAKER\x10\x02\x12\n\n\x06\x43\x41MERA\x10\x03\x12\x0c\n\x08LOCATION\x10\x04\x32\xcc\x01\n\nProvenance\x12^\n\x13ProvenanceFiltering\x12(.mediforproto.ProvenanceFilteringRequest\x1a\x1d.mediforproto.FilteringResult\x12^\n\x17ProvenanceGraphBuilding\x12$.mediforproto.ProvenanceGraphRequest\x1a\x1d.mediforproto.ProvenanceGraphB+\n\x18\x63om.mediforprogram.protoB\x0fProvenanceProtob\x06proto3') + serialized_options=_b('\n\030com.mediforprogram.protoB\017ProvenanceProtoZ2github.com/mediaforensics/medifor/pkg/mediforproto'), + serialized_pb=_b('\n\x1bmedifor/v1/provenance.proto\x12\x0cmediforproto\x1a\x19medifor/v1/analytic.proto\"m\n\x1aProvenanceFilteringRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12%\n\x05image\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x14\n\x0cresult_limit\x18\x03 \x01(\x05\"]\n\nImageMatch\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12.\n\x0ematching_image\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\r\n\x05score\x18\x03 \x01(\x02\"c\n\x0f\x46ilteringResult\x12)\n\x07matches\x18\x01 \x03(\x0b\x32\x18.mediforproto.ImageMatch\x12%\n\x05probe\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\"\x85\x01\n\x16ProvenanceGraphRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12%\n\x05image\x18\x02 \x01(\x0b\x32\x16.mediforproto.Resource\x12\x30\n\x0e\x66ilter_results\x18\x03 \x03(\x0b\x32\x18.mediforproto.ImageMatch\"w\n\x0b\x41ssociation\x12$\n\x04type\x18\x01 \x01(\x0e\x32\x16.mediforproto.LinkType\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x0e\n\x06target\x18\x03 \x01(\t\x12\r\n\x05score\x18\x04 \x01(\x02\x12\x13\n\x0b\x65xplanation\x18\x05 \x01(\t\"\'\n\x04Node\x12\x10\n\x08image_id\x18\x01 \x01(\t\x12\r\n\x05score\x18\x02 \x01(\x02\"v\n\x0fProvenanceGraph\x12!\n\x05nodes\x18\x01 \x03(\x0b\x32\x12.mediforproto.Node\x12/\n\x0c\x61ssociations\x18\x02 \x03(\x0b\x32\x19.mediforproto.Association\x12\x0f\n\x07opt_out\x18\x03 \x01(\x08*M\n\x08LinkType\x12\n\n\x06SPLICE\x10\x00\x12\x0e\n\nPROVENANCE\x10\x01\x12\x0b\n\x07SPEAKER\x10\x02\x12\n\n\x06\x43\x41MERA\x10\x03\x12\x0c\n\x08LOCATION\x10\x04\x32\xcc\x01\n\nProvenance\x12^\n\x13ProvenanceFiltering\x12(.mediforproto.ProvenanceFilteringRequest\x1a\x1d.mediforproto.FilteringResult\x12^\n\x17ProvenanceGraphBuilding\x12$.mediforproto.ProvenanceGraphRequest\x1a\x1d.mediforproto.ProvenanceGraphB_\n\x18\x63om.mediforprogram.protoB\x0fProvenanceProtoZ2github.com/mediaforensics/medifor/pkg/mediforprotob\x06proto3') , dependencies=[medifor_dot_v1_dot_analytic__pb2.DESCRIPTOR,]) diff --git a/python/medifor/v1/streamingproxy_pb2.py b/python/medifor/v1/streamingproxy_pb2.py index 4e5724a..eb37ab4 100644 --- a/python/medifor/v1/streamingproxy_pb2.py +++ b/python/medifor/v1/streamingproxy_pb2.py @@ -19,8 +19,8 @@ name='medifor/v1/streamingproxy.proto', package='mediforproto', syntax='proto3', - serialized_options=None, - serialized_pb=_b('\n\x1fmedifor/v1/streamingproxy.proto\x12\x0cmediforproto\x1a\x19medifor/v1/analytic.proto\"`\n\tFileChunk\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tmime_type\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x13\n\x0btotal_bytes\x18\x04 \x01(\x03\x12\r\n\x05value\x18\x05 \x01(\x0c\"v\n\x0e\x44\x65tectionChunk\x12,\n\tdetection\x18\x01 \x01(\x0b\x32\x17.mediforproto.DetectionH\x00\x12-\n\nfile_chunk\x18\x02 \x01(\x0b\x32\x17.mediforproto.FileChunkH\x00\x42\x07\n\x05value2`\n\x0eStreamingProxy\x12N\n\x0c\x44\x65tectStream\x12\x1c.mediforproto.DetectionChunk\x1a\x1c.mediforproto.DetectionChunk(\x01\x30\x01\x62\x06proto3') + serialized_options=_b('Z2github.com/mediaforensics/medifor/pkg/mediforproto'), + serialized_pb=_b('\n\x1fmedifor/v1/streamingproxy.proto\x12\x0cmediforproto\x1a\x19medifor/v1/analytic.proto\"`\n\tFileChunk\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tmime_type\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x13\n\x0btotal_bytes\x18\x04 \x01(\x03\x12\r\n\x05value\x18\x05 \x01(\x0c\"v\n\x0e\x44\x65tectionChunk\x12,\n\tdetection\x18\x01 \x01(\x0b\x32\x17.mediforproto.DetectionH\x00\x12-\n\nfile_chunk\x18\x02 \x01(\x0b\x32\x17.mediforproto.FileChunkH\x00\x42\x07\n\x05value2`\n\x0eStreamingProxy\x12N\n\x0c\x44\x65tectStream\x12\x1c.mediforproto.DetectionChunk\x1a\x1c.mediforproto.DetectionChunk(\x01\x30\x01\x42\x34Z2github.com/mediaforensics/medifor/pkg/mediforprotob\x06proto3') , dependencies=[medifor_dot_v1_dot_analytic__pb2.DESCRIPTOR,]) @@ -153,6 +153,7 @@ _sym_db.RegisterMessage(DetectionChunk) +DESCRIPTOR._options = None _STREAMINGPROXY = _descriptor.ServiceDescriptor( name='StreamingProxy', diff --git a/python/medifor/v1/task_pb2.py b/python/medifor/v1/task_pb2.py new file mode 100644 index 0000000..b5d36a6 --- /dev/null +++ b/python/medifor/v1/task_pb2.py @@ -0,0 +1,404 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: medifor/v1/task.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from medifor.v1 import analytic_pb2 as medifor_dot_v1_dot_analytic__pb2 +from medifor.v1 import fusion_pb2 as medifor_dot_v1_dot_fusion__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='medifor/v1/task.proto', + package='mediforproto', + syntax='proto3', + serialized_options=_b('Z2github.com/mediaforensics/medifor/pkg/mediforproto'), + serialized_pb=_b('\n\x15medifor/v1/task.proto\x12\x0cmediforproto\x1a\x19medifor/v1/analytic.proto\x1a\x17medifor/v1/fusion.proto\"\xd3\x03\n\rDetectionTask\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0b\x61nalytic_id\x18\x02 \x03(\t\x12\x10\n\x08\x66user_id\x18\t \x03(\t\x12*\n\tdetection\x18\x03 \x01(\x0b\x32\x17.mediforproto.Detection\x12\x12\n\ndone_queue\x18\x04 \x01(\t\x12\x33\n\x04tags\x18\x05 \x03(\x0b\x32%.mediforproto.DetectionTask.TagsEntry\x12<\n\tuser_tags\x18\x07 \x03(\x0b\x32).mediforproto.DetectionTask.UserTagsEntry\x12\x33\n\x04meta\x18\x08 \x03(\x0b\x32%.mediforproto.DetectionTask.MetaEntry\x12\x1c\n\x14\x61nalytic_timeout_sec\x18\x06 \x01(\x03\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rUserTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a+\n\tMetaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xfe\x01\n\nFusionTask\x12\x11\n\tunused_id\x18\x01 \x01(\t\x12\x10\n\x08\x66user_id\x18\x02 \x03(\t\x12$\n\x06\x66usion\x18\x03 \x01(\x0b\x32\x14.mediforproto.Fusion\x12\x12\n\ndone_queue\x18\x04 \x01(\t\x12\x30\n\x04tags\x18\x05 \x03(\x0b\x32\".mediforproto.FusionTask.TagsEntry\x12\x1c\n\x14\x61nalytic_timeout_sec\x18\x06 \x01(\x03\x12\x14\n\x0c\x64\x65tection_id\x18\x07 \x01(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x34Z2github.com/mediaforensics/medifor/pkg/mediforprotob\x06proto3') + , + dependencies=[medifor_dot_v1_dot_analytic__pb2.DESCRIPTOR,medifor_dot_v1_dot_fusion__pb2.DESCRIPTOR,]) + + + + +_DETECTIONTASK_TAGSENTRY = _descriptor.Descriptor( + name='TagsEntry', + full_name='mediforproto.DetectionTask.TagsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.DetectionTask.TagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.DetectionTask.TagsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=422, + serialized_end=465, +) + +_DETECTIONTASK_USERTAGSENTRY = _descriptor.Descriptor( + name='UserTagsEntry', + full_name='mediforproto.DetectionTask.UserTagsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.DetectionTask.UserTagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.DetectionTask.UserTagsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=467, + serialized_end=514, +) + +_DETECTIONTASK_METAENTRY = _descriptor.Descriptor( + name='MetaEntry', + full_name='mediforproto.DetectionTask.MetaEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.DetectionTask.MetaEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.DetectionTask.MetaEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=516, + serialized_end=559, +) + +_DETECTIONTASK = _descriptor.Descriptor( + name='DetectionTask', + full_name='mediforproto.DetectionTask', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='mediforproto.DetectionTask.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='analytic_id', full_name='mediforproto.DetectionTask.analytic_id', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fuser_id', full_name='mediforproto.DetectionTask.fuser_id', index=2, + number=9, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='detection', full_name='mediforproto.DetectionTask.detection', index=3, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='done_queue', full_name='mediforproto.DetectionTask.done_queue', index=4, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tags', full_name='mediforproto.DetectionTask.tags', index=5, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='user_tags', full_name='mediforproto.DetectionTask.user_tags', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='meta', full_name='mediforproto.DetectionTask.meta', index=7, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='analytic_timeout_sec', full_name='mediforproto.DetectionTask.analytic_timeout_sec', index=8, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_DETECTIONTASK_TAGSENTRY, _DETECTIONTASK_USERTAGSENTRY, _DETECTIONTASK_METAENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=92, + serialized_end=559, +) + + +_FUSIONTASK_TAGSENTRY = _descriptor.Descriptor( + name='TagsEntry', + full_name='mediforproto.FusionTask.TagsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='mediforproto.FusionTask.TagsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='mediforproto.FusionTask.TagsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=422, + serialized_end=465, +) + +_FUSIONTASK = _descriptor.Descriptor( + name='FusionTask', + full_name='mediforproto.FusionTask', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='unused_id', full_name='mediforproto.FusionTask.unused_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fuser_id', full_name='mediforproto.FusionTask.fuser_id', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fusion', full_name='mediforproto.FusionTask.fusion', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='done_queue', full_name='mediforproto.FusionTask.done_queue', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tags', full_name='mediforproto.FusionTask.tags', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='analytic_timeout_sec', full_name='mediforproto.FusionTask.analytic_timeout_sec', index=5, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='detection_id', full_name='mediforproto.FusionTask.detection_id', index=6, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_FUSIONTASK_TAGSENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=562, + serialized_end=816, +) + +_DETECTIONTASK_TAGSENTRY.containing_type = _DETECTIONTASK +_DETECTIONTASK_USERTAGSENTRY.containing_type = _DETECTIONTASK +_DETECTIONTASK_METAENTRY.containing_type = _DETECTIONTASK +_DETECTIONTASK.fields_by_name['detection'].message_type = medifor_dot_v1_dot_analytic__pb2._DETECTION +_DETECTIONTASK.fields_by_name['tags'].message_type = _DETECTIONTASK_TAGSENTRY +_DETECTIONTASK.fields_by_name['user_tags'].message_type = _DETECTIONTASK_USERTAGSENTRY +_DETECTIONTASK.fields_by_name['meta'].message_type = _DETECTIONTASK_METAENTRY +_FUSIONTASK_TAGSENTRY.containing_type = _FUSIONTASK +_FUSIONTASK.fields_by_name['fusion'].message_type = medifor_dot_v1_dot_fusion__pb2._FUSION +_FUSIONTASK.fields_by_name['tags'].message_type = _FUSIONTASK_TAGSENTRY +DESCRIPTOR.message_types_by_name['DetectionTask'] = _DETECTIONTASK +DESCRIPTOR.message_types_by_name['FusionTask'] = _FUSIONTASK +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DetectionTask = _reflection.GeneratedProtocolMessageType('DetectionTask', (_message.Message,), dict( + + TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( + DESCRIPTOR = _DETECTIONTASK_TAGSENTRY, + __module__ = 'medifor.v1.task_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DetectionTask.TagsEntry) + )) + , + + UserTagsEntry = _reflection.GeneratedProtocolMessageType('UserTagsEntry', (_message.Message,), dict( + DESCRIPTOR = _DETECTIONTASK_USERTAGSENTRY, + __module__ = 'medifor.v1.task_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DetectionTask.UserTagsEntry) + )) + , + + MetaEntry = _reflection.GeneratedProtocolMessageType('MetaEntry', (_message.Message,), dict( + DESCRIPTOR = _DETECTIONTASK_METAENTRY, + __module__ = 'medifor.v1.task_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DetectionTask.MetaEntry) + )) + , + DESCRIPTOR = _DETECTIONTASK, + __module__ = 'medifor.v1.task_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.DetectionTask) + )) +_sym_db.RegisterMessage(DetectionTask) +_sym_db.RegisterMessage(DetectionTask.TagsEntry) +_sym_db.RegisterMessage(DetectionTask.UserTagsEntry) +_sym_db.RegisterMessage(DetectionTask.MetaEntry) + +FusionTask = _reflection.GeneratedProtocolMessageType('FusionTask', (_message.Message,), dict( + + TagsEntry = _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), dict( + DESCRIPTOR = _FUSIONTASK_TAGSENTRY, + __module__ = 'medifor.v1.task_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.FusionTask.TagsEntry) + )) + , + DESCRIPTOR = _FUSIONTASK, + __module__ = 'medifor.v1.task_pb2' + # @@protoc_insertion_point(class_scope:mediforproto.FusionTask) + )) +_sym_db.RegisterMessage(FusionTask) +_sym_db.RegisterMessage(FusionTask.TagsEntry) + + +DESCRIPTOR._options = None +_DETECTIONTASK_TAGSENTRY._options = None +_DETECTIONTASK_USERTAGSENTRY._options = None +_DETECTIONTASK_METAENTRY._options = None +_FUSIONTASK_TAGSENTRY._options = None +# @@protoc_insertion_point(module_scope) diff --git a/python/medifor/v1/task_pb2_grpc.py b/python/medifor/v1/task_pb2_grpc.py new file mode 100644 index 0000000..a894352 --- /dev/null +++ b/python/medifor/v1/task_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc +