From a20e71d1f0e7473a29c4ed5323c7d9368458d5ba Mon Sep 17 00:00:00 2001 From: Juston Moore Date: Sat, 10 Apr 2021 11:17:30 -0600 Subject: [PATCH] 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 +