From 0851b27dffab28d5118aa85e3ee95e272aff7394 Mon Sep 17 00:00:00 2001 From: wanfeng Date: Mon, 22 Sep 2025 18:27:29 +0800 Subject: [PATCH] Define data structures in Protobuf format --- graffiti/filters/filters.proto | 112 +++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 graffiti/filters/filters.proto diff --git a/graffiti/filters/filters.proto b/graffiti/filters/filters.proto new file mode 100644 index 00000000..6c638583 --- /dev/null +++ b/graffiti/filters/filters.proto @@ -0,0 +1,112 @@ +syntax = "proto3"; + +package filters; + +option go_package = "github.com/skydive-project/skydive/graffiti/filters"; + +enum BoolFilterOp { + OR = 0; + AND = 1; + NOT = 2; +} + +enum SortOrder { + NoOrder = 0; + Ascending = 1; + Descending = 2; +} + +message TermStringFilter { + string Key = 1; + string Value = 2; +} + +message TermInt64Filter { + string Key = 1; + int64 Value = 2; +} + +message TermBoolFilter { + string Key = 1; + bool Value = 2; +} + +message NeStringFilter { + string Key = 1; + string Value = 2; +} + +message NeInt64Filter { + string Key = 1; + int64 Value = 2; +} + +message GtInt64Filter { + string Key = 1; + int64 Value = 2; +} + +message LtInt64Filter { + string Key = 1; + int64 Value = 2; +} + +message GteInt64Filter { + string Key = 1; + int64 Value = 2; +} + +message LteInt64Filter { + string Key = 1; + int64 Value = 2; +} + +message RegexFilter { + string Key = 1; + string Value = 2; +} + +message NullFilter { + string Key = 1; +} + +message IPV4RangeFilter { + string Key = 1; + string Value = 2; +} + +message Filter { + TermStringFilter TermStringFilter = 1; + TermInt64Filter TermInt64Filter = 2; + TermBoolFilter TermBoolFilter = 3; + + GtInt64Filter GtInt64Filter = 4; + LtInt64Filter LtInt64Filter = 5; + GteInt64Filter GteInt64Filter = 6; + LteInt64Filter LteInt64Filter = 7; + + BoolFilter BoolFilter = 8; + RegexFilter RegexFilter = 9; + NullFilter NullFilter = 10; + IPV4RangeFilter IPV4RangeFilter = 11; +} + +message BoolFilter { + BoolFilterOp Op = 1; + repeated Filter Filters = 2; +} + +message Range { + int64 From = 1; + int64 To = 2; +} + +message SearchQuery { + Filter Filter = 1; + Range PaginationRange = 2; + bool Sort = 3; + bool Dedup = 4; + string DedupBy = 5; + string SortBy = 6; + SortOrder SortOrder = 7; +} -- Gitee