diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index ca36e243c..dbf1c0709 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -18,9 +18,10 @@ jobs: steps: - name: Check out code into the Go module directory - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe + - name: Set up Go 1.25 + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c with: go-version: '^1.25' @@ -38,9 +39,7 @@ jobs: sudo apt-get install mingw-w64-x86-64-dev gcc-mingw-w64-x86-64 gcc-mingw-w64 - name: Use Node.js - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e - with: - node-version: 22.19 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e - name: npm install gui run: | diff --git a/.github/workflows/musl.yaml b/.github/workflows/musl.yaml index ff41709c6..30549cba3 100644 --- a/.github/workflows/musl.yaml +++ b/.github/workflows/musl.yaml @@ -18,9 +18,10 @@ jobs: steps: - name: Check out code into the Go module directory - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe + - name: Set up Go 1.25 + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c with: go-version: '^1.25' @@ -42,9 +43,7 @@ jobs: cd .. - name: Use Node.js - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e - with: - node-version: 20 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e - name: npm install gui run: | diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 1caefef81..897461d91 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -9,12 +9,12 @@ jobs: runs-on: windows-2022 steps: - name: Check out code into the Go module directory - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 50 - name: Set up Go 1.25 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe + uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c with: go-version: 1.25 @@ -127,7 +127,7 @@ jobs: cp artifacts/testdata/server/testcases/*.out* artifact_output/server/ - name: StoreBinaries - uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a if: always() with: name: artifact diff --git a/Makefile b/Makefile index 489510e28..fbdd71459 100644 --- a/Makefile +++ b/Makefile @@ -104,9 +104,6 @@ debug_minion: debug_client: dlv debug --init ./scripts/dlv.init --build-flags="-tags 'server_vql extras'" ./bin/ -- client -v --debug --debug_port 6061 -lint: - golangci-lint run - # Do this after fetching the build artifacts with `gh run download ` UpdateCIArtifacts: mv artifact/server/* artifacts/testdata/server/testcases/ diff --git a/accessors/api.go b/accessors/api.go index ce5b461d2..e7693434a 100644 --- a/accessors/api.go +++ b/accessors/api.go @@ -299,7 +299,7 @@ func (self *OSPath) MarshalYAML() (interface{}, error) { json_string := []byte(self.String()) buf := bytes.Buffer{} err := json.Indent(&buf, json_string, " ", " ") - return string(buf.Bytes()), err + return buf.String(), err } // MarshalText is used by the YAML marshaller. We indent the text to diff --git a/accessors/data/data_test.go b/accessors/data/data_test.go index ce2dce091..4d3911e26 100644 --- a/accessors/data/data_test.go +++ b/accessors/data/data_test.go @@ -1,7 +1,7 @@ package data import ( - "io/ioutil" + "io" "testing" "github.com/Velocidex/ordereddict" @@ -18,7 +18,7 @@ func TestAccessorData(t *testing.T) { fd, err := accessor.Open("Hello world") assert.NoError(t, err) - data, err := ioutil.ReadAll(fd) + data, err := io.ReadAll(fd) assert.NoError(t, err) assert.Equal(t, "Hello world", string(data)) @@ -34,7 +34,7 @@ func TestAccessorScope(t *testing.T) { fd, err := accessor.Open("Foobar") assert.NoError(t, err) - data, err := ioutil.ReadAll(fd) + data, err := io.ReadAll(fd) assert.NoError(t, err) assert.Equal(t, "Hello world", string(data)) diff --git a/accessors/ewf/ewf.go b/accessors/ewf/ewf.go index 2896f9bdb..9d26c212d 100644 --- a/accessors/ewf/ewf.go +++ b/accessors/ewf/ewf.go @@ -4,7 +4,6 @@ package ewf import ( "errors" "io" - "os" "github.com/Velocidex/go-ewf/parser" "www.velocidex.com/golang/velociraptor/accessors" @@ -54,9 +53,11 @@ func (self *EWFReader) Read(buff []byte) (int, error) { } func (self *EWFReader) Seek(offset int64, whence int) (int64, error) { - if whence == os.SEEK_SET { + switch whence { + case io.SeekStart: self.offset = offset - } else if whence == os.SEEK_CUR { + + case io.SeekCurrent: self.offset += offset } return self.offset, nil diff --git a/accessors/file/accessor_linux_test.go b/accessors/file/accessor_linux_test.go index 1e8cc574a..9b1652a00 100644 --- a/accessors/file/accessor_linux_test.go +++ b/accessors/file/accessor_linux_test.go @@ -26,7 +26,6 @@ import ( type AccessorLinuxTestSuite struct { suite.Suite - tmpdir string } func (self *AccessorLinuxTestSuite) TestLinuxSymlinks() { diff --git a/accessors/file/accessor_test.go b/accessors/file/accessor_test.go index e49b94d64..55ec63893 100644 --- a/accessors/file/accessor_test.go +++ b/accessors/file/accessor_test.go @@ -43,7 +43,7 @@ func (self *AccessorWindowsTestSuite) TestACL() { scope := vql_subsystem.MakeScope() scope.SetLogger(log.New(os.Stderr, " ", 0)) - accessor, err := accessors.GetAccessor("file", scope) + _, err := accessors.GetAccessor("file", scope) // Permission denied! assert.Error(self.T(), err) @@ -52,7 +52,7 @@ func (self *AccessorWindowsTestSuite) TestACL() { Set(vql_subsystem.ACL_MANAGER_VAR, acl_managers.NullACLManager{})) scope.SetLogger(log.New(os.Stderr, " ", 0)) - accessor, err = accessors.GetAccessor("file", scope) + accessor, err := accessors.GetAccessor("file", scope) assert.NoError(self.T(), err) _, err = accessor.ReadDir("/") diff --git a/accessors/file_store/accessor_test.go b/accessors/file_store/accessor_test.go index 63a2c20d0..587e4e143 100644 --- a/accessors/file_store/accessor_test.go +++ b/accessors/file_store/accessor_test.go @@ -6,7 +6,6 @@ import ( "github.com/stretchr/testify/suite" file_store_accessor "www.velocidex.com/golang/velociraptor/accessors/file_store" - config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/file_store" "www.velocidex.com/golang/velociraptor/file_store/api" "www.velocidex.com/golang/velociraptor/file_store/path_specs" @@ -46,8 +45,6 @@ var ( type FSAccessorTest struct { test_utils.TestSuite - - config_obj *config_proto.Config } func (self *FSAccessorTest) TestCaseInsensitive() { diff --git a/accessors/mount_test.go b/accessors/mount_test.go index e48973463..f039f9dd1 100644 --- a/accessors/mount_test.go +++ b/accessors/mount_test.go @@ -1,7 +1,7 @@ package accessors import ( - "io/ioutil" + "io" "testing" "www.velocidex.com/golang/velociraptor/vtesting/assert" @@ -129,7 +129,7 @@ func TestMountFilesystemAccessor(t *testing.T) { fd, err := mount_fs.Open(path) assert.NoError(t, err) - data, err := ioutil.ReadAll(fd) + data, err := io.ReadAll(fd) assert.NoError(t, err) return string(data) diff --git a/accessors/ntfs/readers/ntfs_reader.go b/accessors/ntfs/readers/ntfs_reader.go index 0927be68d..21d737922 100644 --- a/accessors/ntfs/readers/ntfs_reader.go +++ b/accessors/ntfs/readers/ntfs_reader.go @@ -8,7 +8,6 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" - "www.velocidex.com/golang/go-ntfs/parser" ntfs "www.velocidex.com/golang/go-ntfs/parser" "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/constants" @@ -273,7 +272,7 @@ func getNTFSCache(scope vfilter.Scope, return cache_ctx, nil } -func GetScopeOptions(scope vfilter.Scope) parser.Options { +func GetScopeOptions(scope vfilter.Scope) ntfs.Options { directory_depth := vql_subsystem.GetIntFromRow( scope, scope, constants.NTFS_MAX_DIRECTORY_DEPTH) if directory_depth == 0 { @@ -292,7 +291,7 @@ func GetScopeOptions(scope vfilter.Scope) parser.Options { full_path_resolution := vql_subsystem.GetBoolFromRow( scope, scope, constants.NTFS_DISABLE_FULL_PATH_RESOLUTION) - return parser.Options{ + return ntfs.Options{ MaxDirectoryDepth: int(directory_depth), MaxLinks: int(max_links), IncludeShortNames: include_short_names, diff --git a/accessors/offset/offset.go b/accessors/offset/offset.go index d546c44a7..ed508a022 100644 --- a/accessors/offset/offset.go +++ b/accessors/offset/offset.go @@ -5,7 +5,6 @@ package offset import ( "fmt" "io" - "os" "strconv" "www.velocidex.com/golang/velociraptor/accessors" @@ -43,7 +42,7 @@ func (self *OffsetReader) Close() error { } func (self *OffsetReader) Read(buff []byte) (int, error) { - new_pos, err := self.reader.Seek(self.offset, os.SEEK_SET) + new_pos, err := self.reader.Seek(self.offset, io.SeekStart) if err != nil { return int(new_pos), err } @@ -58,7 +57,7 @@ func (self *OffsetReader) Seek(offset int64, whence int) (int64, error) { // Callers are operating in the offsetted coordinate system so the // real offset should be the offset they asked for plus the base // offset. - if whence == os.SEEK_SET { + if whence == io.SeekStart { offset += self.base_offset } diff --git a/accessors/offset/offset_test.go b/accessors/offset/offset_test.go index 2eae68953..cbf3e7fce 100644 --- a/accessors/offset/offset_test.go +++ b/accessors/offset/offset_test.go @@ -1,8 +1,7 @@ package offset import ( - "io/ioutil" - "os" + "io" "testing" "www.velocidex.com/golang/velociraptor/accessors" @@ -27,13 +26,13 @@ func TestAccessorOffset(t *testing.T) { fd, err := accessor.Open(pathspec.String()) assert.NoError(t, err) - data, err := ioutil.ReadAll(fd) + data, err := io.ReadAll(fd) assert.NoError(t, err) assert.Equal(t, "bit of text", string(data)) // Check that Seeking works - n, err := fd.Seek(3, os.SEEK_SET) + n, err := fd.Seek(3, io.SeekStart) assert.NoError(t, err) assert.Equal(t, int64(3), n) diff --git a/accessors/process/process_address_space_linux.go b/accessors/process/process_address_space_linux.go index 3ecd902c5..84f87fdd7 100644 --- a/accessors/process/process_address_space_linux.go +++ b/accessors/process/process_address_space_linux.go @@ -42,9 +42,7 @@ func (self *ProcessAccessor) OpenWithOSPath( handle: fd, } - for _, r := range ranges { - result.ranges = append(result.ranges, r) - } + result.ranges = append(result.ranges, ranges...) return result, nil } diff --git a/accessors/pst/cache.go b/accessors/pst/cache.go index 0f12130cb..9694f825c 100644 --- a/accessors/pst/cache.go +++ b/accessors/pst/cache.go @@ -50,14 +50,13 @@ func (self *PSTFile) GetPath(id pst.Identifier) string { self.mu.Lock() defer self.mu.Unlock() - res, _ := self.paths[id] + res := self.paths[id] return res } func (self *PSTFile) setPath(parent_id, id pst.Identifier, name string) { - root, _ := self.paths[parent_id] - new_path := path.Join(root, name) - self.paths[id] = new_path + root := self.paths[parent_id] + self.paths[id] = path.Join(root, name) } func (self *PSTFile) walkFolders(folder *pst.Folder) error { diff --git a/accessors/s3/s3_minio.go b/accessors/s3/s3_minio.go index 1912bd541..d83ec973d 100644 --- a/accessors/s3/s3_minio.go +++ b/accessors/s3/s3_minio.go @@ -82,6 +82,7 @@ func (self RawS3SystemAccessor) ReadDirWithOSPath( } if len(path.Components) == 0 { + metricS3OpsListObjects.Inc() resp, err := s3Client.ListBuckets(self.ctx) if err != nil { return nil, err diff --git a/accessors/sparse/sparse.go b/accessors/sparse/sparse.go index 272d1974f..09af9526f 100644 --- a/accessors/sparse/sparse.go +++ b/accessors/sparse/sparse.go @@ -3,7 +3,6 @@ package sparse import ( "fmt" "io" - "os" "sync" "www.velocidex.com/golang/velociraptor/accessors" @@ -63,7 +62,7 @@ func (self *SparseReader) readDistinctPages(buf []byte) (int, error) { buf_end := buf_start + PAGE_SIZE // Repeat the read with a single page at the time. - _, err := self.handle.Seek(self.offset, os.SEEK_SET) + _, err := self.handle.Seek(self.offset, io.SeekStart) if err != nil { return 0, err } @@ -100,7 +99,7 @@ func (self *SparseReader) Read(buf []byte) (int, error) { } } else { // Read memory from process at specified offset. - _, err := self.handle.Seek(self.offset, os.SEEK_SET) + _, err := self.handle.Seek(self.offset, io.SeekStart) if err != nil { return 0, err } diff --git a/accessors/sparse/sparse_test.go b/accessors/sparse/sparse_test.go index c802bfef7..af3b38c34 100644 --- a/accessors/sparse/sparse_test.go +++ b/accessors/sparse/sparse_test.go @@ -1,7 +1,7 @@ package sparse import ( - "io/ioutil" + "io" "testing" "www.velocidex.com/golang/velociraptor/accessors" @@ -26,7 +26,7 @@ func TestAccessorSparse(t *testing.T) { fd, err := accessor.Open(pathspec.String()) assert.NoError(t, err) - data, err := ioutil.ReadAll(fd) + data, err := io.ReadAll(fd) assert.NoError(t, err) assert.Equal(t, "This \x00\x00\x00\x00\x00bit", string(data)) diff --git a/accessors/vhdx/vhdx.go b/accessors/vhdx/vhdx.go index 071784a1e..ea2db0411 100644 --- a/accessors/vhdx/vhdx.go +++ b/accessors/vhdx/vhdx.go @@ -2,7 +2,6 @@ package vhdx import ( "io" - "os" "sync" "www.velocidex.com/golang/velociraptor/accessors" @@ -47,9 +46,10 @@ func (self *VHDXFile) Seek(offset int64, whence int) (int64, error) { self.mu.Lock() defer self.mu.Unlock() - if whence == os.SEEK_SET { + switch whence { + case io.SeekStart: self.offset = offset - } else if whence == os.SEEK_CUR { + case io.SeekCurrent: self.offset += offset } return self.offset, nil diff --git a/accessors/virtual_test.go b/accessors/virtual_test.go index 7010e5107..cb390bd2a 100644 --- a/accessors/virtual_test.go +++ b/accessors/virtual_test.go @@ -2,7 +2,7 @@ package accessors import ( "errors" - "io/ioutil" + "io" "os" "testing" @@ -46,7 +46,7 @@ func TestVirtualFilesystemAccessor(t *testing.T) { fd, err := fs_accessor.Open(path) assert.NoError(t, err) - data, err := ioutil.ReadAll(fd) + data, err := io.ReadAll(fd) assert.NoError(t, err) return string(data) diff --git a/accessors/vmdk/vmdk.go b/accessors/vmdk/vmdk.go index 37929cf7d..1ca8ad55c 100644 --- a/accessors/vmdk/vmdk.go +++ b/accessors/vmdk/vmdk.go @@ -2,7 +2,6 @@ package vmdk import ( "io" - "os" "sync" "www.velocidex.com/golang/velociraptor/accessors" @@ -47,9 +46,10 @@ func (self *VMDKFile) Seek(offset int64, whence int) (int64, error) { self.mu.Lock() defer self.mu.Unlock() - if whence == os.SEEK_SET { + switch whence { + case io.SeekStart: self.offset = offset - } else if whence == os.SEEK_CUR { + case io.SeekCurrent: self.offset += offset } return self.offset, nil diff --git a/accessors/zip/gzip.go b/accessors/zip/gzip.go index ef709ae1e..53842c4fd 100644 --- a/accessors/zip/gzip.go +++ b/accessors/zip/gzip.go @@ -37,7 +37,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "os" "time" @@ -268,7 +267,7 @@ func GetBzip2File(full_path *accessors.OSPath, scope vfilter.Scope) ( zr := bzip2.NewReader(fd) return &SeekableGzip{reader: fd, - gz: ioutil.NopCloser(zr), + gz: io.NopCloser(zr), info: &GzipFileInfo{ _modtime: stat.ModTime(), _name: stat.Name(), diff --git a/accessors/zip/gzip_test.go b/accessors/zip/gzip_test.go index e867f96b3..4c1bd25f5 100644 --- a/accessors/zip/gzip_test.go +++ b/accessors/zip/gzip_test.go @@ -1,7 +1,7 @@ package zip import ( - "io/ioutil" + "io" "log" "os" "path/filepath" @@ -30,7 +30,7 @@ func TestAccessorGzip(t *testing.T) { fd, err := gzip_accessor.Open(abs_path) assert.NoError(t, err) - data, err := ioutil.ReadAll(fd) + data, err := io.ReadAll(fd) assert.NoError(t, err) assert.Equal(t, "hello world\n", string(data)) @@ -49,7 +49,7 @@ func TestAccessorBzip2(t *testing.T) { fd, err := gzip_accessor.Open(abs_path) assert.NoError(t, err) - data, err := ioutil.ReadAll(fd) + data, err := io.ReadAll(fd) assert.NoError(t, err) assert.Equal(t, "goodbye world\n", string(data)) diff --git a/accessors/zip/zip.go b/accessors/zip/zip.go index 3af28a695..909224e65 100644 --- a/accessors/zip/zip.go +++ b/accessors/zip/zip.go @@ -42,7 +42,6 @@ import ( "www.velocidex.com/golang/velociraptor/third_party/zip" "www.velocidex.com/golang/velociraptor/utils" "www.velocidex.com/golang/velociraptor/utils/tempfile" - utils_tempfile "www.velocidex.com/golang/velociraptor/utils/tempfile" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/types" ) @@ -87,7 +86,7 @@ func (self *Tracker) Inc(filename string) { self.mu.Lock() defer self.mu.Unlock() - prev, _ := self.refs[filename] + prev := self.refs[filename] self.refs[filename] = prev + 1 } @@ -596,7 +595,7 @@ func (self *SeekableZip) Close() error { zipAccessorCurrentTmpConversions.Dec() err := os.Remove(self.tmp_file_backing.Name()) - utils_tempfile.RemoveTmpFile(self.tmp_file_backing.Name(), err) + tempfile.RemoveTmpFile(self.tmp_file_backing.Name(), err) } err := self.delegate.Close() @@ -661,7 +660,7 @@ func (self *SeekableZip) createTmpBackup() (err error) { if err != nil { return err } - utils_tempfile.AddTmpFile(self.tmp_file_backing.Name()) + tempfile.AddTmpFile(self.tmp_file_backing.Name()) zipAccessorCurrentTmpConversions.Inc() zipAccessorTotalTmpConversions.Inc() diff --git a/accessors/zip/zip_test.go b/accessors/zip/zip_test.go index f0ea3b94e..fe799e6b1 100644 --- a/accessors/zip/zip_test.go +++ b/accessors/zip/zip_test.go @@ -2,7 +2,7 @@ package zip import ( "fmt" - "io/ioutil" + "io" "log" "os" "path/filepath" @@ -310,7 +310,7 @@ func (self *ZipTestSuite) TestPermissions() { assert.NoError(self.T(), err) defer fd.Close() - data, err := ioutil.ReadAll(fd) + data, err := io.ReadAll(fd) assert.NoError(self.T(), err) zip_scope_pathspec := &accessors.PathSpec{ diff --git a/acls/proto/acl.pb.go b/acls/proto/acl.pb.go index 1a9a2d180..de1bd0482 100644 --- a/acls/proto/acl.pb.go +++ b/acls/proto/acl.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" _ "www.velocidex.com/golang/velociraptor/proto" ) @@ -19,10 +20,7 @@ const ( ) type ApiClientACL struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // if this is set we allow everything - normally only set by // server-server comms. SuperUser bool `protobuf:"varint,21,opt,name=super_user,json=superUser,proto3" json:"super_user,omitempty"` @@ -54,16 +52,16 @@ type ApiClientACL struct { DatastoreAccess bool `protobuf:"varint,18,opt,name=datastore_access,json=datastoreAccess,proto3" json:"datastore_access,omitempty"` // A list of roles in lieu of the permissions above. These will be // interpolated into this ACL object. - Roles []string `protobuf:"bytes,9,rep,name=roles,proto3" json:"roles,omitempty"` + Roles []string `protobuf:"bytes,9,rep,name=roles,proto3" json:"roles,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ApiClientACL) Reset() { *x = ApiClientACL{} - if protoimpl.UnsafeEnabled { - mi := &file_acl_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_acl_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApiClientACL) String() string { @@ -74,7 +72,7 @@ func (*ApiClientACL) ProtoMessage() {} func (x *ApiClientACL) ProtoReflect() protoreflect.Message { mi := &file_acl_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -267,21 +265,18 @@ func (x *ApiClientACL) GetRoles() []string { // A role is a named sets of ACL permissions. A user may possess // multiple roles. type Role struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Permissions *ApiClientACL `protobuf:"bytes,2,opt,name=permissions,proto3" json:"permissions,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Permissions *ApiClientACL `protobuf:"bytes,2,opt,name=permissions,proto3" json:"permissions,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Role) Reset() { *x = Role{} - if protoimpl.UnsafeEnabled { - mi := &file_acl_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_acl_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Role) String() string { @@ -292,7 +287,7 @@ func (*Role) ProtoMessage() {} func (x *Role) ProtoReflect() protoreflect.Message { mi := &file_acl_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -323,98 +318,56 @@ func (x *Role) GetPermissions() *ApiClientACL { var File_acl_proto protoreflect.FileDescriptor -var file_acl_proto_rawDesc = []byte{ - 0x0a, 0x09, 0x61, 0x63, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, - 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf5, 0x07, 0x0a, 0x0c, 0x41, 0x70, 0x69, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x43, 0x4c, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x75, 0x70, - 0x65, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, - 0x75, 0x70, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x2e, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x28, 0x12, 0x26, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, 0x20, 0x61, 0x72, - 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, 0x79, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x52, 0x08, 0x61, 0x6c, 0x6c, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6e, 0x79, 0x5f, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x6e, 0x79, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x58, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x31, 0xe2, 0xfc, 0xe3, 0xc4, - 0x01, 0x2b, 0x12, 0x29, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x71, 0x75, 0x65, 0x75, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x20, 0x74, 0x6f, 0x2e, 0x52, 0x0d, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, - 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x61, 0x73, 0x69, 0x63, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x68, 0x75, 0x6e, 0x74, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x12, - 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x12, - 0x34, 0x0a, 0x16, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x14, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x65, 0x63, 0x76, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x76, 0x65, 0x12, 0x27, 0x0a, - 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x45, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x72, 0x67, 0x5f, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x72, 0x67, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6d, 0x70, 0x65, - 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x0f, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x52, 0x65, 0x61, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x19, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, - 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, - 0x29, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, - 0x6c, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, - 0x22, 0x51, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x0b, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x41, 0x43, 0x4c, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x42, 0x32, 0x5a, 0x30, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, - 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, - 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x6c, - 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_acl_proto_rawDesc = "" + + "\n" + + "\tacl.proto\x12\x05proto\x1a\x14proto/semantic.proto\"\xf5\a\n" + + "\fApiClientACL\x12\x1d\n" + + "\n" + + "super_user\x18\x15 \x01(\bR\tsuperUser\x12K\n" + + "\tall_query\x18\x01 \x01(\bB.\xe2\xfc\xe3\xc4\x01(\x12&Provides arbitrary query level access.R\ballQuery\x12\x1b\n" + + "\tany_query\x18\n" + + " \x01(\bR\banyQuery\x12X\n" + + "\x0epublish_queues\x18\x02 \x03(\tB1\xe2\xfc\xe3\xc4\x01+\x12)List of queues the client can publish to.R\rpublishQueues\x12!\n" + + "\fread_results\x18\x03 \x01(\bR\vreadResults\x12#\n" + + "\rlabel_clients\x18\v \x01(\bR\flabelClients\x12%\n" + + "\x0ecollect_client\x18\x04 \x01(\bR\rcollectClient\x12#\n" + + "\rcollect_basic\x18\x18 \x01(\bR\fcollectBasic\x12\x1d\n" + + "\n" + + "start_hunt\x18\x16 \x01(\bR\tstartHunt\x12%\n" + + "\x0ecollect_server\x18\x05 \x01(\bR\rcollectServer\x12'\n" + + "\x0fartifact_writer\x18\x06 \x01(\bR\x0eartifactWriter\x124\n" + + "\x16server_artifact_writer\x18\x0f \x01(\bR\x14serverArtifactWriter\x12\x16\n" + + "\x06execve\x18\a \x01(\bR\x06execve\x12'\n" + + "\x0fnotebook_editor\x18\b \x01(\bR\x0enotebookEditor\x12\x1b\n" + + "\torg_admin\x18\x13 \x01(\bR\borgAdmin\x12$\n" + + "\rimpersonation\x18\x14 \x01(\bR\rimpersonation\x12!\n" + + "\fserver_admin\x18\f \x01(\bR\vserverAdmin\x12'\n" + + "\x0ffilesystem_read\x18\r \x01(\bR\x0efilesystemRead\x12)\n" + + "\x10filesystem_write\x18\x0e \x01(\bR\x0ffilesystemWrite\x12\x18\n" + + "\anetwork\x18\x19 \x01(\bR\anetwork\x12#\n" + + "\rmachine_state\x18\x10 \x01(\bR\fmachineState\x12'\n" + + "\x0fprepare_results\x18\x11 \x01(\bR\x0eprepareResults\x12%\n" + + "\x0edelete_results\x18\x17 \x01(\bR\rdeleteResults\x12)\n" + + "\x10datastore_access\x18\x12 \x01(\bR\x0fdatastoreAccess\x12\x14\n" + + "\x05roles\x18\t \x03(\tR\x05roles\"Q\n" + + "\x04Role\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x125\n" + + "\vpermissions\x18\x02 \x01(\v2\x13.proto.ApiClientACLR\vpermissionsB2Z0www.velocidex.com/golang/velociraptor/acls/protob\x06proto3" var ( file_acl_proto_rawDescOnce sync.Once - file_acl_proto_rawDescData = file_acl_proto_rawDesc + file_acl_proto_rawDescData []byte ) func file_acl_proto_rawDescGZIP() []byte { file_acl_proto_rawDescOnce.Do(func() { - file_acl_proto_rawDescData = protoimpl.X.CompressGZIP(file_acl_proto_rawDescData) + file_acl_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_acl_proto_rawDesc), len(file_acl_proto_rawDesc))) }) return file_acl_proto_rawDescData } var file_acl_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_acl_proto_goTypes = []interface{}{ +var file_acl_proto_goTypes = []any{ (*ApiClientACL)(nil), // 0: proto.ApiClientACL (*Role)(nil), // 1: proto.Role } @@ -432,37 +385,11 @@ func file_acl_proto_init() { if File_acl_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_acl_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiClientACL); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_acl_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Role); 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_acl_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_acl_proto_rawDesc), len(file_acl_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, @@ -473,7 +400,6 @@ func file_acl_proto_init() { MessageInfos: file_acl_proto_msgTypes, }.Build() File_acl_proto = out.File - file_acl_proto_rawDesc = nil file_acl_proto_goTypes = nil file_acl_proto_depIdxs = nil } diff --git a/actions/events_test.go b/actions/events_test.go index bcbce4faf..ca82bce38 100644 --- a/actions/events_test.go +++ b/actions/events_test.go @@ -3,7 +3,7 @@ package actions_test import ( "context" "fmt" - "io/ioutil" + "io" "os" "sync" "testing" @@ -279,7 +279,7 @@ func (self *EventsTestSuite) TestEventTableUpdate() { fd, err := os.Open(self.writeback) assert.NoError(self.T(), err) - data, err := ioutil.ReadAll(fd) + data, err := io.ReadAll(fd) assert.NoError(self.T(), err) // Make sure the event queries end up in the writeback file diff --git a/actions/proto/transport.pb.go b/actions/proto/transport.pb.go index 42b9faa4d..71f9aba3e 100644 --- a/actions/proto/transport.pb.go +++ b/actions/proto/transport.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" _ "www.velocidex.com/golang/velociraptor/proto" ) @@ -19,10 +20,7 @@ const ( ) type Range struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Range offset in the underlying file. FileOffset int64 `protobuf:"varint,1,opt,name=file_offset,json=fileOffset,proto3" json:"file_offset,omitempty"` // Range offset in the underlying file @@ -31,16 +29,16 @@ type Range struct { // if the range is sparse and has no underlying storage. FileLength int64 `protobuf:"varint,3,opt,name=file_length,json=fileLength,proto3" json:"file_length,omitempty"` // Length of this range. - Length int64 `protobuf:"varint,4,opt,name=length,proto3" json:"length,omitempty"` + Length int64 `protobuf:"varint,4,opt,name=length,proto3" json:"length,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Range) Reset() { *x = Range{} - if protoimpl.UnsafeEnabled { - mi := &file_transport_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_transport_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Range) String() string { @@ -51,7 +49,7 @@ func (*Range) ProtoMessage() {} func (x *Range) ProtoReflect() protoreflect.Message { mi := &file_transport_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -95,20 +93,17 @@ func (x *Range) GetLength() int64 { } type Index struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Ranges []*Range `protobuf:"bytes,1,rep,name=ranges,proto3" json:"ranges,omitempty"` unknownFields protoimpl.UnknownFields - - Ranges []*Range `protobuf:"bytes,1,rep,name=ranges,proto3" json:"ranges,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Index) Reset() { *x = Index{} - if protoimpl.UnsafeEnabled { - mi := &file_transport_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_transport_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Index) String() string { @@ -119,7 +114,7 @@ func (*Index) ProtoMessage() {} func (x *Index) ProtoReflect() protoreflect.Message { mi := &file_transport_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -144,22 +139,19 @@ func (x *Index) GetRanges() []*Range { // A message to encode a filesystem path (maybe for raw access) // Next field: 15 type PathSpec struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + Components []string `protobuf:"bytes,4,rep,name=components,proto3" json:"components,omitempty"` + Accessor string `protobuf:"bytes,3,opt,name=accessor,proto3" json:"accessor,omitempty"` unknownFields protoimpl.UnknownFields - - Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` - Components []string `protobuf:"bytes,4,rep,name=components,proto3" json:"components,omitempty"` - Accessor string `protobuf:"bytes,3,opt,name=accessor,proto3" json:"accessor,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PathSpec) Reset() { *x = PathSpec{} - if protoimpl.UnsafeEnabled { - mi := &file_transport_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_transport_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PathSpec) String() string { @@ -170,7 +162,7 @@ func (*PathSpec) ProtoMessage() {} func (x *PathSpec) ProtoReflect() protoreflect.Message { mi := &file_transport_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -212,18 +204,15 @@ func (x *PathSpec) GetAccessor() string { // policies (since the filestore is just a directory on disk with // regular files and timestamps). type FileBuffer struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pathspec *PathSpec `protobuf:"bytes,1,opt,name=pathspec,proto3" json:"pathspec,omitempty"` - Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Pathspec *PathSpec `protobuf:"bytes,1,opt,name=pathspec,proto3" json:"pathspec,omitempty"` + Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` // Expected size of file. Size uint64 `protobuf:"varint,7,opt,name=size,proto3" json:"size,omitempty"` StoredSize uint64 `protobuf:"varint,8,opt,name=stored_size,json=storedSize,proto3" json:"stored_size,omitempty"` IsSparse bool `protobuf:"varint,9,opt,name=is_sparse,json=isSparse,proto3" json:"is_sparse,omitempty"` Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - // If this is > 0 then the data field contains already compressed + // If this is > 0 then then data field contains already compressed // data. The length of the uncompressed data will be given here. UncompressedLength uint64 `protobuf:"varint,17,opt,name=uncompressed_length,json=uncompressedLength,proto3" json:"uncompressed_length,omitempty"` // For uploaders that do not transfer the bulk data inside the @@ -246,16 +235,16 @@ type FileBuffer struct { // and not per query so this number is unique across all the // queries in the collection. It amounts to the row id on the // collections uploads result set. - UploadNumber int64 `protobuf:"varint,15,opt,name=upload_number,json=uploadNumber,proto3" json:"upload_number,omitempty"` + UploadNumber int64 `protobuf:"varint,15,opt,name=upload_number,json=uploadNumber,proto3" json:"upload_number,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FileBuffer) Reset() { *x = FileBuffer{} - if protoimpl.UnsafeEnabled { - mi := &file_transport_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_transport_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FileBuffer) String() string { @@ -266,7 +255,7 @@ func (*FileBuffer) ProtoMessage() {} func (x *FileBuffer) ProtoReflect() protoreflect.Message { mi := &file_transport_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -401,21 +390,18 @@ func (x *FileBuffer) GetUploadNumber() int64 { } type ForemanCheckin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - LastHuntTimestamp uint64 `protobuf:"varint,1,opt,name=last_hunt_timestamp,json=lastHuntTimestamp,proto3" json:"last_hunt_timestamp,omitempty"` - LastEventTableVersion uint64 `protobuf:"varint,2,opt,name=last_event_table_version,json=lastEventTableVersion,proto3" json:"last_event_table_version,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + LastHuntTimestamp uint64 `protobuf:"varint,1,opt,name=last_hunt_timestamp,json=lastHuntTimestamp,proto3" json:"last_hunt_timestamp,omitempty"` + LastEventTableVersion uint64 `protobuf:"varint,2,opt,name=last_event_table_version,json=lastEventTableVersion,proto3" json:"last_event_table_version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ForemanCheckin) Reset() { *x = ForemanCheckin{} - if protoimpl.UnsafeEnabled { - mi := &file_transport_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_transport_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ForemanCheckin) String() string { @@ -426,7 +412,7 @@ func (*ForemanCheckin) ProtoMessage() {} func (x *ForemanCheckin) ProtoReflect() protoreflect.Message { mi := &file_transport_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -464,33 +450,30 @@ func (x *ForemanCheckin) GetLastEventTableVersion() uint64 { // allow the upload to resume, i.e. reflect the uploader interface // args. type UploadTransaction struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` - Accessor string `protobuf:"bytes,2,opt,name=accessor,proto3" json:"accessor,omitempty"` - StoreAsName string `protobuf:"bytes,3,opt,name=store_as_name,json=storeAsName,proto3" json:"store_as_name,omitempty"` - Components []string `protobuf:"bytes,13,rep,name=components,proto3" json:"components,omitempty"` - ExpectedSize int64 `protobuf:"varint,4,opt,name=expected_size,json=expectedSize,proto3" json:"expected_size,omitempty"` - Mtime int64 `protobuf:"varint,5,opt,name=mtime,proto3" json:"mtime,omitempty"` - Atime int64 `protobuf:"varint,6,opt,name=atime,proto3" json:"atime,omitempty"` - Ctime int64 `protobuf:"varint,7,opt,name=ctime,proto3" json:"ctime,omitempty"` - Btime int64 `protobuf:"varint,8,opt,name=btime,proto3" json:"btime,omitempty"` - Mode int64 `protobuf:"varint,9,opt,name=mode,proto3" json:"mode,omitempty"` - StartOffset int64 `protobuf:"varint,10,opt,name=start_offset,json=startOffset,proto3" json:"start_offset,omitempty"` - UploadId int64 `protobuf:"varint,11,opt,name=upload_id,json=uploadId,proto3" json:"upload_id,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` + Accessor string `protobuf:"bytes,2,opt,name=accessor,proto3" json:"accessor,omitempty"` + StoreAsName string `protobuf:"bytes,3,opt,name=store_as_name,json=storeAsName,proto3" json:"store_as_name,omitempty"` + Components []string `protobuf:"bytes,13,rep,name=components,proto3" json:"components,omitempty"` + ExpectedSize int64 `protobuf:"varint,4,opt,name=expected_size,json=expectedSize,proto3" json:"expected_size,omitempty"` + Mtime int64 `protobuf:"varint,5,opt,name=mtime,proto3" json:"mtime,omitempty"` + Atime int64 `protobuf:"varint,6,opt,name=atime,proto3" json:"atime,omitempty"` + Ctime int64 `protobuf:"varint,7,opt,name=ctime,proto3" json:"ctime,omitempty"` + Btime int64 `protobuf:"varint,8,opt,name=btime,proto3" json:"btime,omitempty"` + Mode int64 `protobuf:"varint,9,opt,name=mode,proto3" json:"mode,omitempty"` + StartOffset int64 `protobuf:"varint,10,opt,name=start_offset,json=startOffset,proto3" json:"start_offset,omitempty"` + UploadId int64 `protobuf:"varint,11,opt,name=upload_id,json=uploadId,proto3" json:"upload_id,omitempty"` // A JSON object that represents the result of the upload - Response string `protobuf:"bytes,12,opt,name=response,proto3" json:"response,omitempty"` + Response string `protobuf:"bytes,12,opt,name=response,proto3" json:"response,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UploadTransaction) Reset() { *x = UploadTransaction{} - if protoimpl.UnsafeEnabled { - mi := &file_transport_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_transport_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UploadTransaction) String() string { @@ -501,7 +484,7 @@ func (*UploadTransaction) ProtoMessage() {} func (x *UploadTransaction) ProtoReflect() protoreflect.Message { mi := &file_transport_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -609,124 +592,81 @@ func (x *UploadTransaction) GetResponse() string { var File_transport_proto protoreflect.FileDescriptor -var file_transport_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8a, - 0x01, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, - 0x69, 0x6c, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x2d, 0x0a, 0x05, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xfb, 0x01, 0x0a, 0x08, 0x50, - 0x61, 0x74, 0x68, 0x53, 0x70, 0x65, 0x63, 0x12, 0x81, 0x01, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x6d, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x67, 0x12, 0x65, - 0x54, 0x68, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, - 0x72, 0x65, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x69, 0x74, 0x73, 0x20, 0x6f, 0x77, 0x6e, - 0x20, 0x77, 0x61, 0x79, 0x2e, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x08, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x29, 0x12, 0x27, 0x54, 0x68, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x72, - 0x69, 0x65, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x08, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x22, 0x9e, 0x04, 0x0a, 0x0a, 0x46, 0x69, 0x6c, - 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, - 0x73, 0x70, 0x65, 0x63, 0x12, 0x41, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x29, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x23, 0x12, 0x21, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x69, 0x73, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x69, 0x73, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, - 0x13, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x75, 0x6e, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1f, - 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, - 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6f, 0x66, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x65, 0x6f, 0x66, 0x12, 0x22, 0x0a, 0x05, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, - 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, - 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x62, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x62, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x79, 0x0a, 0x0e, 0x46, 0x6f, 0x72, - 0x65, 0x6d, 0x61, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x75, - 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x37, 0x0a, 0x18, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6c, - 0x61, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xfc, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, - 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, - 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x41, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x61, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x62, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x74, - 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x35, 0x5a, 0x33, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, - 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, - 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} +const file_transport_proto_rawDesc = "" + + "\n" + + "\x0ftransport.proto\x12\x05proto\x1a\x14proto/semantic.proto\"\x8a\x01\n" + + "\x05Range\x12\x1f\n" + + "\vfile_offset\x18\x01 \x01(\x03R\n" + + "fileOffset\x12'\n" + + "\x0foriginal_offset\x18\x02 \x01(\x03R\x0eoriginalOffset\x12\x1f\n" + + "\vfile_length\x18\x03 \x01(\x03R\n" + + "fileLength\x12\x16\n" + + "\x06length\x18\x04 \x01(\x03R\x06length\"-\n" + + "\x05Index\x12$\n" + + "\x06ranges\x18\x01 \x03(\v2\f.proto.RangeR\x06ranges\"\xfb\x01\n" + + "\bPathSpec\x12\x81\x01\n" + + "\x04path\x18\x02 \x01(\tBm\xe2\xfc\xe3\xc4\x01g\x12eThe path passed to the Filesystem accessor. This value is interpreted by the accessor in its own way.R\x04path\x12\x1e\n" + + "\n" + + "components\x18\x04 \x03(\tR\n" + + "components\x12K\n" + + "\baccessor\x18\x03 \x01(\tB/\xe2\xfc\xe3\xc4\x01)\x12'The accessor used to retrieve the file.R\baccessor\"\x9e\x04\n" + + "\n" + + "FileBuffer\x12+\n" + + "\bpathspec\x18\x01 \x01(\v2\x0f.proto.PathSpecR\bpathspec\x12A\n" + + "\x06offset\x18\x02 \x01(\x04B)\xe2\xfc\xe3\xc4\x01#\x12!Offset of the buffer in the file.R\x06offset\x12\x12\n" + + "\x04size\x18\a \x01(\x04R\x04size\x12\x1f\n" + + "\vstored_size\x18\b \x01(\x04R\n" + + "storedSize\x12\x1b\n" + + "\tis_sparse\x18\t \x01(\bR\bisSparse\x12\x12\n" + + "\x04data\x18\x03 \x01(\fR\x04data\x12/\n" + + "\x13uncompressed_length\x18\x11 \x01(\x04R\x12uncompressedLength\x12\x1f\n" + + "\vdata_length\x18\x10 \x01(\x04R\n" + + "dataLength\x12\x17\n" + + "\aflow_id\x18\x04 \x01(\tR\x06flowId\x12\x10\n" + + "\x03eof\x18\x05 \x01(\bR\x03eof\x12\"\n" + + "\x05index\x18\x06 \x01(\v2\f.proto.IndexR\x05index\x12\x14\n" + + "\x05mtime\x18\n" + + " \x01(\x03R\x05mtime\x12\x14\n" + + "\x05atime\x18\v \x01(\x03R\x05atime\x12\x14\n" + + "\x05ctime\x18\f \x01(\x03R\x05ctime\x12\x14\n" + + "\x05btime\x18\r \x01(\x03R\x05btime\x12\x1c\n" + + "\treference\x18\x0e \x01(\tR\treference\x12#\n" + + "\rupload_number\x18\x0f \x01(\x03R\fuploadNumber\"y\n" + + "\x0eForemanCheckin\x12.\n" + + "\x13last_hunt_timestamp\x18\x01 \x01(\x04R\x11lastHuntTimestamp\x127\n" + + "\x18last_event_table_version\x18\x02 \x01(\x04R\x15lastEventTableVersion\"\xfc\x02\n" + + "\x11UploadTransaction\x12\x1a\n" + + "\bfilename\x18\x01 \x01(\tR\bfilename\x12\x1a\n" + + "\baccessor\x18\x02 \x01(\tR\baccessor\x12\"\n" + + "\rstore_as_name\x18\x03 \x01(\tR\vstoreAsName\x12\x1e\n" + + "\n" + + "components\x18\r \x03(\tR\n" + + "components\x12#\n" + + "\rexpected_size\x18\x04 \x01(\x03R\fexpectedSize\x12\x14\n" + + "\x05mtime\x18\x05 \x01(\x03R\x05mtime\x12\x14\n" + + "\x05atime\x18\x06 \x01(\x03R\x05atime\x12\x14\n" + + "\x05ctime\x18\a \x01(\x03R\x05ctime\x12\x14\n" + + "\x05btime\x18\b \x01(\x03R\x05btime\x12\x12\n" + + "\x04mode\x18\t \x01(\x03R\x04mode\x12!\n" + + "\fstart_offset\x18\n" + + " \x01(\x03R\vstartOffset\x12\x1b\n" + + "\tupload_id\x18\v \x01(\x03R\buploadId\x12\x1a\n" + + "\bresponse\x18\f \x01(\tR\bresponseB5Z3www.velocidex.com/golang/velociraptor/actions/protob\x06proto3" var ( file_transport_proto_rawDescOnce sync.Once - file_transport_proto_rawDescData = file_transport_proto_rawDesc + file_transport_proto_rawDescData []byte ) func file_transport_proto_rawDescGZIP() []byte { file_transport_proto_rawDescOnce.Do(func() { - file_transport_proto_rawDescData = protoimpl.X.CompressGZIP(file_transport_proto_rawDescData) + file_transport_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_transport_proto_rawDesc), len(file_transport_proto_rawDesc))) }) return file_transport_proto_rawDescData } var file_transport_proto_msgTypes = make([]protoimpl.MessageInfo, 6) -var file_transport_proto_goTypes = []interface{}{ +var file_transport_proto_goTypes = []any{ (*Range)(nil), // 0: proto.Range (*Index)(nil), // 1: proto.Index (*PathSpec)(nil), // 2: proto.PathSpec @@ -750,85 +690,11 @@ func file_transport_proto_init() { if File_transport_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_transport_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Range); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_transport_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Index); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_transport_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PathSpec); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_transport_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileBuffer); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_transport_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForemanCheckin); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_transport_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UploadTransaction); 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_transport_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_transport_proto_rawDesc), len(file_transport_proto_rawDesc)), NumEnums: 0, NumMessages: 6, NumExtensions: 0, @@ -839,7 +705,6 @@ func file_transport_proto_init() { MessageInfos: file_transport_proto_msgTypes, }.Build() File_transport_proto = out.File - file_transport_proto_rawDesc = nil file_transport_proto_goTypes = nil file_transport_proto_depIdxs = nil } diff --git a/actions/proto/vql.pb.go b/actions/proto/vql.pb.go index 1747b077e..61dcb8e24 100644 --- a/actions/proto/vql.pb.go +++ b/actions/proto/vql.pb.go @@ -10,6 +10,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto "www.velocidex.com/golang/velociraptor/artifacts/proto" _ "www.velocidex.com/golang/velociraptor/proto" ) @@ -22,23 +23,20 @@ const ( ) type VQLRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The obfuscated name of the artifact this query came from. Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // The compiled VQL query to evaluate on the endpoint. - VQL string `protobuf:"bytes,1,opt,name=VQL,proto3" json:"VQL,omitempty"` + VQL string `protobuf:"bytes,1,opt,name=VQL,proto3" json:"VQL,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *VQLRequest) Reset() { *x = VQLRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vql_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vql_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VQLRequest) String() string { @@ -49,7 +47,7 @@ func (*VQLRequest) ProtoMessage() {} func (x *VQLRequest) ProtoReflect() protoreflect.Message { mi := &file_vql_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -79,22 +77,19 @@ func (x *VQLRequest) GetVQL() string { } type VQLEnv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` - Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` + sizeCache protoimpl.SizeCache } func (x *VQLEnv) Reset() { *x = VQLEnv{} - if protoimpl.UnsafeEnabled { - mi := &file_vql_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vql_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VQLEnv) String() string { @@ -105,7 +100,7 @@ func (*VQLEnv) ProtoMessage() {} func (x *VQLEnv) ProtoReflect() protoreflect.Message { mi := &file_vql_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -144,10 +139,7 @@ func (x *VQLEnv) GetComment() string { // This is the most common type of message - it specifies a query to // run on the endpoint. type VQLCollectorArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Number of this request compared to the entire collection. QueryId int64 `protobuf:"varint,32,opt,name=query_id,json=queryId,proto3" json:"query_id,omitempty"` TotalQueries int64 `protobuf:"varint,33,opt,name=total_queries,json=totalQueries,proto3" json:"total_queries,omitempty"` @@ -184,16 +176,16 @@ type VQLCollectorArgs struct { Heartbeat uint64 `protobuf:"varint,27,opt,name=heartbeat,proto3" json:"heartbeat,omitempty"` Tools []string `protobuf:"bytes,26,rep,name=tools,proto3" json:"tools,omitempty"` // Used only for API based calls - OrgId string `protobuf:"bytes,35,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + OrgId string `protobuf:"bytes,35,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *VQLCollectorArgs) Reset() { *x = VQLCollectorArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_vql_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vql_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VQLCollectorArgs) String() string { @@ -204,7 +196,7 @@ func (*VQLCollectorArgs) ProtoMessage() {} func (x *VQLCollectorArgs) ProtoReflect() protoreflect.Message { mi := &file_vql_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -360,21 +352,18 @@ func (x *VQLCollectorArgs) GetOrgId() string { } type VQLTypeMap struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Column string `protobuf:"bytes,1,opt,name=column,proto3" json:"column,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` unknownFields protoimpl.UnknownFields - - Column string `protobuf:"bytes,1,opt,name=column,proto3" json:"column,omitempty"` - Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + sizeCache protoimpl.SizeCache } func (x *VQLTypeMap) Reset() { *x = VQLTypeMap{} - if protoimpl.UnsafeEnabled { - mi := &file_vql_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vql_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VQLTypeMap) String() string { @@ -385,7 +374,7 @@ func (*VQLTypeMap) ProtoMessage() {} func (x *VQLTypeMap) ProtoReflect() protoreflect.Message { mi := &file_vql_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -415,10 +404,7 @@ func (x *VQLTypeMap) GetType() string { } type VQLResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // DEPRECATED: Response is encoded in a json array of rows. Response string `protobuf:"bytes,1,opt,name=Response,proto3" json:"Response,omitempty"` // Response is encoded as line delimited JSON. @@ -441,16 +427,16 @@ type VQLResponse struct { QueryStartRow uint64 `protobuf:"varint,11,opt,name=query_start_row,json=queryStartRow,proto3" json:"query_start_row,omitempty"` Log string `protobuf:"bytes,9,opt,name=log,proto3" json:"log,omitempty"` // Used only for server-server comms - OrgId string `protobuf:"bytes,12,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + OrgId string `protobuf:"bytes,12,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *VQLResponse) Reset() { *x = VQLResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vql_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vql_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VQLResponse) String() string { @@ -461,7 +447,7 @@ func (*VQLResponse) ProtoMessage() {} func (x *VQLResponse) ProtoReflect() protoreflect.Message { mi := &file_vql_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -586,20 +572,17 @@ func (x *VQLResponse) GetOrgId() string { // GRR APIs. When we re-implement the API plugins, refactor this into // a more sane structure. type User struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` unknownFields protoimpl.UnknownFields - - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` + sizeCache protoimpl.SizeCache } func (x *User) Reset() { *x = User{} - if protoimpl.UnsafeEnabled { - mi := &file_vql_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vql_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *User) String() string { @@ -610,7 +593,7 @@ func (*User) ProtoMessage() {} func (x *User) ProtoReflect() protoreflect.Message { mi := &file_vql_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -633,21 +616,18 @@ func (x *User) GetUsername() string { } type VQLEventTable struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Event []*VQLCollectorArgs `protobuf:"bytes,1,rep,name=event,proto3" json:"event,omitempty"` + Version uint64 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` unknownFields protoimpl.UnknownFields - - Event []*VQLCollectorArgs `protobuf:"bytes,1,rep,name=event,proto3" json:"event,omitempty"` - Version uint64 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + sizeCache protoimpl.SizeCache } func (x *VQLEventTable) Reset() { *x = VQLEventTable{} - if protoimpl.UnsafeEnabled { - mi := &file_vql_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vql_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VQLEventTable) String() string { @@ -658,7 +638,7 @@ func (*VQLEventTable) ProtoMessage() {} func (x *VQLEventTable) ProtoReflect() protoreflect.Message { mi := &file_vql_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -688,27 +668,24 @@ func (x *VQLEventTable) GetVersion() uint64 { } type ClientInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - Hostname string `protobuf:"bytes,3,opt,name=hostname,proto3" json:"hostname,omitempty"` - Fqdn string `protobuf:"bytes,4,opt,name=fqdn,proto3" json:"fqdn,omitempty"` - System string `protobuf:"bytes,5,opt,name=system,proto3" json:"system,omitempty"` - Release string `protobuf:"bytes,6,opt,name=release,proto3" json:"release,omitempty"` - Architecture string `protobuf:"bytes,7,opt,name=architecture,proto3" json:"architecture,omitempty"` - IpAddress string `protobuf:"bytes,10,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` - Ping uint64 `protobuf:"varint,11,opt,name=ping,proto3" json:"ping,omitempty"` - PingTime string `protobuf:"bytes,19,opt,name=ping_time,json=pingTime,proto3" json:"ping_time,omitempty"` - ClientVersion string `protobuf:"bytes,12,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"` - ClientName string `protobuf:"bytes,13,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"` - FirstSeenAt uint64 `protobuf:"varint,20,opt,name=first_seen_at,json=firstSeenAt,proto3" json:"first_seen_at,omitempty"` - BuildTime string `protobuf:"bytes,24,opt,name=build_time,json=buildTime,proto3" json:"build_time,omitempty"` - BuildUrl string `protobuf:"bytes,25,opt,name=build_url,json=buildUrl,proto3" json:"build_url,omitempty"` - InstallTime uint64 `protobuf:"varint,26,opt,name=install_time,json=installTime,proto3" json:"install_time,omitempty"` - Labels []string `protobuf:"bytes,15,rep,name=labels,proto3" json:"labels,omitempty"` - MacAddresses []string `protobuf:"bytes,22,rep,name=mac_addresses,json=macAddresses,proto3" json:"mac_addresses,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + Hostname string `protobuf:"bytes,3,opt,name=hostname,proto3" json:"hostname,omitempty"` + Fqdn string `protobuf:"bytes,4,opt,name=fqdn,proto3" json:"fqdn,omitempty"` + System string `protobuf:"bytes,5,opt,name=system,proto3" json:"system,omitempty"` + Release string `protobuf:"bytes,6,opt,name=release,proto3" json:"release,omitempty"` + Architecture string `protobuf:"bytes,7,opt,name=architecture,proto3" json:"architecture,omitempty"` + IpAddress string `protobuf:"bytes,10,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` + Ping uint64 `protobuf:"varint,11,opt,name=ping,proto3" json:"ping,omitempty"` + PingTime string `protobuf:"bytes,19,opt,name=ping_time,json=pingTime,proto3" json:"ping_time,omitempty"` + ClientVersion string `protobuf:"bytes,12,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"` + ClientName string `protobuf:"bytes,13,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"` + FirstSeenAt uint64 `protobuf:"varint,20,opt,name=first_seen_at,json=firstSeenAt,proto3" json:"first_seen_at,omitempty"` + BuildTime string `protobuf:"bytes,24,opt,name=build_time,json=buildTime,proto3" json:"build_time,omitempty"` + BuildUrl string `protobuf:"bytes,25,opt,name=build_url,json=buildUrl,proto3" json:"build_url,omitempty"` + InstallTime uint64 `protobuf:"varint,26,opt,name=install_time,json=installTime,proto3" json:"install_time,omitempty"` + Labels []string `protobuf:"bytes,15,rep,name=labels,proto3" json:"labels,omitempty"` + MacAddresses []string `protobuf:"bytes,22,rep,name=mac_addresses,json=macAddresses,proto3" json:"mac_addresses,omitempty"` // A hint if tasks are available. This does not have to be // accurate - checking the task queue will yield the correct // tasks. @@ -722,19 +699,19 @@ type ClientInfo struct { LabelsTimestamp uint64 `protobuf:"varint,23,opt,name=labels_timestamp,json=labelsTimestamp,proto3" json:"labels_timestamp,omitempty"` // A List of flows that are currently in flight and their last // update epoch time. - InFlightFlows map[string]int64 `protobuf:"bytes,28,rep,name=in_flight_flows,json=inFlightFlows,proto3" json:"in_flight_flows,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + InFlightFlows map[string]int64 `protobuf:"bytes,28,rep,name=in_flight_flows,json=inFlightFlows,proto3" json:"in_flight_flows,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // A list of indexed metadata fields. These are not all metadata // fields, only the ones that are important enough to be indexed. - Metadata map[string]string `protobuf:"bytes,29,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Metadata map[string]string `protobuf:"bytes,29,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ClientInfo) Reset() { *x = ClientInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_vql_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vql_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClientInfo) String() string { @@ -745,7 +722,7 @@ func (*ClientInfo) ProtoMessage() {} func (x *ClientInfo) ProtoReflect() protoreflect.Message { mi := &file_vql_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -937,280 +914,120 @@ func (x *ClientInfo) GetMetadata() map[string]string { var File_vql_proto protoreflect.FileDescriptor -var file_vql_proto_rawDesc = []byte{ - 0x0a, 0x09, 0x76, 0x71, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, - 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x32, 0x0a, 0x0a, 0x56, 0x51, 0x4c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x51, - 0x4c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x56, 0x51, 0x4c, 0x22, 0x4a, 0x0a, 0x06, - 0x56, 0x51, 0x4c, 0x45, 0x6e, 0x76, 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, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9e, 0x0b, 0x0a, 0x10, 0x56, 0x51, 0x4c, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x22, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, - 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, - 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x2f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x26, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, - 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x5c, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, - 0x4c, 0x45, 0x6e, 0x76, 0x42, 0x3b, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x35, 0x12, 0x33, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x2e, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x5a, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, - 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x31, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2b, - 0x12, 0x29, 0x54, 0x68, 0x65, 0x20, 0x56, 0x51, 0x4c, 0x20, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x6f, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x05, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x9d, 0x01, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x83, 0x01, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x7d, 0x12, 0x62, 0x54, - 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, - 0x70, 0x65, 0x72, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x20, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x61, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, - 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, - 0x2e, 0x22, 0x11, 0x4d, 0x61, 0x78, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, - 0x70, 0x61, 0x72, 0x74, 0x32, 0x04, 0x31, 0x30, 0x30, 0x30, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x52, - 0x6f, 0x77, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x10, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0xcb, 0x01, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x42, 0xaf, 0x01, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0xa8, 0x01, 0x12, 0x7d, - 0x46, 0x6f, 0x72, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, - 0x20, 0x77, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, - 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x72, 0x65, 0x61, - 0x6c, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x2e, 0x22, 0x23, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x74, 0x61, 0x6b, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x6f, 0x6e, - 0x67, 0x2e, 0x32, 0x02, 0x31, 0x30, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x57, 0x61, 0x69, 0x74, 0x12, - 0xc8, 0x01, 0x0a, 0x0e, 0x6f, 0x70, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x42, 0xa1, 0x01, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x9a, 0x01, 0x12, 0x97, 0x01, 0x41, 0x6e, 0x20, 0x4f, 0x70, 0x20, 0x69, 0x73, 0x20, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x61, 0x72, - 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, 0x79, 0x20, 0x75, 0x6e, 0x69, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x73, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, - 0x56, 0x51, 0x4c, 0x20, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x6f, 0x70, 0x73, 0x20, 0x74, 0x6f, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x61, 0x73, 0x20, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x70, 0x72, 0x69, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x0c, 0x6f, 0x70, - 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, - 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x63, - 0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6f, 0x70, 0x73, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x69, 0x6f, 0x70, - 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x12, 0x6e, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x3f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x39, 0x12, 0x37, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x74, 0x6f, - 0x20, 0x68, 0x65, 0x6c, 0x70, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x73, 0x12, 0x44, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x19, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x2a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x24, 0x12, 0x22, 0x4d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x52, 0x07, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, - 0x62, 0x65, 0x61, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x4b, 0x0a, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x1a, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x35, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2f, 0x12, 0x2d, 0x41, 0x20, - 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x20, 0x77, 0x65, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, - 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x56, 0x51, 0x4c, 0x2e, 0x52, 0x05, 0x74, 0x6f, 0x6f, - 0x6c, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x23, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x38, 0x0a, 0x0a, 0x56, 0x51, 0x4c, - 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x22, 0xe5, 0x07, 0x0a, 0x0b, 0x56, 0x51, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x18, 0x12, 0x16, 0x4a, - 0x53, 0x4f, 0x4e, 0x20, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x44, 0x0a, 0x0d, 0x4a, 0x53, 0x4f, 0x4e, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x18, 0x12, 0x16, - 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x20, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x0d, 0x4a, 0x53, 0x4f, 0x4e, 0x4c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x64, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x64, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, - 0x11, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, - 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x62, 0x79, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x52, 0x0a, 0x07, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x38, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x32, 0x12, 0x30, 0x41, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x20, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x07, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, - 0x5e, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, - 0x70, 0x42, 0x35, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2f, 0x12, 0x2d, 0x4d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x69, - 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, - 0x52, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x37, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x31, 0x12, 0x2f, 0x43, 0x68, 0x72, 0x6f, 0x6e, - 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x77, 0x65, 0x20, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x2e, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x49, 0x64, 0x12, 0x74, 0x0a, 0x04, 0x70, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x60, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x5a, 0x12, 0x58, 0x4c, 0x61, 0x72, 0x67, 0x65, - 0x20, 0x56, 0x51, 0x4c, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x20, 0x61, - 0x72, 0x65, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, - 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x70, 0x61, 0x72, 0x74, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x52, 0x04, 0x70, 0x61, 0x72, 0x74, 0x12, 0x4d, 0x0a, 0x05, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x56, 0x51, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x24, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x1e, 0x12, 0x1c, 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x74, - 0x68, 0x61, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, - 0x2e, 0x52, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x5c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x3e, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x38, 0x0a, 0x0b, 0x52, 0x44, 0x46, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x29, 0x54, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x77, 0x61, 0x73, - 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x52, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, - 0x72, 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x33, 0xe2, 0xfc, 0xe3, 0xc4, - 0x01, 0x2d, 0x12, 0x2b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x70, 0x61, 0x72, 0x74, 0x2e, 0x52, - 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x6f, 0x77, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, - 0x6f, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x45, 0x0a, 0x04, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1b, 0x12, 0x19, 0x54, - 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x0d, 0x56, 0x51, 0x4c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x55, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x42, 0x26, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x41, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x20, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x75, 0x6e, 0x2e, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x28, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x22, 0x12, 0x20, 0x54, 0x68, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0xc0, 0x08, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, - 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x68, - 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, - 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x70, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x41, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x63, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, - 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, - 0x73, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, - 0x43, 0x0a, 0x1e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x67, - 0x61, 0x74, 0x65, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x75, 0x6e, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x37, 0x0a, 0x18, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, - 0x10, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x69, 0x6e, 0x5f, 0x66, - 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x6e, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6c, 0x6f, - 0x77, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x69, 0x6e, 0x46, 0x6c, 0x69, 0x67, 0x68, - 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x40, 0x0a, 0x12, 0x49, 0x6e, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x46, - 0x6c, 0x6f, 0x77, 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, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 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, 0x42, 0x35, 0x5a, 0x33, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, - 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, - 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, -} +const file_vql_proto_rawDesc = "" + + "\n" + + "\tvql.proto\x12\x05proto\x1a\x14proto/semantic.proto\x1a\x1eartifacts/proto/artifact.proto\"2\n" + + "\n" + + "VQLRequest\x12\x12\n" + + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x10\n" + + "\x03VQL\x18\x01 \x01(\tR\x03VQL\"J\n" + + "\x06VQLEnv\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\x12\x18\n" + + "\acomment\x18\x03 \x01(\tR\acomment\"\x9e\v\n" + + "\x10VQLCollectorArgs\x12\x19\n" + + "\bquery_id\x18 \x01(\x03R\aqueryId\x12#\n" + + "\rtotal_queries\x18! \x01(\x03R\ftotalQueries\x12\x16\n" + + "\x06expiry\x18\" \x01(\x04R\x06expiry\x12\"\n" + + "\fprecondition\x18\x1d \x01(\tR\fprecondition\x12\x1c\n" + + "\tprincipal\x18\x1c \x01(\tR\tprincipal\x12/\n" + + "\x13effective_principal\x18& \x01(\tR\x12effectivePrincipal\x12\\\n" + + "\x03env\x18\x03 \x03(\v2\r.proto.VQLEnvB;\xe2\xfc\xe3\xc4\x015\x123Environment variables to be provided for the query.R\x03env\x12Z\n" + + "\x05Query\x18\x02 \x03(\v2\x11.proto.VQLRequestB1\xe2\xfc\xe3\xc4\x01+\x12)The VQL queries to execute on the client.R\x05Query\x12\x9d\x01\n" + + "\amax_row\x18\x04 \x01(\x04B\x83\x01\xe2\xfc\xe3\xc4\x01}\x12bThe maximum rows per response. Responses larger than this will be split across multiple responses.\"\x11Max rows per part2\x041000R\x06maxRow\x12-\n" + + "\x13max_row_buffer_size\x18% \x01(\x04R\x10maxRowBufferSize\x12\xcb\x01\n" + + "\bmax_wait\x18\x06 \x01(\x04B\xaf\x01\xe2\xfc\xe3\xc4\x01\xa8\x01\x12}For long queries we return partial results after this long. This is required for event listeners which never really complete.\"#Batch requests that take this long.2\x0210R\amaxWait\x12\xc8\x01\n" + + "\x0eops_per_second\x18\x18 \x01(\x02B\xa1\x01\xe2\xfc\xe3\xc4\x01\x9a\x01\x12\x97\x01An Op is defined as some arbitrary unit of work. This allows work to be limited. Typically VQL plugins will count ops towards the query as appropriate.R\fopsPerSecond\x12\x1b\n" + + "\tcpu_limit\x18\x1e \x01(\x02R\bcpuLimit\x12\x1d\n" + + "\n" + + "iops_limit\x18\x1f \x01(\x02R\tiopsLimit\x12)\n" + + "\x10progress_timeout\x18$ \x01(\x02R\x0fprogressTimeout\x12n\n" + + "\tartifacts\x18\x05 \x03(\v2\x0f.proto.ArtifactB?\xe2\xfc\xe3\xc4\x019\x127Artifacts sent from the server to help with this query.R\tartifacts\x12D\n" + + "\atimeout\x18\x19 \x01(\x04B*\xe2\xfc\xe3\xc4\x01$\x12\"Maximum time for the query to run.R\atimeout\x12\x1c\n" + + "\theartbeat\x18\x1b \x01(\x04R\theartbeat\x12K\n" + + "\x05tools\x18\x1a \x03(\tB5\xe2\xfc\xe3\xc4\x01/\x12-A list of tools we will need to run this VQL.R\x05tools\x12\x15\n" + + "\x06org_id\x18# \x01(\tR\x05orgId\"8\n" + + "\n" + + "VQLTypeMap\x12\x16\n" + + "\x06column\x18\x01 \x01(\tR\x06column\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\"\xe5\a\n" + + "\vVQLResponse\x12:\n" + + "\bResponse\x18\x01 \x01(\tB\x1e\xe2\xfc\xe3\xc4\x01\x18\x12\x16JSON encoded response.R\bResponse\x12D\n" + + "\rJSONLResponse\x18\n" + + " \x01(\tB\x1e\xe2\xfc\xe3\xc4\x01\x18\x12\x16JSON encoded response.R\rJSONLResponse\x126\n" + + "\x16CompressedJsonResponse\x18\x0f \x01(\fR\x16CompressedJsonResponse\x12+\n" + + "\x11uncompressed_size\x18\r \x01(\x04R\x10uncompressedSize\x12\x1f\n" + + "\vbyte_offset\x18\x0e \x01(\x04R\n" + + "byteOffset\x12R\n" + + "\aColumns\x18\x02 \x03(\tB8\xe2\xfc\xe3\xc4\x012\x120A list of column headings produced by the query.R\aColumns\x12^\n" + + "\x05types\x18\b \x03(\v2\x11.proto.VQLTypeMapB5\xe2\xfc\xe3\xc4\x01/\x12-Mapping between column names and their types.R\x05types\x12R\n" + + "\bquery_id\x18\x05 \x01(\x04B7\xe2\xfc\xe3\xc4\x011\x12/Chronological order of the query we respond to.R\aqueryId\x12t\n" + + "\x04part\x18\x06 \x01(\x04B`\xe2\xfc\xe3\xc4\x01Z\x12XLarge VQL responses are split across many parts. This carries the part of this response.R\x04part\x12M\n" + + "\x05Query\x18\x03 \x01(\v2\x11.proto.VQLRequestB$\xe2\xfc\xe3\xc4\x01\x1e\x12\x1cThe query that was executed.R\x05Query\x12\\\n" + + "\ttimestamp\x18\x04 \x01(\x04B>\xe2\xfc\xe3\xc4\x018\n" + + "\vRDFDatetime\x12)The timestamp the response was generated.R\ttimestamp\x12R\n" + + "\n" + + "total_rows\x18\a \x01(\x04B3\xe2\xfc\xe3\xc4\x01-\x12+Total number of rows in this response part.R\ttotalRows\x12&\n" + + "\x0fquery_start_row\x18\v \x01(\x04R\rqueryStartRow\x12\x10\n" + + "\x03log\x18\t \x01(\tR\x03log\x12\x15\n" + + "\x06org_id\x18\f \x01(\tR\x05orgId\"E\n" + + "\x04User\x12=\n" + + "\busername\x18\x01 \x01(\tB!\xe2\xfc\xe3\xc4\x01\x1b\x12\x19The username of the user.R\busername\"\xaa\x01\n" + + "\rVQLEventTable\x12U\n" + + "\x05event\x18\x01 \x03(\v2\x17.proto.VQLCollectorArgsB&\xe2\xfc\xe3\xc4\x01 \x12\x1eA set of event queries to run.R\x05event\x12B\n" + + "\aversion\x18\x02 \x01(\x04B(\xe2\xfc\xe3\xc4\x01\"\x12 The version of this event table.R\aversion\"\xc0\b\n" + + "\n" + + "ClientInfo\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12\x1a\n" + + "\bhostname\x18\x03 \x01(\tR\bhostname\x12\x12\n" + + "\x04fqdn\x18\x04 \x01(\tR\x04fqdn\x12\x16\n" + + "\x06system\x18\x05 \x01(\tR\x06system\x12\x18\n" + + "\arelease\x18\x06 \x01(\tR\arelease\x12\"\n" + + "\farchitecture\x18\a \x01(\tR\farchitecture\x12\x1d\n" + + "\n" + + "ip_address\x18\n" + + " \x01(\tR\tipAddress\x12\x12\n" + + "\x04ping\x18\v \x01(\x04R\x04ping\x12\x1b\n" + + "\tping_time\x18\x13 \x01(\tR\bpingTime\x12%\n" + + "\x0eclient_version\x18\f \x01(\tR\rclientVersion\x12\x1f\n" + + "\vclient_name\x18\r \x01(\tR\n" + + "clientName\x12\"\n" + + "\rfirst_seen_at\x18\x14 \x01(\x04R\vfirstSeenAt\x12\x1d\n" + + "\n" + + "build_time\x18\x18 \x01(\tR\tbuildTime\x12\x1b\n" + + "\tbuild_url\x18\x19 \x01(\tR\bbuildUrl\x12!\n" + + "\finstall_time\x18\x1a \x01(\x04R\vinstallTime\x12\x16\n" + + "\x06labels\x18\x0f \x03(\tR\x06labels\x12#\n" + + "\rmac_addresses\x18\x16 \x03(\tR\fmacAddresses\x12\x1b\n" + + "\thas_tasks\x18\x1b \x01(\bR\bhasTasks\x127\n" + + "\x18last_interrogate_flow_id\x18\x10 \x01(\tR\x15lastInterrogateFlowId\x12C\n" + + "\x1elast_interrogate_artifact_name\x18\x15 \x01(\tR\x1blastInterrogateArtifactName\x12.\n" + + "\x13last_hunt_timestamp\x18\x11 \x01(\x04R\x11lastHuntTimestamp\x127\n" + + "\x18last_event_table_version\x18\x12 \x01(\x04R\x15lastEventTableVersion\x12)\n" + + "\x10labels_timestamp\x18\x17 \x01(\x04R\x0flabelsTimestamp\x12L\n" + + "\x0fin_flight_flows\x18\x1c \x03(\v2$.proto.ClientInfo.InFlightFlowsEntryR\rinFlightFlows\x12;\n" + + "\bmetadata\x18\x1d \x03(\v2\x1f.proto.ClientInfo.MetadataEntryR\bmetadata\x1a@\n" + + "\x12InFlightFlowsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x03R\x05value:\x028\x01\x1a;\n" + + "\rMetadataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B5Z3www.velocidex.com/golang/velociraptor/actions/protob\x06proto3" var ( file_vql_proto_rawDescOnce sync.Once - file_vql_proto_rawDescData = file_vql_proto_rawDesc + file_vql_proto_rawDescData []byte ) func file_vql_proto_rawDescGZIP() []byte { file_vql_proto_rawDescOnce.Do(func() { - file_vql_proto_rawDescData = protoimpl.X.CompressGZIP(file_vql_proto_rawDescData) + file_vql_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_vql_proto_rawDesc), len(file_vql_proto_rawDesc))) }) return file_vql_proto_rawDescData } var file_vql_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_vql_proto_goTypes = []interface{}{ +var file_vql_proto_goTypes = []any{ (*VQLRequest)(nil), // 0: proto.VQLRequest (*VQLEnv)(nil), // 1: proto.VQLEnv (*VQLCollectorArgs)(nil), // 2: proto.VQLCollectorArgs @@ -1244,109 +1061,11 @@ func file_vql_proto_init() { if File_vql_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vql_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VQLRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vql_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VQLEnv); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vql_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VQLCollectorArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vql_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VQLTypeMap); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vql_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VQLResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vql_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*User); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vql_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VQLEventTable); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vql_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientInfo); 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_vql_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_vql_proto_rawDesc), len(file_vql_proto_rawDesc)), NumEnums: 0, NumMessages: 10, NumExtensions: 0, @@ -1357,7 +1076,6 @@ func file_vql_proto_init() { MessageInfos: file_vql_proto_msgTypes, }.Build() File_vql_proto = out.File - file_vql_proto_rawDesc = nil file_vql_proto_goTypes = nil file_vql_proto_depIdxs = nil } diff --git a/actions/tracker.go b/actions/tracker.go index f2d33b4f9..e5ca90ee6 100644 --- a/actions/tracker.go +++ b/actions/tracker.go @@ -23,7 +23,7 @@ func (self *QueryTracker) GetStartRow(query *actions_proto.VQLRequest) uint64 { self.mu.Lock() defer self.mu.Unlock() - start_row, _ := self.queriesToStartRow[query.Name] + start_row := self.queriesToStartRow[query.Name] return start_row } @@ -32,7 +32,7 @@ func (self *QueryTracker) AddRows( self.mu.Lock() defer self.mu.Unlock() - start_row, _ := self.queriesToStartRow[query.Name] + start_row := self.queriesToStartRow[query.Name] self.queriesToStartRow[query.Name] = start_row + count } diff --git a/actions/vql.go b/actions/vql.go index 85777f1ef..19ad39eb2 100644 --- a/actions/vql.go +++ b/actions/vql.go @@ -374,7 +374,7 @@ func CheckPreconditions( } for _, vql := range vqls { - for _ = range vql.Eval(ctx, scope) { + for range vql.Eval(ctx, scope) { return true, nil } } diff --git a/actions/vql_test.go b/actions/vql_test.go index f7478b4bf..f5bdf1ced 100644 --- a/actions/vql_test.go +++ b/actions/vql_test.go @@ -114,8 +114,8 @@ func (self *ClientVQLTestSuite) TestDependentArtifacts() { var responses []*crypto_proto.VeloMessage vtesting.WaitUntil(5*time.Second, self.T(), func() bool { responses = resp.Drain.Messages() - return "Target: Query, JSONL: {\"X\":1,\"_Source\":\"Custom.Foo.Bar.Baz.A\"}\n\n" == - getVQLResponse(responses) + return getVQLResponse(responses) == + "Target: Query, JSONL: {\"X\":1,\"_Source\":\"Custom.Foo.Bar.Baz.A\"}\n\n" }) } diff --git a/api/api.go b/api/api.go index a33c7e760..052ad8199 100644 --- a/api/api.go +++ b/api/api.go @@ -792,9 +792,7 @@ func (self *ApiServer) SetArtifactFile( Warnings: state.Warnings, } - for _, e := range state.Errors { - res.Errors = append(res.Errors, e) - } + res.Errors = append(res.Errors, state.Errors...) return res, nil } diff --git a/api/assets.go b/api/assets.go index 9f8084203..953dd6a6e 100644 --- a/api/assets.go +++ b/api/assets.go @@ -34,9 +34,7 @@ import ( "github.com/lpar/gzipped" "www.velocidex.com/golang/velociraptor/api/proto" api_utils "www.velocidex.com/golang/velociraptor/api/utils" - utils "www.velocidex.com/golang/velociraptor/api/utils" config_proto "www.velocidex.com/golang/velociraptor/config/proto" - "www.velocidex.com/golang/velociraptor/gui/velociraptor" gui_assets "www.velocidex.com/golang/velociraptor/gui/velociraptor" "www.velocidex.com/golang/velociraptor/services" vutils "www.velocidex.com/golang/velociraptor/utils" @@ -49,14 +47,14 @@ var ( func install_static_assets( ctx context.Context, config_obj *config_proto.Config, mux *api_utils.ServeMux) { - base := utils.GetBasePath(config_obj) - dir := utils.Join(base, "/app/") + base := api_utils.GetBasePath(config_obj) + dir := api_utils.Join(base, "/app/") mux.Handle(dir, ipFilter(config_obj, api_utils.StripPrefix( dir, fixCSSURLs(config_obj, gzipped.FileServer(NewCachedFilesystem(ctx, gui_assets.NewHTTPFS())))))) mux.Handle("/favicon.png", - http.RedirectHandler(utils.Join(base, "/favicon.ico"), + http.RedirectHandler(api_utils.Join(base, "/favicon.ico"), http.StatusMovedPermanently)) } @@ -96,10 +94,10 @@ func GetTemplateHandler( user_options = &proto.SetGUIOptionsRequest{} } - args := velociraptor.HTMLtemplateArgs{ + args := gui_assets.HTMLtemplateArgs{ Timestamp: time.Now().UTC().UnixNano() / 1000, CsrfToken: csrf.Token(r), - BasePath: utils.GetBasePath(config_obj), + BasePath: api_utils.GetBasePath(config_obj), Heading: "Heading", UserTheme: user_options.Theme, OrgId: user_options.Org, @@ -173,7 +171,7 @@ func NewInterceptingResponseWriter( ResponseWriter: w, from: "url(/app/assets/", to: fmt.Sprintf("url(%v/app/assets/", - utils.GetBasePath(config_obj)), + api_utils.GetBasePath(config_obj)), br_writer: brotli.NewWriter(w), } } @@ -184,6 +182,6 @@ func NewInterceptingResponseWriter( ResponseWriter: w, from: "url(/app/assets/", to: fmt.Sprintf("url(%v/app/assets/", - utils.GetBasePath(config_obj)), + api_utils.GetBasePath(config_obj)), } } diff --git a/api/authenticators/certs.go b/api/authenticators/certs.go index 3ae521225..3e517fabe 100644 --- a/api/authenticators/certs.go +++ b/api/authenticators/certs.go @@ -117,7 +117,6 @@ func (self *CertAuthenticator) AddLogoff(mux *api_utils.ServeMux) error { func(w http.ResponseWriter, r *http.Request) { w.Header().Set("WWW-Authenticate", `Basic realm="Restricted"`) http.Error(w, "authorization failed", http.StatusUnauthorized) - return }))) return nil diff --git a/api/authenticators/http.go b/api/authenticators/http.go index 242ab83fb..2e4f88216 100644 --- a/api/authenticators/http.go +++ b/api/authenticators/http.go @@ -21,10 +21,6 @@ func (self *transformerTransport) RoundTrip( req *http.Request) (*http.Response, error) { rt := self.transport.RoundTrip - if rt == nil { - rt = http.DefaultTransport.RoundTrip - } - for _, t := range self.transformers { rt = t(rt) } @@ -89,7 +85,7 @@ func traceNetwork(config_obj *config_proto.Config) func(rt RoundTripFunc) RoundT } defer res.Body.Close() - ct, _ := res.Header["Content-Type"] + ct := res.Header["Content-Type"] bs, err := io.ReadAll(res.Body) if err != nil { diff --git a/api/authenticators/template.go b/api/authenticators/template.go index 9a54a3b07..0ba361bf4 100644 --- a/api/authenticators/template.go +++ b/api/authenticators/template.go @@ -6,9 +6,7 @@ import ( "text/template" api_utils "www.velocidex.com/golang/velociraptor/api/utils" - utils "www.velocidex.com/golang/velociraptor/api/utils" config_proto "www.velocidex.com/golang/velociraptor/config/proto" - "www.velocidex.com/golang/velociraptor/gui/velociraptor" gui_assets "www.velocidex.com/golang/velociraptor/gui/velociraptor" "www.velocidex.com/golang/velociraptor/json" ) @@ -16,7 +14,7 @@ import ( func renderRejectionMessage( config_obj *config_proto.Config, r *http.Request, w http.ResponseWriter, err error, - username string, authenticators []velociraptor.AuthenticatorInfo) { + username string, authenticators []gui_assets.AuthenticatorInfo) { // For API calls we render the error as JSON base_path := api_utils.GetBasePath(config_obj, "/api/") @@ -39,13 +37,13 @@ func renderRejectionMessage( return } - err = tmpl.Execute(w, velociraptor.HTMLtemplateArgs{ - BasePath: utils.GetBasePath(config_obj), - ErrState: json.MustMarshalString(velociraptor.ErrState{ + err = tmpl.Execute(w, gui_assets.HTMLtemplateArgs{ + BasePath: api_utils.GetBasePath(config_obj), + ErrState: json.MustMarshalString(gui_assets.ErrState{ Type: "Login", Username: username, Authenticators: authenticators, - BasePath: utils.GetBasePath(config_obj), + BasePath: api_utils.GetBasePath(config_obj), }), }) if err != nil { @@ -71,13 +69,13 @@ func renderLogoffMessage( return } - err = tmpl.Execute(w, velociraptor.HTMLtemplateArgs{ - BasePath: utils.GetBasePath(config_obj), - ErrState: json.MustMarshalString(velociraptor.ErrState{ + err = tmpl.Execute(w, gui_assets.HTMLtemplateArgs{ + BasePath: api_utils.GetBasePath(config_obj), + ErrState: json.MustMarshalString(gui_assets.ErrState{ Type: "Logoff", Username: username, - BasePath: utils.GetBaseDirectory(config_obj), - Authenticators: []velociraptor.AuthenticatorInfo{}, + BasePath: api_utils.GetBaseDirectory(config_obj), + Authenticators: []gui_assets.AuthenticatorInfo{}, }), }) if err != nil { diff --git a/api/authenticators/verify.go b/api/authenticators/verify.go index 1e33a799c..52d6aebc0 100644 --- a/api/authenticators/verify.go +++ b/api/authenticators/verify.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" "net/http" - "time" "github.com/Velocidex/ordereddict" jwt "github.com/golang-jwt/jwt/v4" @@ -139,68 +138,6 @@ func reject_with_username( }) } -// Create a new JWT cookie embedding the claims in it. -// The JWT is signed with the server's private key so we can verify it -// easily and it can not be modified. -func getSignedJWTTokenCookie( - config_obj *config_proto.Config, - authenticator *config_proto.Authenticator, - claims *Claims, r *http.Request) (*http.Cookie, error) { - if config_obj.Frontend == nil { - return nil, errors.New("config has no Frontend") - } - - expiry_min := authenticator.DefaultSessionExpiryMin - if expiry_min == 0 { - expiry_min = 60 * 24 // 1 Day by default - } - - // We force expiry in the JWT **as well** as the session - // cookie. The JWT expiry is most important as the browser can - // replay session cookies past expiry. - expiry := utils.GetTime().Now().Add(time.Minute * time.Duration(expiry_min)) - - // Enforce the JWT to expire - claims.Expires = float64(expiry.Unix()) - - // Make a JWT and sign it. - token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) - if authenticator.OidcDebug { - logging.GetLogger(config_obj, &logging.GUIComponent). - Debug("getSignedJWTTokenCookie: Creating JWT with claims: %#v", claims) - } - - tokenString, err := token.SignedString([]byte(config_obj.Frontend.PrivateKey)) - if err != nil { - return nil, err - } - - // Log a successful login. - err = services.LogAudit(r.Context(), - config_obj, claims.Username, "Login", - ordereddict.NewDict(). - Set("remote", r.RemoteAddr). - Set("authenticator", authenticator.Type). - Set("url", r.URL.Path)) - if err != nil { - logger := logging.GetLogger(config_obj, &logging.FrontendComponent) - logger.Error("getSignedJWTTokenCookie LogAudit: Login %v %v", - claims.Username, r.RemoteAddr) - } - - // Sets the cookie on the browser so it is only valid from the - // base down. - return &http.Cookie{ - Name: "VelociraptorAuth", - Value: tokenString, - Path: api_utils.GetBaseDirectory(config_obj), - Secure: true, - HttpOnly: true, - SameSite: http.SameSiteStrictMode, - Expires: expiry, - }, nil -} - // Extracts the claims from the VelociraptorAuth cookie: // Ensure the JWT is properly validated and contains all the // required fields. diff --git a/api/builder.go b/api/builder.go index f31a6ec4e..197a5c6e5 100644 --- a/api/builder.go +++ b/api/builder.go @@ -365,7 +365,8 @@ func StartFrontendHttps( atomic.StoreInt32(&server_obj.Healthy, 1) - listener, err, closer := server_obj.NewLoadSheddingListener(server.Addr) + listener, closer, err := server_obj.NewLoadSheddingListener( + server.Addr) if err != nil { server_obj.Error("Frontend server: Can not listen on %v: %v", server.Addr, err) @@ -564,7 +565,7 @@ func StartFrontendWithAutocert( // port for the GUI and clients. If we load shed the // clients we will also load shed the GUI... Does this // makes sense? - listener, err, closer := server_obj.NewLoadSheddingListener(server.Addr) + listener, closer, err := server_obj.NewLoadSheddingListener(server.Addr) if err != nil { server_obj.Error("Frontend server: Can not listen on %v: %v", server.Addr, err) @@ -773,8 +774,6 @@ func addClientCerts(config_obj *config_proto.Config, in *tls.Config) error { in.ClientAuth = tls.RequireAndVerifyClientCert in.ClientCAs = client_ca - in.BuildNameToCertificate() - return nil } @@ -806,7 +805,6 @@ func getTLSConfig(config_obj *config_proto.Config, in *tls.Config) error { in.CurvePreferences = []tls.CurveID{ tls.CurveP521, tls.CurveP384, tls.CurveP256} in.ClientSessionCache = tls.NewLRUClientSessionCache(int(expected_clients)) - in.PreferServerCipherSuites = true in.CipherSuites = []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, diff --git a/api/datastore_test.go b/api/datastore_test.go index 72a1cbf6d..622343f19 100644 --- a/api/datastore_test.go +++ b/api/datastore_test.go @@ -21,8 +21,6 @@ import ( type DatastoreAPITest struct { test_utils.TestSuite - - client_config *config_proto.Config } func (self *DatastoreAPITest) SetupTest() { diff --git a/api/download.go b/api/download.go index c60abd350..953102796 100644 --- a/api/download.go +++ b/api/download.go @@ -69,6 +69,7 @@ import ( const BUFSIZE = 1 * 1024 * 1024 var ( + //lint:file-ignore SA6002 - Slices are ok. pool = sync.Pool{ New: func() interface{} { return make([]byte, BUFSIZE) @@ -230,7 +231,7 @@ func vfsFileDownloadHandler(config_obj *config_proto.Config) http.Handler { // 1. The file is not sparse // 2. The file is sparse and we are not padding. // 3. The file is sparse and we are padding it. - var reader_at io.ReaderAt = utils.MakeReaderAtter(file) + var reader_at = utils.MakeReaderAtter(file) var total_size int index, err := getIndex(org_config_obj, path_spec) @@ -782,7 +783,7 @@ func vfsGetBuffer(config_obj *config_proto.Config, client_id string, } defer file.Close() - var reader_at io.ReaderAt = utils.MakeReaderAtter(file) + var reader_at = utils.MakeReaderAtter(file) result := &api_proto.VFSFileBuffer{ Data: make([]byte, length), diff --git a/api/events_test.go b/api/events_test.go index b25b5e8c8..3d954635c 100644 --- a/api/events_test.go +++ b/api/events_test.go @@ -43,9 +43,7 @@ type: SERVER_EVENT // Tests the public API endpoints type GeneralAPITest struct { test_utils.TestSuite - - client_config *config_proto.Config - username string + username string } func (self *GeneralAPITest) SetupTest() { @@ -100,6 +98,7 @@ func (self *GeneralAPITest) TestQuery() { err := user_manager.SetUser(self.Ctx, &api_proto.VelociraptorUser{ Name: self.username, }) + assert.NoError(self.T(), err) // Make the user a reader on the root org. err = services.GrantUserToOrg(self.Ctx, @@ -218,6 +217,7 @@ func (self *GeneralAPITest) TestVFSGetBuffer() { err = user_manager.SetUser(self.Ctx, &api_proto.VelociraptorUser{ Name: self.username, }) + assert.NoError(self.T(), err) // Make the user a reader on the root org. err = services.GrantUserToOrg(self.Ctx, @@ -240,7 +240,7 @@ func (self *GeneralAPITest) TestVFSGetBuffer() { Length: 100, } - buf, err := client.VFSGetBuffer(self.Ctx, message) + _, err = client.VFSGetBuffer(self.Ctx, message) assert.Error(self.T(), err) assert.Contains(self.T(), err.Error(), "PermissionDenied desc = User is not allowed to view the VFS") @@ -254,7 +254,7 @@ func (self *GeneralAPITest) TestVFSGetBuffer() { }) assert.NoError(self.T(), err) - buf, err = client.VFSGetBuffer(self.Ctx, message) + buf, err := client.VFSGetBuffer(self.Ctx, message) assert.NoError(self.T(), err) assert.Equal(self.T(), string(buf.Data), "Hello") } @@ -312,6 +312,7 @@ func (self *GeneralAPITest) TestVFSGetBufferSparse() { err = user_manager.SetUser(self.Ctx, &api_proto.VelociraptorUser{ Name: self.username, }) + assert.NoError(self.T(), err) // Make the user a reader on the root org. err = services.GrantUserToOrg(self.Ctx, @@ -358,6 +359,7 @@ func (self *GeneralAPITest) TestPushEvents() { err = user_manager.SetUser(self.Ctx, &api_proto.VelociraptorUser{ Name: self.username, }) + assert.NoError(self.T(), err) // Make the user a reader on the root org. err = services.GrantUserToOrg(self.Ctx, diff --git a/api/filesearch.go b/api/filesearch.go index 27733a162..f13375c4c 100644 --- a/api/filesearch.go +++ b/api/filesearch.go @@ -65,7 +65,7 @@ func (self *ApiServer) SearchFile(ctx context.Context, } defer file.Close() - var reader_at io.ReaderAt = utils.MakeReaderAtter(file) + var reader_at = utils.MakeReaderAtter(file) index, err := getIndex(org_config_obj, path_spec) // If the file is sparse, we use the sparse reader. @@ -84,6 +84,7 @@ func (self *ApiServer) SearchFile(ctx context.Context, offset := int64(in.Offset) var buf []byte + //lint:file-ignore SA6002 Slices are OK if in.Forward { buf = pool.Get().([]byte) defer pool.Put(buf) diff --git a/api/flows.go b/api/flows.go index 7717f2ec6..f16b1bc42 100644 --- a/api/flows.go +++ b/api/flows.go @@ -10,7 +10,6 @@ import ( "www.velocidex.com/golang/velociraptor/api/tables" artifacts_proto "www.velocidex.com/golang/velociraptor/artifacts/proto" "www.velocidex.com/golang/velociraptor/constants" - "www.velocidex.com/golang/velociraptor/json" vjson "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/services" ) @@ -184,12 +183,12 @@ func (self *ApiServer) GetClientFlows( flow.Request.Creator, flow.TotalUploadedBytes, flow.TotalCollectedRows, - json.ConvertProtoToOrderedDict(flow), + vjson.ConvertProtoToOrderedDict(flow), flow.Request.Urgent, flow.ArtifactsWithResults, } opts := vjson.DefaultEncOpts() - serialized, err := json.MarshalWithOptions(row_data, opts) + serialized, err := vjson.MarshalWithOptions(row_data, opts) if err != nil { continue } diff --git a/api/health.go b/api/health.go index 1178af236..c83a288a0 100644 --- a/api/health.go +++ b/api/health.go @@ -3,7 +3,6 @@ package api import ( "context" - "www.velocidex.com/golang/velociraptor/api/proto" api_proto "www.velocidex.com/golang/velociraptor/api/proto" ) @@ -11,7 +10,7 @@ func (self *ApiServer) Check( ctx context.Context, in *api_proto.HealthCheckRequest) (*api_proto.HealthCheckResponse, error) { - return &proto.HealthCheckResponse{ + return &api_proto.HealthCheckResponse{ Status: api_proto.HealthCheckResponse_SERVING, }, nil } diff --git a/api/hunts.go b/api/hunts.go index d1e1e1584..adba90455 100644 --- a/api/hunts.go +++ b/api/hunts.go @@ -15,7 +15,6 @@ import ( api_proto "www.velocidex.com/golang/velociraptor/api/proto" "www.velocidex.com/golang/velociraptor/api/tables" "www.velocidex.com/golang/velociraptor/json" - vjson "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/services/hunt_dispatcher" @@ -88,7 +87,7 @@ func (self *ApiServer) GetHuntFlows( flow.Context.TotalCollectedRows, } - opts := vjson.DefaultEncOpts() + opts := json.DefaultEncOpts() serialized, err := json.MarshalWithOptions(row_data, opts) if err != nil { continue @@ -166,7 +165,7 @@ func (self *ApiServer) GetHuntTable( total_clients_scheduled, hunt.Creator, } - opts := vjson.DefaultEncOpts() + opts := json.DefaultEncOpts() serialized, err := json.MarshalWithOptions(row_data, opts) if err != nil { continue diff --git a/api/proto/api.pb.go b/api/proto/api.pb.go index 131f17dfa..f51e5f850 100644 --- a/api/proto/api.pb.go +++ b/api/proto/api.pb.go @@ -10,6 +10,7 @@ import ( emptypb "google.golang.org/protobuf/types/known/emptypb" reflect "reflect" sync "sync" + unsafe "unsafe" proto2 "www.velocidex.com/golang/velociraptor/actions/proto" proto1 "www.velocidex.com/golang/velociraptor/artifacts/proto" proto "www.velocidex.com/golang/velociraptor/flows/proto" @@ -24,20 +25,17 @@ const ( ) type StartFlowResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` unknownFields protoimpl.UnknownFields - - FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StartFlowResponse) Reset() { *x = StartFlowResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartFlowResponse) String() string { @@ -48,7 +46,7 @@ func (*StartFlowResponse) ProtoMessage() {} func (x *StartFlowResponse) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -71,20 +69,17 @@ func (x *StartFlowResponse) GetFlowId() string { } type Approval struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` unknownFields protoimpl.UnknownFields - - Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Approval) Reset() { *x = Approval{} - if protoimpl.UnsafeEnabled { - mi := &file_api_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Approval) String() string { @@ -95,7 +90,7 @@ func (*Approval) ProtoMessage() {} func (x *Approval) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -118,20 +113,17 @@ func (x *Approval) GetReason() string { } type ApprovalList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*Approval `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*Approval `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ApprovalList) Reset() { *x = ApprovalList{} - if protoimpl.UnsafeEnabled { - mi := &file_api_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApprovalList) String() string { @@ -142,7 +134,7 @@ func (*ApprovalList) ProtoMessage() {} func (x *ApprovalList) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -165,22 +157,19 @@ func (x *ApprovalList) GetItems() []*Approval { } type VFSRefreshDirectoryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + VfsComponents []string `protobuf:"bytes,4,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` + Depth uint64 `protobuf:"varint,3,opt,name=depth,proto3" json:"depth,omitempty"` unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - VfsComponents []string `protobuf:"bytes,4,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` - Depth uint64 `protobuf:"varint,3,opt,name=depth,proto3" json:"depth,omitempty"` + sizeCache protoimpl.SizeCache } func (x *VFSRefreshDirectoryRequest) Reset() { *x = VFSRefreshDirectoryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VFSRefreshDirectoryRequest) String() string { @@ -191,7 +180,7 @@ func (*VFSRefreshDirectoryRequest) ProtoMessage() {} func (x *VFSRefreshDirectoryRequest) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -228,26 +217,23 @@ func (x *VFSRefreshDirectoryRequest) GetDepth() uint64 { } type VFSFileBuffer struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` + Length uint32 `protobuf:"varint,4,opt,name=length,proto3" json:"length,omitempty"` + Data []byte `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` + Components []string `protobuf:"bytes,6,rep,name=components,proto3" json:"components,omitempty"` + OrgId string `protobuf:"bytes,7,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + Padding *bool `protobuf:"varint,8,opt,name=padding,proto3,oneof" json:"padding,omitempty"` unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` - Length uint32 `protobuf:"varint,4,opt,name=length,proto3" json:"length,omitempty"` - Data []byte `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` - Components []string `protobuf:"bytes,6,rep,name=components,proto3" json:"components,omitempty"` - OrgId string `protobuf:"bytes,7,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - Padding *bool `protobuf:"varint,8,opt,name=padding,proto3,oneof" json:"padding,omitempty"` + sizeCache protoimpl.SizeCache } func (x *VFSFileBuffer) Reset() { *x = VFSFileBuffer{} - if protoimpl.UnsafeEnabled { - mi := &file_api_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VFSFileBuffer) String() string { @@ -258,7 +244,7 @@ func (*VFSFileBuffer) ProtoMessage() {} func (x *VFSFileBuffer) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -323,21 +309,18 @@ func (x *VFSFileBuffer) GetPadding() bool { } type NotificationRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + NotifyAll bool `protobuf:"varint,2,opt,name=notify_all,json=notifyAll,proto3" json:"notify_all,omitempty"` unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - NotifyAll bool `protobuf:"varint,2,opt,name=notify_all,json=notifyAll,proto3" json:"notify_all,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotificationRequest) Reset() { *x = NotificationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotificationRequest) String() string { @@ -348,7 +331,7 @@ func (*NotificationRequest) ProtoMessage() {} func (x *NotificationRequest) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -378,24 +361,21 @@ func (x *NotificationRequest) GetNotifyAll() bool { } type EventRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Queue string `protobuf:"bytes,1,opt,name=queue,proto3" json:"queue,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Queue string `protobuf:"bytes,1,opt,name=queue,proto3" json:"queue,omitempty"` // The node who is requesting the event stream. - Node string `protobuf:"bytes,2,opt,name=node,proto3" json:"node,omitempty"` - WatcherName string `protobuf:"bytes,3,opt,name=watcher_name,json=watcherName,proto3" json:"watcher_name,omitempty"` - OrgId string `protobuf:"bytes,4,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + Node string `protobuf:"bytes,2,opt,name=node,proto3" json:"node,omitempty"` + WatcherName string `protobuf:"bytes,3,opt,name=watcher_name,json=watcherName,proto3" json:"watcher_name,omitempty"` + OrgId string `protobuf:"bytes,4,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EventRequest) Reset() { *x = EventRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EventRequest) String() string { @@ -406,7 +386,7 @@ func (*EventRequest) ProtoMessage() {} func (x *EventRequest) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -450,23 +430,20 @@ func (x *EventRequest) GetOrgId() string { } type EventResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The originator of the event. Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` // A sequence of events encoded as jsonl. - Jsonl []byte `protobuf:"bytes,2,opt,name=jsonl,proto3" json:"jsonl,omitempty"` + Jsonl []byte `protobuf:"bytes,2,opt,name=jsonl,proto3" json:"jsonl,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EventResponse) Reset() { *x = EventResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_api_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EventResponse) String() string { @@ -477,7 +454,7 @@ func (*EventResponse) ProtoMessage() {} func (x *EventResponse) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -508,32 +485,29 @@ func (x *EventResponse) GetJsonl() []byte { // Used to push rows into the artifact queue. type PushEventRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Artifact string `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` - ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - FlowId string `protobuf:"bytes,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` - Jsonl []byte `protobuf:"bytes,4,opt,name=jsonl,proto3" json:"jsonl,omitempty"` - Rows int64 `protobuf:"varint,5,opt,name=rows,proto3" json:"rows,omitempty"` - OrgId string `protobuf:"bytes,6,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Artifact string `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` + ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + FlowId string `protobuf:"bytes,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + Jsonl []byte `protobuf:"bytes,4,opt,name=jsonl,proto3" json:"jsonl,omitempty"` + Rows int64 `protobuf:"varint,5,opt,name=rows,proto3" json:"rows,omitempty"` + OrgId string `protobuf:"bytes,6,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` // If false we do not write but just broadcast to all // listeners. But if true we also write to the local filestore. Write bool `protobuf:"varint,7,opt,name=write,proto3" json:"write,omitempty"` // The username source for the event. This can only be set by the // minion as a trusted impersonation. Other callers will have this // set to their real username. - Username string `protobuf:"bytes,8,opt,name=username,proto3" json:"username,omitempty"` + Username string `protobuf:"bytes,8,opt,name=username,proto3" json:"username,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PushEventRequest) Reset() { *x = PushEventRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_api_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PushEventRequest) String() string { @@ -544,7 +518,7 @@ func (*PushEventRequest) ProtoMessage() {} func (x *PushEventRequest) ProtoReflect() protoreflect.Message { mi := &file_api_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -617,627 +591,165 @@ func (x *PushEventRequest) GetUsername() string { var File_api_proto protoreflect.FileDescriptor -var file_api_proto_rawDesc = []byte{ - 0x0a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x24, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x66, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x71, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x64, 0x6f, 0x63, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x68, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, - 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x0b, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x09, 0x63, 0x73, - 0x76, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x76, 0x66, 0x73, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, - 0x11, 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x08, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, - 0x35, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x25, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xc1, 0x01, 0x0a, 0x1a, 0x56, 0x46, 0x53, 0x52, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1f, - 0x0a, 0x06, 0x52, 0x44, 0x46, 0x55, 0x52, 0x4e, 0x12, 0x12, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x01, 0x02, 0x52, - 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x66, 0x73, - 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x76, 0x66, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x38, 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, - 0x22, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1c, 0x12, 0x1a, 0x44, 0x65, 0x70, 0x74, 0x68, 0x20, 0x6f, - 0x66, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x52, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x56, - 0x46, 0x53, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, - 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x15, 0x0a, - 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, - 0x72, 0x67, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, - 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, - 0x51, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x61, 0x6c, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, - 0x6c, 0x6c, 0x22, 0x72, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x77, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x77, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x6a, 0x73, 0x6f, 0x6e, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x6a, 0x73, 0x6f, 0x6e, 0x6c, 0x22, 0xd7, 0x01, 0x0a, 0x10, 0x50, 0x75, 0x73, 0x68, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x6a, 0x73, 0x6f, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6a, 0x73, 0x6f, - 0x6e, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x32, - 0xad, 0x3f, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x12, 0x52, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x48, 0x75, 0x6e, 0x74, 0x12, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, - 0x6e, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x5d, 0x0a, 0x0c, 0x45, - 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x48, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x48, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x45, 0x73, 0x74, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x48, 0x75, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x5d, 0x0a, 0x0c, 0x47, 0x65, - 0x74, 0x48, 0x75, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, - 0x48, 0x75, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x4c, 0x69, 0x73, - 0x74, 0x48, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x75, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x75, 0x6e, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x12, - 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, - 0x75, 0x6e, 0x74, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, 0x74, - 0x54, 0x61, 0x67, 0x73, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x54, 0x61, 0x67, - 0x73, 0x12, 0x58, 0x0a, 0x0a, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x48, 0x75, 0x6e, 0x74, 0x12, - 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, 0x74, 0x4d, 0x75, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1d, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4d, 0x6f, - 0x64, 0x69, 0x66, 0x79, 0x48, 0x75, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x5d, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, - 0x74, 0x48, 0x75, 0x6e, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x48, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1c, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, - 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x0c, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x50, - 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x67, 0x0a, 0x0b, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x5d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x25, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x7d, 0x12, 0x72, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, - 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x01, 0x2a, 0x12, 0x61, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x16, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, - 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x5a, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x55, 0x49, 0x54, 0x72, 0x61, 0x69, 0x74, 0x73, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x41, 0x70, 0x69, 0x55, 0x73, 0x65, 0x72, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, - 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x55, 0x49, 0x54, 0x72, 0x61, 0x69, 0x74, 0x73, 0x12, 0x6c, 0x0a, 0x0d, 0x53, 0x65, 0x74, - 0x47, 0x55, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x55, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x53, 0x65, 0x74, 0x47, 0x55, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, 0x74, 0x47, 0x55, 0x49, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x4a, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x56, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, - 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, - 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, - 0x59, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, - 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, - 0x73, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x56, 0x0a, 0x07, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x12, 0x5d, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x3a, 0x01, - 0x2a, 0x12, 0x57, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x76, 0x6f, - 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x61, - 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x1a, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, - 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, - 0x12, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x0b, 0x53, 0x65, - 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, - 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x10, - 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x2f, 0x7b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x6f, 0x0a, - 0x15, 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, - 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, - 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x82, - 0x01, 0x0a, 0x13, 0x56, 0x46, 0x53, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x44, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, - 0x46, 0x53, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x56, 0x46, 0x53, - 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x3a, 0x01, 0x2a, 0x12, 0x63, 0x0a, 0x10, 0x56, 0x46, 0x53, 0x53, 0x74, 0x61, 0x74, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x56, 0x46, 0x53, 0x53, 0x74, 0x61, 0x74, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x69, 0x0a, 0x0f, 0x56, 0x46, 0x53, 0x53, - 0x74, 0x61, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1d, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x46, 0x53, 0x53, 0x74, 0x61, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x56, 0x46, 0x53, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x56, 0x46, 0x53, 0x53, 0x74, 0x61, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x12, 0x6e, 0x0a, 0x0f, 0x56, 0x46, 0x53, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, - 0x46, 0x53, 0x53, 0x74, 0x61, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x56, 0x46, 0x53, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x3a, 0x01, 0x2a, 0x12, 0x55, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x60, 0x0a, 0x0a, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x0f, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, - 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x20, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x3a, 0x01, 0x2a, 0x12, 0x5c, 0x0a, 0x0a, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x46, 0x6c, 0x6f, - 0x77, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x3a, 0x01, - 0x2a, 0x12, 0x5a, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, - 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1d, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x3a, 0x01, 0x2a, 0x12, 0x5b, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x46, - 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x67, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x15, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x73, 0x12, 0x71, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, - 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4b, 0x65, 0x79, - 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x63, 0x0a, 0x0b, 0x52, 0x65, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x56, 0x51, 0x4c, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x51, 0x4c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x56, 0x51, 0x4c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x52, 0x65, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x51, 0x4c, 0x3a, 0x01, 0x2a, 0x12, 0x67, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x72, 0x73, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x69, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, - 0x6c, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x46, 0x69, - 0x6c, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1c, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, 0x74, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x78, 0x0a, - 0x10, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, 0x63, - 0x6b, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x50, 0x61, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x5c, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, - 0x63, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x63, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6f, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6f, - 0x6c, 0x1a, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x22, 0x1b, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x0b, 0x53, - 0x65, 0x74, 0x54, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x1a, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x54, 0x6f, 0x6f, 0x6c, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, 0x74, 0x54, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x3a, 0x01, 0x2a, 0x12, 0x5c, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x3a, - 0x01, 0x2a, 0x12, 0x7a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x41, 0x72, 0x67, 0x73, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x83, - 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, - 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x78, 0x0a, 0x18, - 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x53, 0x65, 0x74, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x9c, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x22, - 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x74, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, - 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x5a, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x4e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x5f, 0x0a, 0x0b, 0x4e, 0x65, 0x77, 0x4e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, - 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4e, 0x65, 0x77, 0x4e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x65, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x21, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x01, 0x2a, 0x12, - 0x64, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, - 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x6a, 0x0a, 0x0f, 0x4e, 0x65, 0x77, 0x4e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x22, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x4e, - 0x65, 0x77, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x3a, 0x01, - 0x2a, 0x12, 0x63, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, - 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x6c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0x25, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, - 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x12, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x4e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0x25, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x52, 0x65, 0x76, - 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x3a, - 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x12, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x25, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, - 0x3a, 0x01, 0x2a, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, - 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, - 0x6f, 0x6f, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, - 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x46, 0x69, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, - 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x81, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2b, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x69, 0x0a, 0x10, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x18, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x71, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x41, 0x64, - 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x63, 0x0a, 0x0c, 0x4d, 0x6f, - 0x64, 0x69, 0x66, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1f, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0x12, - 0x44, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0d, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x0d, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x47, 0x65, 0x74, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x56, 0x46, 0x53, 0x47, 0x65, 0x74, 0x42, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x46, - 0x53, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x1a, 0x14, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x46, 0x53, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, - 0x72, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x17, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x41, 0x72, 0x67, 0x73, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, - 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3b, 0x0a, - 0x0a, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x13, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3f, 0x0a, 0x0a, 0x50, 0x75, - 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x50, 0x75, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0a, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x09, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x47, - 0x65, 0x74, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x53, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, - 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0c, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x12, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x69, - 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x3e, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, - 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, - 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_api_proto_rawDesc = "" + + "\n" + + "\tapi.proto\x12\x05proto\x1a\x1eartifacts/proto/artifact.proto\x1a$flows/proto/artifact_collector.proto\x1a\x15flows/proto/vfs.proto\x1a\x14proto/semantic.proto\x1a\x17actions/proto/vql.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x0fartifacts.proto\x1a\rclients.proto\x1a\x0fdatastore.proto\x1a\n" + + "docs.proto\x1a\fhealth.proto\x1a\vhunts.proto\x1a\vflows.proto\x1a\x0fnotebooks.proto\x1a\vusers.proto\x1a\tcsv.proto\x1a\x0edownload.proto\x1a\x11completions.proto\x1a\rvfs_api.proto\x1a\x0fscheduler.proto\x1a\rsecrets.proto\x1a\x12timeline_api.proto\",\n" + + "\x11StartFlowResponse\x12\x17\n" + + "\aflow_id\x18\x01 \x01(\tR\x06flowId\"\"\n" + + "\bApproval\x12\x16\n" + + "\x06reason\x18\x01 \x01(\tR\x06reason\"5\n" + + "\fApprovalList\x12%\n" + + "\x05items\x18\x01 \x03(\v2\x0f.proto.ApprovalR\x05items\"\xc1\x01\n" + + "\x1aVFSRefreshDirectoryRequest\x12B\n" + + "\tclient_id\x18\x01 \x01(\tB%\xe2\xfc\xe3\xc4\x01\x1f\n" + + "\x06RDFURN\x12\x12The client to list\x1a\x01\x02R\bclientId\x12%\n" + + "\x0evfs_components\x18\x04 \x03(\tR\rvfsComponents\x128\n" + + "\x05depth\x18\x03 \x01(\x04B\"\xe2\xfc\xe3\xc4\x01\x1c\x12\x1aDepth of directory refreshR\x05depth\"\xd2\x01\n" + + "\rVFSFileBuffer\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12\x16\n" + + "\x06offset\x18\x03 \x01(\x04R\x06offset\x12\x16\n" + + "\x06length\x18\x04 \x01(\rR\x06length\x12\x12\n" + + "\x04data\x18\x05 \x01(\fR\x04data\x12\x1e\n" + + "\n" + + "components\x18\x06 \x03(\tR\n" + + "components\x12\x15\n" + + "\x06org_id\x18\a \x01(\tR\x05orgId\x12\x1d\n" + + "\apadding\x18\b \x01(\bH\x00R\apadding\x88\x01\x01B\n" + + "\n" + + "\b_padding\"Q\n" + + "\x13NotificationRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12\x1d\n" + + "\n" + + "notify_all\x18\x02 \x01(\bR\tnotifyAll\"r\n" + + "\fEventRequest\x12\x14\n" + + "\x05queue\x18\x01 \x01(\tR\x05queue\x12\x12\n" + + "\x04node\x18\x02 \x01(\tR\x04node\x12!\n" + + "\fwatcher_name\x18\x03 \x01(\tR\vwatcherName\x12\x15\n" + + "\x06org_id\x18\x04 \x01(\tR\x05orgId\"=\n" + + "\rEventResponse\x12\x16\n" + + "\x06source\x18\x01 \x01(\tR\x06source\x12\x14\n" + + "\x05jsonl\x18\x02 \x01(\fR\x05jsonl\"\xd7\x01\n" + + "\x10PushEventRequest\x12\x1a\n" + + "\bartifact\x18\x01 \x01(\tR\bartifact\x12\x1b\n" + + "\tclient_id\x18\x02 \x01(\tR\bclientId\x12\x17\n" + + "\aflow_id\x18\x03 \x01(\tR\x06flowId\x12\x14\n" + + "\x05jsonl\x18\x04 \x01(\fR\x05jsonl\x12\x12\n" + + "\x04rows\x18\x05 \x01(\x03R\x04rows\x12\x15\n" + + "\x06org_id\x18\x06 \x01(\tR\x05orgId\x12\x14\n" + + "\x05write\x18\a \x01(\bR\x05write\x12\x1a\n" + + "\busername\x18\b \x01(\tR\busername2\xad?\n" + + "\x03API\x12R\n" + + "\n" + + "CreateHunt\x12\v.proto.Hunt\x1a\x18.proto.StartFlowResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/CreateHunt\x12]\n" + + "\fEstimateHunt\x12\x1a.proto.HuntEstimateRequest\x1a\x10.proto.HuntStats\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/EstimateHunt\x12]\n" + + "\fGetHuntTable\x12\x16.proto.GetTableRequest\x1a\x17.proto.GetTableResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v1/GetHuntTable\x12Y\n" + + "\tListHunts\x12\x17.proto.ListHuntsRequest\x1a\x18.proto.ListHuntsResponse\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/api/v1/ListHunts\x12F\n" + + "\aGetHunt\x12\x15.proto.GetHuntRequest\x1a\v.proto.Hunt\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/GetHunt\x12S\n" + + "\vGetHuntTags\x12\x16.google.protobuf.Empty\x1a\x0f.proto.HuntTags\"\x1b\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/GetHuntTags\x12X\n" + + "\n" + + "ModifyHunt\x12\x13.proto.HuntMutation\x1a\x16.google.protobuf.Empty\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/ModifyHunt\x12]\n" + + "\fGetHuntFlows\x12\x16.proto.GetTableRequest\x1a\x17.proto.GetTableResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v1/GetHuntFlows\x12g\n" + + "\x0eGetHuntResults\x12\x1c.proto.GetHuntResultsRequest\x1a\x17.proto.GetTableResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/GetHuntResults\x12d\n" + + "\rNotifyClients\x12\x1a.proto.NotificationRequest\x1a\x16.google.protobuf.Empty\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/NotifyClient\x12_\n" + + "\fLabelClients\x12\x1a.proto.LabelClientsRequest\x1a\x12.proto.APIResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/LabelClients\x12g\n" + + "\vListClients\x12\x1b.proto.SearchClientsRequest\x1a\x1c.proto.SearchClientsResponse\"\x1d\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/SearchClients\x12]\n" + + "\tGetClient\x12\x17.proto.GetClientRequest\x1a\x10.proto.ApiClient\"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v1/GetClient/{client_id}\x12r\n" + + "\x11GetClientMetadata\x12\x17.proto.GetClientRequest\x1a\x15.proto.ClientMetadata\"-\x82\xd3\xe4\x93\x02'\x12%/api/v1/GetClientMetadata/{client_id}\x12r\n" + + "\x11SetClientMetadata\x12\x1f.proto.SetClientMetadataRequest\x1a\x16.google.protobuf.Empty\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\"\x19/api/v1/SetClientMetadata\x12a\n" + + "\x0eGetClientFlows\x12\x16.proto.GetTableRequest\x1a\x17.proto.GetTableResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/GetClientFlows\x12Z\n" + + "\x0fGetUserUITraits\x12\x16.google.protobuf.Empty\x1a\x0e.proto.ApiUser\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/GetUserUITraits\x12l\n" + + "\rSetGUIOptions\x12\x1b.proto.SetGUIOptionsRequest\x1a\x1c.proto.SetGUIOptionsResponse\" \x82\xd3\xe4\x93\x02\x1a:\x01*\"\x15/api/v1/SetGUIOptions\x12J\n" + + "\bGetUsers\x12\x16.google.protobuf.Empty\x1a\f.proto.Users\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/GetUsers\x12V\n" + + "\x0eGetGlobalUsers\x12\x16.google.protobuf.Empty\x1a\f.proto.Users\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/GetGlobalUsers\x12R\n" + + "\fGetUserRoles\x12\x12.proto.UserRequest\x1a\x10.proto.UserRoles\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v1/GetUserRoles\x12Y\n" + + "\fSetUserRoles\x12\x10.proto.UserRoles\x1a\x16.google.protobuf.Empty\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/SetUserRoles\x12V\n" + + "\aGetUser\x12\x12.proto.UserRequest\x1a\x17.proto.VelociraptorUser\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/GetUser/{name}\x12]\n" + + "\n" + + "CreateUser\x12\x18.proto.UpdateUserRequest\x1a\x16.google.protobuf.Empty\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/CreateUser\x12W\n" + + "\x10GetUserFavorites\x12\x0f.proto.Favorite\x1a\x10.proto.Favorites\" \x82\xd3\xe4\x93\x02\x1a\x12\x18/api/v1/GetUserFavorites\x12`\n" + + "\vSetPassword\x12\x19.proto.SetPasswordRequest\x1a\x16.google.protobuf.Empty\"\x1e\x82\xd3\xe4\x93\x02\x18:\x01*\"\x13/api/v1/SetPassword\x12o\n" + + "\x10VFSListDirectory\x12\x15.proto.VFSListRequest\x1a\x16.proto.VFSListResponse\",\x82\xd3\xe4\x93\x02&\x12$/api/v1/VFSListDirectory/{client_id}\x12o\n" + + "\x15VFSListDirectoryFiles\x12\x16.proto.GetTableRequest\x1a\x17.proto.GetTableResponse\"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v1/VFSListDirectoryFiles\x12\x82\x01\n" + + "\x13VFSRefreshDirectory\x12!.proto.VFSRefreshDirectoryRequest\x1a .proto.ArtifactCollectorResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/VFSRefreshDirectory\x12c\n" + + "\x10VFSStatDirectory\x12\x15.proto.VFSListRequest\x1a\x16.proto.VFSListResponse\" \x82\xd3\xe4\x93\x02\x1a\x12\x18/api/v1/VFSStatDirectory\x12i\n" + + "\x0fVFSStatDownload\x12\x1d.proto.VFSStatDownloadRequest\x1a\x16.proto.VFSDownloadInfo\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/VFSStatDownload\x12n\n" + + "\x0fVFSDownloadFile\x12\x1d.proto.VFSStatDownloadRequest\x1a\x18.proto.StartFlowResponse\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/api/v1/VFSDownloadFile\x12U\n" + + "\bGetTable\x12\x16.proto.GetTableRequest\x1a\x17.proto.GetTableResponse\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/GetTable\x12`\n" + + "\n" + + "SearchFile\x12\x18.proto.SearchFileRequest\x1a\x19.proto.SearchFileResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/SearchFile\x12u\n" + + "\x0fCollectArtifact\x12\x1c.proto.ArtifactCollectorArgs\x1a .proto.ArtifactCollectorResponse\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/api/v1/CollectArtifact\x12\\\n" + + "\n" + + "CancelFlow\x12\x15.proto.ApiFlowRequest\x1a\x18.proto.StartFlowResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/CancelFlow\x12Z\n" + + "\n" + + "ResumeFlow\x12\x15.proto.ApiFlowRequest\x1a\x16.google.protobuf.Empty\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/ResumeFlow\x12[\n" + + "\x0eGetFlowDetails\x12\x15.proto.ApiFlowRequest\x1a\x12.proto.FlowDetails\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/GetFlowDetails\x12g\n" + + "\x0fGetFlowRequests\x12\x15.proto.ApiFlowRequest\x1a\x1c.proto.ApiFlowRequestDetails\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/GetFlowRequests\x12q\n" + + "\x15GetKeywordCompletions\x12\x16.google.protobuf.Empty\x1a\x19.proto.KeywordCompletions\"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/api/v1/GetKeywordCompletions\x12c\n" + + "\vReformatVQL\x12\x19.proto.ReformatVQLMessage\x1a\x19.proto.ReformatVQLMessage\"\x1e\x82\xd3\xe4\x93\x02\x18:\x01*\"\x13/api/v1/ReformatVQL\x12g\n" + + "\fGetArtifacts\x12\x1a.proto.GetArtifactsRequest\x1a\x1a.proto.ArtifactDescriptors\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/GetArtifacts\x12i\n" + + "\x0fGetArtifactFile\x12\x19.proto.GetArtifactRequest\x1a\x1a.proto.GetArtifactResponse\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/GetArtifactFile\x12l\n" + + "\x0fSetArtifactFile\x12\x19.proto.SetArtifactRequest\x1a\x1a.proto.SetArtifactResponse\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/api/v1/SetArtifactFile\x12x\n" + + "\x10LoadArtifactPack\x12\x1e.proto.LoadArtifactPackRequest\x1a\x1f.proto.LoadArtifactPackResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/LoadArtifactPack\x12\\\n" + + "\n" + + "SearchDocs\x12\x17.proto.DocSearchRequest\x1a\x19.proto.DocSearchResponses\"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/api/v1/SearchDocs\x12D\n" + + "\vGetToolInfo\x12\v.proto.Tool\x1a\v.proto.Tool\"\x1b\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/GetToolInfo\x12G\n" + + "\vSetToolInfo\x12\v.proto.Tool\x1a\v.proto.Tool\"\x1e\x82\xd3\xe4\x93\x02\x18:\x01*\"\x13/api/v1/SetToolInfo\x12\\\n" + + "\tGetReport\x12\x17.proto.GetReportRequest\x1a\x18.proto.GetReportResponse\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/GetReport\x12z\n" + + "\x18GetServerMonitoringState\x12\x16.google.protobuf.Empty\x1a\x1c.proto.ArtifactCollectorArgs\"(\x82\xd3\xe4\x93\x02\"\x12 /api/v1/GetServerMonitoringState\x12\x83\x01\n" + + "\x18SetServerMonitoringState\x12\x1c.proto.ArtifactCollectorArgs\x1a\x1c.proto.ArtifactCollectorArgs\"+\x82\xd3\xe4\x93\x02%:\x01*\" /api/v1/SetServerMonitoringState\x12\x85\x01\n" + + "\x18GetClientMonitoringState\x12&.proto.GetClientMonitoringStateRequest\x1a\x17.proto.ClientEventTable\"(\x82\xd3\xe4\x93\x02\"\x12 /api/v1/GetClientMonitoringState\x12x\n" + + "\x18SetClientMonitoringState\x12\x17.proto.ClientEventTable\x1a\x16.google.protobuf.Empty\"+\x82\xd3\xe4\x93\x02%:\x01*\" /api/v1/SetClientMonitoringState\x12\x9c\x01\n" + + "\x19ListAvailableEventResults\x12'.proto.ListAvailableEventResultsRequest\x1a(.proto.ListAvailableEventResultsResponse\",\x82\xd3\xe4\x93\x02&:\x01*\"!/api/v1/ListAvailableEventResults\x12t\n" + + "\x12CreateDownloadFile\x12\x1c.proto.CreateDownloadRequest\x1a\x1d.proto.CreateDownloadResponse\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/api/v1/CreateDownload\x12Z\n" + + "\fGetNotebooks\x12\x1a.proto.NotebookCellRequest\x1a\x10.proto.Notebooks\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v1/GetNotebooks\x12_\n" + + "\vNewNotebook\x12\x17.proto.NotebookMetadata\x1a\x17.proto.NotebookMetadata\"\x1e\x82\xd3\xe4\x93\x02\x18:\x01*\"\x13/api/v1/NewNotebook\x12e\n" + + "\x0eUpdateNotebook\x12\x17.proto.NotebookMetadata\x1a\x17.proto.NotebookMetadata\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/api/v1/UpdateNotebook\x12d\n" + + "\x0eDeleteNotebook\x12\x17.proto.NotebookMetadata\x1a\x16.google.protobuf.Empty\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/api/v1/DeleteNotebook\x12j\n" + + "\x0fNewNotebookCell\x12\x1a.proto.NotebookCellRequest\x1a\x17.proto.NotebookMetadata\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/api/v1/NewNotebookCell\x12c\n" + + "\x0fGetNotebookCell\x12\x1a.proto.NotebookCellRequest\x1a\x13.proto.NotebookCell\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/GetNotebookCell\x12l\n" + + "\x12UpdateNotebookCell\x12\x1a.proto.NotebookCellRequest\x1a\x13.proto.NotebookCell\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/UpdateNotebookCell\x12l\n" + + "\x12RevertNotebookCell\x12\x1a.proto.NotebookCellRequest\x1a\x13.proto.NotebookCell\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/RevertNotebookCell\x12o\n" + + "\x12CancelNotebookCell\x12\x1a.proto.NotebookCellRequest\x1a\x16.google.protobuf.Empty\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/CancelNotebookCell\x12\x81\x01\n" + + "\x1aCreateNotebookDownloadFile\x12\x1c.proto.NotebookExportRequest\x1a\x16.google.protobuf.Empty\"-\x82\xd3\xe4\x93\x02':\x01*\"\"/api/v1/CreateNotebookDownloadFile\x12\x8c\x01\n" + + "\x18UploadNotebookAttachment\x12 .proto.NotebookFileUploadRequest\x1a!.proto.NotebookFileUploadResponse\"+\x82\xd3\xe4\x93\x02%:\x01*\" /api/v1/UploadNotebookAttachment\x12\x81\x01\n" + + "\x18RemoveNotebookAttachment\x12 .proto.NotebookFileUploadRequest\x1a\x16.google.protobuf.Empty\"+\x82\xd3\xe4\x93\x02%:\x01*\" /api/v1/RemoveNotebookAttachment\x12i\n" + + "\x10AnnotateTimeline\x12\x18.proto.AnnotationRequest\x1a\x16.google.protobuf.Empty\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/AnnotateTimeline\x12q\n" + + "\x14GetSecretDefinitions\x12\x16.google.protobuf.Empty\x1a\x1b.proto.SecretDefinitionList\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/GetSecretDefinitions\x12P\n" + + "\tAddSecret\x12\r.proto.Secret\x1a\x16.google.protobuf.Empty\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/AddSecret\x12c\n" + + "\fModifySecret\x12\x1a.proto.ModifySecretRequest\x1a\x16.google.protobuf.Empty\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/ModifySecret\x12D\n" + + "\tGetSecret\x12\r.proto.Secret\x1a\r.proto.Secret\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/api/v1/GetSecret\x12<\n" + + "\fVFSGetBuffer\x12\x14.proto.VFSFileBuffer\x1a\x14.proto.VFSFileBuffer\"\x00\x128\n" + + "\x05Query\x12\x17.proto.VQLCollectorArgs\x1a\x12.proto.VQLResponse\"\x000\x01\x12;\n" + + "\n" + + "WatchEvent\x12\x13.proto.EventRequest\x1a\x14.proto.EventResponse\"\x000\x01\x12?\n" + + "\n" + + "PushEvents\x12\x17.proto.PushEventRequest\x1a\x16.google.protobuf.Empty\"\x00\x12:\n" + + "\n" + + "WriteEvent\x12\x12.proto.VQLResponse\x1a\x16.google.protobuf.Empty\"\x00\x12B\n" + + "\tScheduler\x12\x16.proto.ScheduleRequest\x1a\x17.proto.ScheduleResponse\"\x00(\x010\x01\x127\n" + + "\n" + + "GetSubject\x12\x12.proto.DataRequest\x1a\x13.proto.DataResponse\"\x00\x127\n" + + "\n" + + "SetSubject\x12\x12.proto.DataRequest\x1a\x13.proto.DataResponse\"\x00\x12=\n" + + "\rDeleteSubject\x12\x12.proto.DataRequest\x1a\x16.google.protobuf.Empty\"\x00\x12A\n" + + "\fListChildren\x12\x12.proto.DataRequest\x1a\x1b.proto.ListChildrenResponse\"\x00\x12>\n" + + "\x05Check\x12\x19.proto.HealthCheckRequest\x1a\x1a.proto.HealthCheckResponseB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_api_proto_rawDescOnce sync.Once - file_api_proto_rawDescData = file_api_proto_rawDesc + file_api_proto_rawDescData []byte ) func file_api_proto_rawDescGZIP() []byte { file_api_proto_rawDescOnce.Do(func() { - file_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_proto_rawDescData) + file_api_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_proto_rawDesc), len(file_api_proto_rawDesc))) }) return file_api_proto_rawDescData } var file_api_proto_msgTypes = make([]protoimpl.MessageInfo, 9) -var file_api_proto_goTypes = []interface{}{ +var file_api_proto_goTypes = []any{ (*StartFlowResponse)(nil), // 0: proto.StartFlowResponse (*Approval)(nil), // 1: proto.Approval (*ApprovalList)(nil), // 2: proto.ApprovalList @@ -1527,122 +1039,12 @@ func file_api_proto_init() { file_scheduler_proto_init() file_secrets_proto_init() file_timeline_api_proto_init() - if !protoimpl.UnsafeEnabled { - file_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StartFlowResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Approval); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VFSRefreshDirectoryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VFSFileBuffer); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PushEventRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_api_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_api_proto_msgTypes[4].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_api_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_proto_rawDesc), len(file_api_proto_rawDesc)), NumEnums: 0, NumMessages: 9, NumExtensions: 0, @@ -1653,7 +1055,6 @@ func file_api_proto_init() { MessageInfos: file_api_proto_msgTypes, }.Build() File_api_proto = out.File - file_api_proto_rawDesc = nil file_api_proto_goTypes = nil file_api_proto_depIdxs = nil } diff --git a/api/proto/api.pb.gw.go b/api/proto/api.pb.gw.go index 0f6fecb85..ec0acf50a 100644 --- a/api/proto/api.pb.gw.go +++ b/api/proto/api.pb.gw.go @@ -22,8 +22,8 @@ import ( "google.golang.org/grpc/status" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/emptypb" - proto_5 "www.velocidex.com/golang/velociraptor/artifacts/proto" - proto_0 "www.velocidex.com/golang/velociraptor/flows/proto" + proto_3 "www.velocidex.com/golang/velociraptor/artifacts/proto" + proto_6 "www.velocidex.com/golang/velociraptor/flows/proto" ) // Suppress "imported and not used" errors @@ -439,7 +439,7 @@ func local_request_API_ListClients_0(ctx context.Context, marshaler runtime.Mars } var ( - filter_API_GetClient_0 = &utilities.DoubleArray{Encoding: map[string]int{"client_id": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + filter_API_GetClient_0 = &utilities.DoubleArray{Encoding: map[string]int{"client_id": 0, "clientId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} ) func request_API_GetClient_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -509,7 +509,7 @@ func local_request_API_GetClient_0(ctx context.Context, marshaler runtime.Marsha } var ( - filter_API_GetClientMetadata_0 = &utilities.DoubleArray{Encoding: map[string]int{"client_id": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + filter_API_GetClientMetadata_0 = &utilities.DoubleArray{Encoding: map[string]int{"client_id": 0, "clientId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} ) func request_API_GetClientMetadata_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -807,7 +807,7 @@ func local_request_API_SetUserRoles_0(ctx context.Context, marshaler runtime.Mar } var ( - filter_API_GetUser_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + filter_API_GetUser_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} ) func request_API_GetUser_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -981,7 +981,7 @@ func local_request_API_SetPassword_0(ctx context.Context, marshaler runtime.Mars } var ( - filter_API_VFSListDirectory_0 = &utilities.DoubleArray{Encoding: map[string]int{"client_id": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + filter_API_VFSListDirectory_0 = &utilities.DoubleArray{Encoding: map[string]int{"client_id": 0, "clientId": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} ) func request_API_VFSListDirectory_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -1297,7 +1297,7 @@ func local_request_API_SearchFile_0(ctx context.Context, marshaler runtime.Marsh } func request_API_CollectArtifact_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ArtifactCollectorArgs + var protoReq proto_6.ArtifactCollectorArgs var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1314,7 +1314,7 @@ func request_API_CollectArtifact_0(ctx context.Context, marshaler runtime.Marsha } func local_request_API_CollectArtifact_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ArtifactCollectorArgs + var protoReq proto_6.ArtifactCollectorArgs var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1701,7 +1701,7 @@ var ( ) func request_API_GetToolInfo_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_5.Tool + var protoReq proto_3.Tool var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -1717,7 +1717,7 @@ func request_API_GetToolInfo_0(ctx context.Context, marshaler runtime.Marshaler, } func local_request_API_GetToolInfo_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_5.Tool + var protoReq proto_3.Tool var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -1733,7 +1733,7 @@ func local_request_API_GetToolInfo_0(ctx context.Context, marshaler runtime.Mars } func request_API_SetToolInfo_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_5.Tool + var protoReq proto_3.Tool var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1750,7 +1750,7 @@ func request_API_SetToolInfo_0(ctx context.Context, marshaler runtime.Marshaler, } func local_request_API_SetToolInfo_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_5.Tool + var protoReq proto_3.Tool var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1819,7 +1819,7 @@ func local_request_API_GetServerMonitoringState_0(ctx context.Context, marshaler } func request_API_SetServerMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ArtifactCollectorArgs + var protoReq proto_6.ArtifactCollectorArgs var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1836,7 +1836,7 @@ func request_API_SetServerMonitoringState_0(ctx context.Context, marshaler runti } func local_request_API_SetServerMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ArtifactCollectorArgs + var protoReq proto_6.ArtifactCollectorArgs var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1857,7 +1857,7 @@ var ( ) func request_API_GetClientMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.GetClientMonitoringStateRequest + var protoReq proto_6.GetClientMonitoringStateRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -1873,7 +1873,7 @@ func request_API_GetClientMonitoringState_0(ctx context.Context, marshaler runti } func local_request_API_GetClientMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.GetClientMonitoringStateRequest + var protoReq proto_6.GetClientMonitoringStateRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -1889,7 +1889,7 @@ func local_request_API_GetClientMonitoringState_0(ctx context.Context, marshaler } func request_API_SetClientMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ClientEventTable + var protoReq proto_6.ClientEventTable var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -1906,7 +1906,7 @@ func request_API_SetClientMonitoringState_0(ctx context.Context, marshaler runti } func local_request_API_SetClientMonitoringState_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq proto_0.ClientEventTable + var protoReq proto_6.ClientEventTable var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -2570,20 +2570,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CreateHunt", runtime.WithHTTPPathPattern("/api/v1/CreateHunt")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CreateHunt", runtime.WithHTTPPathPattern("/api/v1/CreateHunt")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_CreateHunt_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_CreateHunt_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CreateHunt_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CreateHunt_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2593,20 +2595,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/EstimateHunt", runtime.WithHTTPPathPattern("/api/v1/EstimateHunt")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/EstimateHunt", runtime.WithHTTPPathPattern("/api/v1/EstimateHunt")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_EstimateHunt_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_EstimateHunt_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_EstimateHunt_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_EstimateHunt_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2616,20 +2620,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetHuntTable", runtime.WithHTTPPathPattern("/api/v1/GetHuntTable")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetHuntTable", runtime.WithHTTPPathPattern("/api/v1/GetHuntTable")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetHuntTable_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetHuntTable_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetHuntTable_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetHuntTable_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2639,20 +2645,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ListHunts", runtime.WithHTTPPathPattern("/api/v1/ListHunts")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ListHunts", runtime.WithHTTPPathPattern("/api/v1/ListHunts")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_ListHunts_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_ListHunts_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ListHunts_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ListHunts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2662,20 +2670,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetHunt", runtime.WithHTTPPathPattern("/api/v1/GetHunt")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetHunt", runtime.WithHTTPPathPattern("/api/v1/GetHunt")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetHunt_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetHunt_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetHunt_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetHunt_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2685,20 +2695,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetHuntTags", runtime.WithHTTPPathPattern("/api/v1/GetHuntTags")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetHuntTags", runtime.WithHTTPPathPattern("/api/v1/GetHuntTags")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetHuntTags_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetHuntTags_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetHuntTags_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetHuntTags_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2708,20 +2720,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ModifyHunt", runtime.WithHTTPPathPattern("/api/v1/ModifyHunt")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ModifyHunt", runtime.WithHTTPPathPattern("/api/v1/ModifyHunt")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_ModifyHunt_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_ModifyHunt_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ModifyHunt_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ModifyHunt_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2731,20 +2745,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetHuntFlows", runtime.WithHTTPPathPattern("/api/v1/GetHuntFlows")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetHuntFlows", runtime.WithHTTPPathPattern("/api/v1/GetHuntFlows")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetHuntFlows_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetHuntFlows_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetHuntFlows_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetHuntFlows_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2754,20 +2770,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetHuntResults", runtime.WithHTTPPathPattern("/api/v1/GetHuntResults")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetHuntResults", runtime.WithHTTPPathPattern("/api/v1/GetHuntResults")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetHuntResults_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetHuntResults_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetHuntResults_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetHuntResults_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2777,20 +2795,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/NotifyClients", runtime.WithHTTPPathPattern("/api/v1/NotifyClient")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/NotifyClients", runtime.WithHTTPPathPattern("/api/v1/NotifyClient")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_NotifyClients_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_NotifyClients_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_NotifyClients_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_NotifyClients_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2800,20 +2820,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/LabelClients", runtime.WithHTTPPathPattern("/api/v1/LabelClients")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/LabelClients", runtime.WithHTTPPathPattern("/api/v1/LabelClients")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_LabelClients_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_LabelClients_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_LabelClients_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_LabelClients_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2823,20 +2845,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ListClients", runtime.WithHTTPPathPattern("/api/v1/SearchClients")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ListClients", runtime.WithHTTPPathPattern("/api/v1/SearchClients")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_ListClients_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_ListClients_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ListClients_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ListClients_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2846,20 +2870,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetClient", runtime.WithHTTPPathPattern("/api/v1/GetClient/{client_id}")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetClient", runtime.WithHTTPPathPattern("/api/v1/GetClient/{client_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetClient_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetClient_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetClient_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetClient_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2869,20 +2895,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetClientMetadata", runtime.WithHTTPPathPattern("/api/v1/GetClientMetadata/{client_id}")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetClientMetadata", runtime.WithHTTPPathPattern("/api/v1/GetClientMetadata/{client_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetClientMetadata_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetClientMetadata_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetClientMetadata_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetClientMetadata_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2892,20 +2920,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetClientMetadata", runtime.WithHTTPPathPattern("/api/v1/SetClientMetadata")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetClientMetadata", runtime.WithHTTPPathPattern("/api/v1/SetClientMetadata")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_SetClientMetadata_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_SetClientMetadata_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetClientMetadata_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetClientMetadata_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2915,20 +2945,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetClientFlows", runtime.WithHTTPPathPattern("/api/v1/GetClientFlows")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetClientFlows", runtime.WithHTTPPathPattern("/api/v1/GetClientFlows")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetClientFlows_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetClientFlows_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetClientFlows_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetClientFlows_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2938,20 +2970,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetUserUITraits", runtime.WithHTTPPathPattern("/api/v1/GetUserUITraits")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetUserUITraits", runtime.WithHTTPPathPattern("/api/v1/GetUserUITraits")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetUserUITraits_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetUserUITraits_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetUserUITraits_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetUserUITraits_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2961,20 +2995,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetGUIOptions", runtime.WithHTTPPathPattern("/api/v1/SetGUIOptions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetGUIOptions", runtime.WithHTTPPathPattern("/api/v1/SetGUIOptions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_SetGUIOptions_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_SetGUIOptions_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetGUIOptions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetGUIOptions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2984,20 +3020,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetUsers", runtime.WithHTTPPathPattern("/api/v1/GetUsers")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetUsers", runtime.WithHTTPPathPattern("/api/v1/GetUsers")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetUsers_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetUsers_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetUsers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetUsers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3007,20 +3045,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetGlobalUsers", runtime.WithHTTPPathPattern("/api/v1/GetGlobalUsers")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetGlobalUsers", runtime.WithHTTPPathPattern("/api/v1/GetGlobalUsers")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetGlobalUsers_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetGlobalUsers_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetGlobalUsers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetGlobalUsers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3030,20 +3070,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetUserRoles", runtime.WithHTTPPathPattern("/api/v1/GetUserRoles")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetUserRoles", runtime.WithHTTPPathPattern("/api/v1/GetUserRoles")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetUserRoles_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetUserRoles_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetUserRoles_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetUserRoles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3053,20 +3095,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetUserRoles", runtime.WithHTTPPathPattern("/api/v1/SetUserRoles")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetUserRoles", runtime.WithHTTPPathPattern("/api/v1/SetUserRoles")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_SetUserRoles_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_SetUserRoles_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetUserRoles_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetUserRoles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3076,20 +3120,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetUser", runtime.WithHTTPPathPattern("/api/v1/GetUser/{name}")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetUser", runtime.WithHTTPPathPattern("/api/v1/GetUser/{name}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetUser_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetUser_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetUser_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3099,20 +3145,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CreateUser", runtime.WithHTTPPathPattern("/api/v1/CreateUser")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CreateUser", runtime.WithHTTPPathPattern("/api/v1/CreateUser")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_CreateUser_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_CreateUser_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CreateUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CreateUser_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3122,20 +3170,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetUserFavorites", runtime.WithHTTPPathPattern("/api/v1/GetUserFavorites")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetUserFavorites", runtime.WithHTTPPathPattern("/api/v1/GetUserFavorites")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetUserFavorites_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetUserFavorites_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetUserFavorites_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetUserFavorites_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3145,20 +3195,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetPassword", runtime.WithHTTPPathPattern("/api/v1/SetPassword")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetPassword", runtime.WithHTTPPathPattern("/api/v1/SetPassword")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_SetPassword_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_SetPassword_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetPassword_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetPassword_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3168,20 +3220,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSListDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSListDirectory/{client_id}")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSListDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSListDirectory/{client_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_VFSListDirectory_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_VFSListDirectory_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSListDirectory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSListDirectory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3191,20 +3245,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSListDirectoryFiles", runtime.WithHTTPPathPattern("/api/v1/VFSListDirectoryFiles")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSListDirectoryFiles", runtime.WithHTTPPathPattern("/api/v1/VFSListDirectoryFiles")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_VFSListDirectoryFiles_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_VFSListDirectoryFiles_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSListDirectoryFiles_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSListDirectoryFiles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3214,20 +3270,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSRefreshDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSRefreshDirectory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSRefreshDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSRefreshDirectory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_VFSRefreshDirectory_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_VFSRefreshDirectory_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSRefreshDirectory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSRefreshDirectory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3237,20 +3295,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSStatDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSStatDirectory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSStatDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSStatDirectory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_VFSStatDirectory_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_VFSStatDirectory_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSStatDirectory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSStatDirectory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3260,20 +3320,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSStatDownload", runtime.WithHTTPPathPattern("/api/v1/VFSStatDownload")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSStatDownload", runtime.WithHTTPPathPattern("/api/v1/VFSStatDownload")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_VFSStatDownload_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_VFSStatDownload_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSStatDownload_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSStatDownload_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3283,20 +3345,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSDownloadFile", runtime.WithHTTPPathPattern("/api/v1/VFSDownloadFile")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/VFSDownloadFile", runtime.WithHTTPPathPattern("/api/v1/VFSDownloadFile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_VFSDownloadFile_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_VFSDownloadFile_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSDownloadFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSDownloadFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3306,20 +3370,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetTable", runtime.WithHTTPPathPattern("/api/v1/GetTable")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetTable", runtime.WithHTTPPathPattern("/api/v1/GetTable")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetTable_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetTable_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetTable_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetTable_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3329,20 +3395,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SearchFile", runtime.WithHTTPPathPattern("/api/v1/SearchFile")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SearchFile", runtime.WithHTTPPathPattern("/api/v1/SearchFile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_SearchFile_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_SearchFile_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SearchFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SearchFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3352,20 +3420,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CollectArtifact", runtime.WithHTTPPathPattern("/api/v1/CollectArtifact")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CollectArtifact", runtime.WithHTTPPathPattern("/api/v1/CollectArtifact")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_CollectArtifact_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_CollectArtifact_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CollectArtifact_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CollectArtifact_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3375,20 +3445,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CancelFlow", runtime.WithHTTPPathPattern("/api/v1/CancelFlow")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CancelFlow", runtime.WithHTTPPathPattern("/api/v1/CancelFlow")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_CancelFlow_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_CancelFlow_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CancelFlow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CancelFlow_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3398,20 +3470,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ResumeFlow", runtime.WithHTTPPathPattern("/api/v1/ResumeFlow")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ResumeFlow", runtime.WithHTTPPathPattern("/api/v1/ResumeFlow")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_ResumeFlow_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_ResumeFlow_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ResumeFlow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ResumeFlow_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3421,20 +3495,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetFlowDetails", runtime.WithHTTPPathPattern("/api/v1/GetFlowDetails")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetFlowDetails", runtime.WithHTTPPathPattern("/api/v1/GetFlowDetails")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetFlowDetails_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetFlowDetails_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetFlowDetails_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetFlowDetails_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3444,20 +3520,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetFlowRequests", runtime.WithHTTPPathPattern("/api/v1/GetFlowRequests")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetFlowRequests", runtime.WithHTTPPathPattern("/api/v1/GetFlowRequests")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetFlowRequests_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetFlowRequests_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetFlowRequests_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetFlowRequests_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3467,20 +3545,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetKeywordCompletions", runtime.WithHTTPPathPattern("/api/v1/GetKeywordCompletions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetKeywordCompletions", runtime.WithHTTPPathPattern("/api/v1/GetKeywordCompletions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetKeywordCompletions_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetKeywordCompletions_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetKeywordCompletions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetKeywordCompletions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3490,20 +3570,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ReformatVQL", runtime.WithHTTPPathPattern("/api/v1/ReformatVQL")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ReformatVQL", runtime.WithHTTPPathPattern("/api/v1/ReformatVQL")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_ReformatVQL_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_ReformatVQL_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ReformatVQL_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ReformatVQL_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3513,20 +3595,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetArtifacts", runtime.WithHTTPPathPattern("/api/v1/GetArtifacts")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetArtifacts", runtime.WithHTTPPathPattern("/api/v1/GetArtifacts")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetArtifacts_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetArtifacts_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetArtifacts_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetArtifacts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3536,20 +3620,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetArtifactFile", runtime.WithHTTPPathPattern("/api/v1/GetArtifactFile")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetArtifactFile", runtime.WithHTTPPathPattern("/api/v1/GetArtifactFile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetArtifactFile_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetArtifactFile_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetArtifactFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetArtifactFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3559,20 +3645,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetArtifactFile", runtime.WithHTTPPathPattern("/api/v1/SetArtifactFile")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetArtifactFile", runtime.WithHTTPPathPattern("/api/v1/SetArtifactFile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_SetArtifactFile_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_SetArtifactFile_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetArtifactFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetArtifactFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3582,20 +3670,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/LoadArtifactPack", runtime.WithHTTPPathPattern("/api/v1/LoadArtifactPack")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/LoadArtifactPack", runtime.WithHTTPPathPattern("/api/v1/LoadArtifactPack")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_LoadArtifactPack_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_LoadArtifactPack_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_LoadArtifactPack_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_LoadArtifactPack_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3605,20 +3695,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SearchDocs", runtime.WithHTTPPathPattern("/api/v1/SearchDocs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SearchDocs", runtime.WithHTTPPathPattern("/api/v1/SearchDocs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_SearchDocs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_SearchDocs_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SearchDocs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SearchDocs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3628,20 +3720,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetToolInfo", runtime.WithHTTPPathPattern("/api/v1/GetToolInfo")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetToolInfo", runtime.WithHTTPPathPattern("/api/v1/GetToolInfo")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetToolInfo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetToolInfo_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetToolInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetToolInfo_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3651,20 +3745,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetToolInfo", runtime.WithHTTPPathPattern("/api/v1/SetToolInfo")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetToolInfo", runtime.WithHTTPPathPattern("/api/v1/SetToolInfo")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_SetToolInfo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_SetToolInfo_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetToolInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetToolInfo_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3674,20 +3770,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetReport", runtime.WithHTTPPathPattern("/api/v1/GetReport")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetReport", runtime.WithHTTPPathPattern("/api/v1/GetReport")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetReport_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetReport_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetReport_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetReport_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3697,20 +3795,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetServerMonitoringState", runtime.WithHTTPPathPattern("/api/v1/GetServerMonitoringState")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetServerMonitoringState", runtime.WithHTTPPathPattern("/api/v1/GetServerMonitoringState")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetServerMonitoringState_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetServerMonitoringState_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetServerMonitoringState_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetServerMonitoringState_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3720,20 +3820,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetServerMonitoringState", runtime.WithHTTPPathPattern("/api/v1/SetServerMonitoringState")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetServerMonitoringState", runtime.WithHTTPPathPattern("/api/v1/SetServerMonitoringState")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_SetServerMonitoringState_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_SetServerMonitoringState_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetServerMonitoringState_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetServerMonitoringState_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3743,20 +3845,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetClientMonitoringState", runtime.WithHTTPPathPattern("/api/v1/GetClientMonitoringState")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetClientMonitoringState", runtime.WithHTTPPathPattern("/api/v1/GetClientMonitoringState")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetClientMonitoringState_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetClientMonitoringState_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetClientMonitoringState_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetClientMonitoringState_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3766,20 +3870,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetClientMonitoringState", runtime.WithHTTPPathPattern("/api/v1/SetClientMonitoringState")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/SetClientMonitoringState", runtime.WithHTTPPathPattern("/api/v1/SetClientMonitoringState")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_SetClientMonitoringState_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_SetClientMonitoringState_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetClientMonitoringState_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetClientMonitoringState_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3789,20 +3895,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ListAvailableEventResults", runtime.WithHTTPPathPattern("/api/v1/ListAvailableEventResults")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ListAvailableEventResults", runtime.WithHTTPPathPattern("/api/v1/ListAvailableEventResults")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_ListAvailableEventResults_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_ListAvailableEventResults_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ListAvailableEventResults_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ListAvailableEventResults_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3812,20 +3920,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CreateDownloadFile", runtime.WithHTTPPathPattern("/api/v1/CreateDownload")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CreateDownloadFile", runtime.WithHTTPPathPattern("/api/v1/CreateDownload")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_CreateDownloadFile_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_CreateDownloadFile_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CreateDownloadFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CreateDownloadFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3835,20 +3945,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetNotebooks", runtime.WithHTTPPathPattern("/api/v1/GetNotebooks")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetNotebooks", runtime.WithHTTPPathPattern("/api/v1/GetNotebooks")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetNotebooks_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetNotebooks_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetNotebooks_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetNotebooks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3858,20 +3970,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/NewNotebook", runtime.WithHTTPPathPattern("/api/v1/NewNotebook")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/NewNotebook", runtime.WithHTTPPathPattern("/api/v1/NewNotebook")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_NewNotebook_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_NewNotebook_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_NewNotebook_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_NewNotebook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3881,20 +3995,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/UpdateNotebook", runtime.WithHTTPPathPattern("/api/v1/UpdateNotebook")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/UpdateNotebook", runtime.WithHTTPPathPattern("/api/v1/UpdateNotebook")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_UpdateNotebook_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_UpdateNotebook_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_UpdateNotebook_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_UpdateNotebook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3904,20 +4020,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/DeleteNotebook", runtime.WithHTTPPathPattern("/api/v1/DeleteNotebook")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/DeleteNotebook", runtime.WithHTTPPathPattern("/api/v1/DeleteNotebook")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_DeleteNotebook_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_DeleteNotebook_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_DeleteNotebook_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_DeleteNotebook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3927,20 +4045,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/NewNotebookCell", runtime.WithHTTPPathPattern("/api/v1/NewNotebookCell")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/NewNotebookCell", runtime.WithHTTPPathPattern("/api/v1/NewNotebookCell")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_NewNotebookCell_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_NewNotebookCell_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_NewNotebookCell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_NewNotebookCell_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3950,20 +4070,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetNotebookCell", runtime.WithHTTPPathPattern("/api/v1/GetNotebookCell")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetNotebookCell", runtime.WithHTTPPathPattern("/api/v1/GetNotebookCell")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetNotebookCell_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetNotebookCell_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetNotebookCell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetNotebookCell_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3973,20 +4095,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/UpdateNotebookCell", runtime.WithHTTPPathPattern("/api/v1/UpdateNotebookCell")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/UpdateNotebookCell", runtime.WithHTTPPathPattern("/api/v1/UpdateNotebookCell")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_UpdateNotebookCell_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_UpdateNotebookCell_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_UpdateNotebookCell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_UpdateNotebookCell_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -3996,20 +4120,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/RevertNotebookCell", runtime.WithHTTPPathPattern("/api/v1/RevertNotebookCell")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/RevertNotebookCell", runtime.WithHTTPPathPattern("/api/v1/RevertNotebookCell")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_RevertNotebookCell_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_RevertNotebookCell_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_RevertNotebookCell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_RevertNotebookCell_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4019,20 +4145,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CancelNotebookCell", runtime.WithHTTPPathPattern("/api/v1/CancelNotebookCell")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CancelNotebookCell", runtime.WithHTTPPathPattern("/api/v1/CancelNotebookCell")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_CancelNotebookCell_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_CancelNotebookCell_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CancelNotebookCell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CancelNotebookCell_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4042,20 +4170,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CreateNotebookDownloadFile", runtime.WithHTTPPathPattern("/api/v1/CreateNotebookDownloadFile")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/CreateNotebookDownloadFile", runtime.WithHTTPPathPattern("/api/v1/CreateNotebookDownloadFile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_CreateNotebookDownloadFile_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_CreateNotebookDownloadFile_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CreateNotebookDownloadFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CreateNotebookDownloadFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4065,20 +4195,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/UploadNotebookAttachment", runtime.WithHTTPPathPattern("/api/v1/UploadNotebookAttachment")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/UploadNotebookAttachment", runtime.WithHTTPPathPattern("/api/v1/UploadNotebookAttachment")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_UploadNotebookAttachment_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_UploadNotebookAttachment_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_UploadNotebookAttachment_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_UploadNotebookAttachment_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4088,20 +4220,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/RemoveNotebookAttachment", runtime.WithHTTPPathPattern("/api/v1/RemoveNotebookAttachment")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/RemoveNotebookAttachment", runtime.WithHTTPPathPattern("/api/v1/RemoveNotebookAttachment")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_RemoveNotebookAttachment_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_RemoveNotebookAttachment_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_RemoveNotebookAttachment_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_RemoveNotebookAttachment_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4111,20 +4245,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/AnnotateTimeline", runtime.WithHTTPPathPattern("/api/v1/AnnotateTimeline")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/AnnotateTimeline", runtime.WithHTTPPathPattern("/api/v1/AnnotateTimeline")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_AnnotateTimeline_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_AnnotateTimeline_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_AnnotateTimeline_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_AnnotateTimeline_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4134,20 +4270,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetSecretDefinitions", runtime.WithHTTPPathPattern("/api/v1/GetSecretDefinitions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetSecretDefinitions", runtime.WithHTTPPathPattern("/api/v1/GetSecretDefinitions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetSecretDefinitions_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetSecretDefinitions_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetSecretDefinitions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetSecretDefinitions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4157,20 +4295,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/AddSecret", runtime.WithHTTPPathPattern("/api/v1/AddSecret")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/AddSecret", runtime.WithHTTPPathPattern("/api/v1/AddSecret")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_AddSecret_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_AddSecret_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_AddSecret_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_AddSecret_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4180,20 +4320,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ModifySecret", runtime.WithHTTPPathPattern("/api/v1/ModifySecret")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/ModifySecret", runtime.WithHTTPPathPattern("/api/v1/ModifySecret")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_ModifySecret_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_ModifySecret_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ModifySecret_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ModifySecret_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4203,20 +4345,22 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetSecret", runtime.WithHTTPPathPattern("/api/v1/GetSecret")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.API/GetSecret", runtime.WithHTTPPathPattern("/api/v1/GetSecret")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_API_GetSecret_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_API_GetSecret_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetSecret_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetSecret_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4226,7 +4370,7 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server // RegisterAPIHandlerFromEndpoint is same as RegisterAPIHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterAPIHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) + conn, err := grpc.DialContext(ctx, endpoint, opts...) if err != nil { return err } @@ -4265,19 +4409,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/CreateHunt", runtime.WithHTTPPathPattern("/api/v1/CreateHunt")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/CreateHunt", runtime.WithHTTPPathPattern("/api/v1/CreateHunt")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_CreateHunt_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_CreateHunt_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CreateHunt_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CreateHunt_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4285,19 +4431,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/EstimateHunt", runtime.WithHTTPPathPattern("/api/v1/EstimateHunt")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/EstimateHunt", runtime.WithHTTPPathPattern("/api/v1/EstimateHunt")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_EstimateHunt_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_EstimateHunt_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_EstimateHunt_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_EstimateHunt_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4305,19 +4453,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetHuntTable", runtime.WithHTTPPathPattern("/api/v1/GetHuntTable")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetHuntTable", runtime.WithHTTPPathPattern("/api/v1/GetHuntTable")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetHuntTable_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetHuntTable_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetHuntTable_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetHuntTable_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4325,19 +4475,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/ListHunts", runtime.WithHTTPPathPattern("/api/v1/ListHunts")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/ListHunts", runtime.WithHTTPPathPattern("/api/v1/ListHunts")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_ListHunts_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_ListHunts_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ListHunts_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ListHunts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4345,19 +4497,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetHunt", runtime.WithHTTPPathPattern("/api/v1/GetHunt")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetHunt", runtime.WithHTTPPathPattern("/api/v1/GetHunt")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetHunt_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetHunt_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetHunt_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetHunt_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4365,19 +4519,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetHuntTags", runtime.WithHTTPPathPattern("/api/v1/GetHuntTags")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetHuntTags", runtime.WithHTTPPathPattern("/api/v1/GetHuntTags")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetHuntTags_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetHuntTags_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetHuntTags_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetHuntTags_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4385,19 +4541,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/ModifyHunt", runtime.WithHTTPPathPattern("/api/v1/ModifyHunt")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/ModifyHunt", runtime.WithHTTPPathPattern("/api/v1/ModifyHunt")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_ModifyHunt_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_ModifyHunt_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ModifyHunt_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ModifyHunt_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4405,19 +4563,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetHuntFlows", runtime.WithHTTPPathPattern("/api/v1/GetHuntFlows")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetHuntFlows", runtime.WithHTTPPathPattern("/api/v1/GetHuntFlows")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetHuntFlows_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetHuntFlows_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetHuntFlows_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetHuntFlows_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4425,19 +4585,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetHuntResults", runtime.WithHTTPPathPattern("/api/v1/GetHuntResults")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetHuntResults", runtime.WithHTTPPathPattern("/api/v1/GetHuntResults")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetHuntResults_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetHuntResults_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetHuntResults_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetHuntResults_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4445,19 +4607,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/NotifyClients", runtime.WithHTTPPathPattern("/api/v1/NotifyClient")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/NotifyClients", runtime.WithHTTPPathPattern("/api/v1/NotifyClient")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_NotifyClients_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_NotifyClients_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_NotifyClients_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_NotifyClients_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4465,19 +4629,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/LabelClients", runtime.WithHTTPPathPattern("/api/v1/LabelClients")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/LabelClients", runtime.WithHTTPPathPattern("/api/v1/LabelClients")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_LabelClients_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_LabelClients_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_LabelClients_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_LabelClients_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4485,19 +4651,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/ListClients", runtime.WithHTTPPathPattern("/api/v1/SearchClients")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/ListClients", runtime.WithHTTPPathPattern("/api/v1/SearchClients")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_ListClients_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_ListClients_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ListClients_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ListClients_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4505,19 +4673,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetClient", runtime.WithHTTPPathPattern("/api/v1/GetClient/{client_id}")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetClient", runtime.WithHTTPPathPattern("/api/v1/GetClient/{client_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetClient_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetClient_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetClient_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetClient_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4525,19 +4695,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetClientMetadata", runtime.WithHTTPPathPattern("/api/v1/GetClientMetadata/{client_id}")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetClientMetadata", runtime.WithHTTPPathPattern("/api/v1/GetClientMetadata/{client_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetClientMetadata_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetClientMetadata_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetClientMetadata_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetClientMetadata_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4545,19 +4717,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetClientMetadata", runtime.WithHTTPPathPattern("/api/v1/SetClientMetadata")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetClientMetadata", runtime.WithHTTPPathPattern("/api/v1/SetClientMetadata")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_SetClientMetadata_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_SetClientMetadata_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetClientMetadata_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetClientMetadata_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4565,19 +4739,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetClientFlows", runtime.WithHTTPPathPattern("/api/v1/GetClientFlows")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetClientFlows", runtime.WithHTTPPathPattern("/api/v1/GetClientFlows")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetClientFlows_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetClientFlows_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetClientFlows_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetClientFlows_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4585,19 +4761,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetUserUITraits", runtime.WithHTTPPathPattern("/api/v1/GetUserUITraits")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetUserUITraits", runtime.WithHTTPPathPattern("/api/v1/GetUserUITraits")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetUserUITraits_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetUserUITraits_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetUserUITraits_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetUserUITraits_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4605,19 +4783,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetGUIOptions", runtime.WithHTTPPathPattern("/api/v1/SetGUIOptions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetGUIOptions", runtime.WithHTTPPathPattern("/api/v1/SetGUIOptions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_SetGUIOptions_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_SetGUIOptions_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetGUIOptions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetGUIOptions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4625,19 +4805,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetUsers", runtime.WithHTTPPathPattern("/api/v1/GetUsers")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetUsers", runtime.WithHTTPPathPattern("/api/v1/GetUsers")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetUsers_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetUsers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetUsers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetUsers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4645,19 +4827,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetGlobalUsers", runtime.WithHTTPPathPattern("/api/v1/GetGlobalUsers")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetGlobalUsers", runtime.WithHTTPPathPattern("/api/v1/GetGlobalUsers")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetGlobalUsers_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetGlobalUsers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetGlobalUsers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetGlobalUsers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4665,19 +4849,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetUserRoles", runtime.WithHTTPPathPattern("/api/v1/GetUserRoles")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetUserRoles", runtime.WithHTTPPathPattern("/api/v1/GetUserRoles")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetUserRoles_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetUserRoles_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetUserRoles_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetUserRoles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4685,19 +4871,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetUserRoles", runtime.WithHTTPPathPattern("/api/v1/SetUserRoles")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetUserRoles", runtime.WithHTTPPathPattern("/api/v1/SetUserRoles")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_SetUserRoles_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_SetUserRoles_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetUserRoles_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetUserRoles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4705,19 +4893,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetUser", runtime.WithHTTPPathPattern("/api/v1/GetUser/{name}")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetUser", runtime.WithHTTPPathPattern("/api/v1/GetUser/{name}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetUser_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetUser_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetUser_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4725,19 +4915,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/CreateUser", runtime.WithHTTPPathPattern("/api/v1/CreateUser")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/CreateUser", runtime.WithHTTPPathPattern("/api/v1/CreateUser")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_CreateUser_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_CreateUser_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CreateUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CreateUser_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4745,19 +4937,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetUserFavorites", runtime.WithHTTPPathPattern("/api/v1/GetUserFavorites")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetUserFavorites", runtime.WithHTTPPathPattern("/api/v1/GetUserFavorites")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetUserFavorites_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetUserFavorites_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetUserFavorites_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetUserFavorites_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4765,19 +4959,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetPassword", runtime.WithHTTPPathPattern("/api/v1/SetPassword")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetPassword", runtime.WithHTTPPathPattern("/api/v1/SetPassword")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_SetPassword_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_SetPassword_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetPassword_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetPassword_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4785,19 +4981,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSListDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSListDirectory/{client_id}")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSListDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSListDirectory/{client_id}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_VFSListDirectory_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_VFSListDirectory_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSListDirectory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSListDirectory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4805,19 +5003,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSListDirectoryFiles", runtime.WithHTTPPathPattern("/api/v1/VFSListDirectoryFiles")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSListDirectoryFiles", runtime.WithHTTPPathPattern("/api/v1/VFSListDirectoryFiles")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_VFSListDirectoryFiles_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_VFSListDirectoryFiles_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSListDirectoryFiles_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSListDirectoryFiles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4825,19 +5025,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSRefreshDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSRefreshDirectory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSRefreshDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSRefreshDirectory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_VFSRefreshDirectory_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_VFSRefreshDirectory_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSRefreshDirectory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSRefreshDirectory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4845,19 +5047,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSStatDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSStatDirectory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSStatDirectory", runtime.WithHTTPPathPattern("/api/v1/VFSStatDirectory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_VFSStatDirectory_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_VFSStatDirectory_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSStatDirectory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSStatDirectory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4865,19 +5069,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSStatDownload", runtime.WithHTTPPathPattern("/api/v1/VFSStatDownload")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSStatDownload", runtime.WithHTTPPathPattern("/api/v1/VFSStatDownload")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_VFSStatDownload_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_VFSStatDownload_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSStatDownload_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSStatDownload_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4885,19 +5091,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSDownloadFile", runtime.WithHTTPPathPattern("/api/v1/VFSDownloadFile")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/VFSDownloadFile", runtime.WithHTTPPathPattern("/api/v1/VFSDownloadFile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_VFSDownloadFile_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_VFSDownloadFile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_VFSDownloadFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_VFSDownloadFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4905,19 +5113,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetTable", runtime.WithHTTPPathPattern("/api/v1/GetTable")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetTable", runtime.WithHTTPPathPattern("/api/v1/GetTable")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetTable_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetTable_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetTable_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetTable_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4925,19 +5135,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/SearchFile", runtime.WithHTTPPathPattern("/api/v1/SearchFile")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/SearchFile", runtime.WithHTTPPathPattern("/api/v1/SearchFile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_SearchFile_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_SearchFile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SearchFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SearchFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4945,19 +5157,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/CollectArtifact", runtime.WithHTTPPathPattern("/api/v1/CollectArtifact")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/CollectArtifact", runtime.WithHTTPPathPattern("/api/v1/CollectArtifact")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_CollectArtifact_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_CollectArtifact_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CollectArtifact_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CollectArtifact_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4965,19 +5179,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/CancelFlow", runtime.WithHTTPPathPattern("/api/v1/CancelFlow")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/CancelFlow", runtime.WithHTTPPathPattern("/api/v1/CancelFlow")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_CancelFlow_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_CancelFlow_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CancelFlow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CancelFlow_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -4985,19 +5201,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/ResumeFlow", runtime.WithHTTPPathPattern("/api/v1/ResumeFlow")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/ResumeFlow", runtime.WithHTTPPathPattern("/api/v1/ResumeFlow")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_ResumeFlow_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_ResumeFlow_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ResumeFlow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ResumeFlow_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5005,19 +5223,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetFlowDetails", runtime.WithHTTPPathPattern("/api/v1/GetFlowDetails")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetFlowDetails", runtime.WithHTTPPathPattern("/api/v1/GetFlowDetails")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetFlowDetails_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetFlowDetails_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetFlowDetails_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetFlowDetails_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5025,19 +5245,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetFlowRequests", runtime.WithHTTPPathPattern("/api/v1/GetFlowRequests")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetFlowRequests", runtime.WithHTTPPathPattern("/api/v1/GetFlowRequests")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetFlowRequests_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetFlowRequests_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetFlowRequests_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetFlowRequests_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5045,19 +5267,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetKeywordCompletions", runtime.WithHTTPPathPattern("/api/v1/GetKeywordCompletions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetKeywordCompletions", runtime.WithHTTPPathPattern("/api/v1/GetKeywordCompletions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetKeywordCompletions_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetKeywordCompletions_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetKeywordCompletions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetKeywordCompletions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5065,19 +5289,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/ReformatVQL", runtime.WithHTTPPathPattern("/api/v1/ReformatVQL")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/ReformatVQL", runtime.WithHTTPPathPattern("/api/v1/ReformatVQL")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_ReformatVQL_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_ReformatVQL_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ReformatVQL_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ReformatVQL_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5085,19 +5311,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetArtifacts", runtime.WithHTTPPathPattern("/api/v1/GetArtifacts")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetArtifacts", runtime.WithHTTPPathPattern("/api/v1/GetArtifacts")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetArtifacts_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetArtifacts_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetArtifacts_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetArtifacts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5105,19 +5333,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetArtifactFile", runtime.WithHTTPPathPattern("/api/v1/GetArtifactFile")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetArtifactFile", runtime.WithHTTPPathPattern("/api/v1/GetArtifactFile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetArtifactFile_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetArtifactFile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetArtifactFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetArtifactFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5125,19 +5355,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetArtifactFile", runtime.WithHTTPPathPattern("/api/v1/SetArtifactFile")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetArtifactFile", runtime.WithHTTPPathPattern("/api/v1/SetArtifactFile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_SetArtifactFile_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_SetArtifactFile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetArtifactFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetArtifactFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5145,19 +5377,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/LoadArtifactPack", runtime.WithHTTPPathPattern("/api/v1/LoadArtifactPack")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/LoadArtifactPack", runtime.WithHTTPPathPattern("/api/v1/LoadArtifactPack")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_LoadArtifactPack_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_LoadArtifactPack_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_LoadArtifactPack_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_LoadArtifactPack_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5165,19 +5399,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/SearchDocs", runtime.WithHTTPPathPattern("/api/v1/SearchDocs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/SearchDocs", runtime.WithHTTPPathPattern("/api/v1/SearchDocs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_SearchDocs_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_SearchDocs_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SearchDocs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SearchDocs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5185,19 +5421,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetToolInfo", runtime.WithHTTPPathPattern("/api/v1/GetToolInfo")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetToolInfo", runtime.WithHTTPPathPattern("/api/v1/GetToolInfo")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetToolInfo_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetToolInfo_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetToolInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetToolInfo_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5205,19 +5443,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetToolInfo", runtime.WithHTTPPathPattern("/api/v1/SetToolInfo")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetToolInfo", runtime.WithHTTPPathPattern("/api/v1/SetToolInfo")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_SetToolInfo_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_SetToolInfo_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetToolInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetToolInfo_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5225,19 +5465,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetReport", runtime.WithHTTPPathPattern("/api/v1/GetReport")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetReport", runtime.WithHTTPPathPattern("/api/v1/GetReport")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetReport_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetReport_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetReport_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetReport_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5245,19 +5487,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetServerMonitoringState", runtime.WithHTTPPathPattern("/api/v1/GetServerMonitoringState")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetServerMonitoringState", runtime.WithHTTPPathPattern("/api/v1/GetServerMonitoringState")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetServerMonitoringState_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetServerMonitoringState_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetServerMonitoringState_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetServerMonitoringState_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5265,19 +5509,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetServerMonitoringState", runtime.WithHTTPPathPattern("/api/v1/SetServerMonitoringState")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetServerMonitoringState", runtime.WithHTTPPathPattern("/api/v1/SetServerMonitoringState")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_SetServerMonitoringState_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_SetServerMonitoringState_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetServerMonitoringState_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetServerMonitoringState_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5285,19 +5531,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetClientMonitoringState", runtime.WithHTTPPathPattern("/api/v1/GetClientMonitoringState")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetClientMonitoringState", runtime.WithHTTPPathPattern("/api/v1/GetClientMonitoringState")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetClientMonitoringState_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetClientMonitoringState_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetClientMonitoringState_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetClientMonitoringState_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5305,19 +5553,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetClientMonitoringState", runtime.WithHTTPPathPattern("/api/v1/SetClientMonitoringState")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/SetClientMonitoringState", runtime.WithHTTPPathPattern("/api/v1/SetClientMonitoringState")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_SetClientMonitoringState_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_SetClientMonitoringState_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_SetClientMonitoringState_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_SetClientMonitoringState_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5325,19 +5575,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/ListAvailableEventResults", runtime.WithHTTPPathPattern("/api/v1/ListAvailableEventResults")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/ListAvailableEventResults", runtime.WithHTTPPathPattern("/api/v1/ListAvailableEventResults")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_ListAvailableEventResults_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_ListAvailableEventResults_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ListAvailableEventResults_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ListAvailableEventResults_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5345,19 +5597,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/CreateDownloadFile", runtime.WithHTTPPathPattern("/api/v1/CreateDownload")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/CreateDownloadFile", runtime.WithHTTPPathPattern("/api/v1/CreateDownload")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_CreateDownloadFile_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_CreateDownloadFile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CreateDownloadFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CreateDownloadFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5365,19 +5619,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetNotebooks", runtime.WithHTTPPathPattern("/api/v1/GetNotebooks")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetNotebooks", runtime.WithHTTPPathPattern("/api/v1/GetNotebooks")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetNotebooks_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetNotebooks_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetNotebooks_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetNotebooks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5385,19 +5641,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/NewNotebook", runtime.WithHTTPPathPattern("/api/v1/NewNotebook")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/NewNotebook", runtime.WithHTTPPathPattern("/api/v1/NewNotebook")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_NewNotebook_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_NewNotebook_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_NewNotebook_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_NewNotebook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5405,19 +5663,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/UpdateNotebook", runtime.WithHTTPPathPattern("/api/v1/UpdateNotebook")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/UpdateNotebook", runtime.WithHTTPPathPattern("/api/v1/UpdateNotebook")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_UpdateNotebook_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_UpdateNotebook_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_UpdateNotebook_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_UpdateNotebook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5425,19 +5685,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/DeleteNotebook", runtime.WithHTTPPathPattern("/api/v1/DeleteNotebook")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/DeleteNotebook", runtime.WithHTTPPathPattern("/api/v1/DeleteNotebook")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_DeleteNotebook_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_DeleteNotebook_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_DeleteNotebook_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_DeleteNotebook_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5445,19 +5707,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/NewNotebookCell", runtime.WithHTTPPathPattern("/api/v1/NewNotebookCell")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/NewNotebookCell", runtime.WithHTTPPathPattern("/api/v1/NewNotebookCell")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_NewNotebookCell_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_NewNotebookCell_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_NewNotebookCell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_NewNotebookCell_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5465,19 +5729,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetNotebookCell", runtime.WithHTTPPathPattern("/api/v1/GetNotebookCell")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetNotebookCell", runtime.WithHTTPPathPattern("/api/v1/GetNotebookCell")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetNotebookCell_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetNotebookCell_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetNotebookCell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetNotebookCell_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5485,19 +5751,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/UpdateNotebookCell", runtime.WithHTTPPathPattern("/api/v1/UpdateNotebookCell")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/UpdateNotebookCell", runtime.WithHTTPPathPattern("/api/v1/UpdateNotebookCell")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_UpdateNotebookCell_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_UpdateNotebookCell_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_UpdateNotebookCell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_UpdateNotebookCell_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5505,19 +5773,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/RevertNotebookCell", runtime.WithHTTPPathPattern("/api/v1/RevertNotebookCell")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/RevertNotebookCell", runtime.WithHTTPPathPattern("/api/v1/RevertNotebookCell")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_RevertNotebookCell_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_RevertNotebookCell_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_RevertNotebookCell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_RevertNotebookCell_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5525,19 +5795,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/CancelNotebookCell", runtime.WithHTTPPathPattern("/api/v1/CancelNotebookCell")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/CancelNotebookCell", runtime.WithHTTPPathPattern("/api/v1/CancelNotebookCell")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_CancelNotebookCell_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_CancelNotebookCell_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CancelNotebookCell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CancelNotebookCell_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5545,19 +5817,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/CreateNotebookDownloadFile", runtime.WithHTTPPathPattern("/api/v1/CreateNotebookDownloadFile")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/CreateNotebookDownloadFile", runtime.WithHTTPPathPattern("/api/v1/CreateNotebookDownloadFile")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_CreateNotebookDownloadFile_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_CreateNotebookDownloadFile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_CreateNotebookDownloadFile_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_CreateNotebookDownloadFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5565,19 +5839,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/UploadNotebookAttachment", runtime.WithHTTPPathPattern("/api/v1/UploadNotebookAttachment")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/UploadNotebookAttachment", runtime.WithHTTPPathPattern("/api/v1/UploadNotebookAttachment")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_UploadNotebookAttachment_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_UploadNotebookAttachment_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_UploadNotebookAttachment_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_UploadNotebookAttachment_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5585,19 +5861,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/RemoveNotebookAttachment", runtime.WithHTTPPathPattern("/api/v1/RemoveNotebookAttachment")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/RemoveNotebookAttachment", runtime.WithHTTPPathPattern("/api/v1/RemoveNotebookAttachment")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_RemoveNotebookAttachment_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_RemoveNotebookAttachment_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_RemoveNotebookAttachment_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_RemoveNotebookAttachment_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5605,19 +5883,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/AnnotateTimeline", runtime.WithHTTPPathPattern("/api/v1/AnnotateTimeline")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/AnnotateTimeline", runtime.WithHTTPPathPattern("/api/v1/AnnotateTimeline")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_AnnotateTimeline_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_AnnotateTimeline_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_AnnotateTimeline_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_AnnotateTimeline_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5625,19 +5905,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetSecretDefinitions", runtime.WithHTTPPathPattern("/api/v1/GetSecretDefinitions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetSecretDefinitions", runtime.WithHTTPPathPattern("/api/v1/GetSecretDefinitions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetSecretDefinitions_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetSecretDefinitions_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetSecretDefinitions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetSecretDefinitions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5645,19 +5927,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/AddSecret", runtime.WithHTTPPathPattern("/api/v1/AddSecret")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/AddSecret", runtime.WithHTTPPathPattern("/api/v1/AddSecret")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_AddSecret_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_AddSecret_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_AddSecret_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_AddSecret_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5665,19 +5949,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/ModifySecret", runtime.WithHTTPPathPattern("/api/v1/ModifySecret")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/ModifySecret", runtime.WithHTTPPathPattern("/api/v1/ModifySecret")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_ModifySecret_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_ModifySecret_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_ModifySecret_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_ModifySecret_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -5685,19 +5971,21 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetSecret", runtime.WithHTTPPathPattern("/api/v1/GetSecret")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.API/GetSecret", runtime.WithHTTPPathPattern("/api/v1/GetSecret")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_API_GetSecret_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_API_GetSecret_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_API_GetSecret_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_API_GetSecret_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) diff --git a/api/proto/api_grpc.pb.go b/api/proto/api_grpc.pb.go index 4240ead33..560120cfd 100644 --- a/api/proto/api_grpc.pb.go +++ b/api/proto/api_grpc.pb.go @@ -1,4 +1,5 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// source: api.proto package proto diff --git a/api/proto/artifacts.pb.go b/api/proto/artifacts.pb.go index 015123312..f37bea129 100644 --- a/api/proto/artifacts.pb.go +++ b/api/proto/artifacts.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto "www.velocidex.com/golang/velociraptor/artifacts/proto" proto1 "www.velocidex.com/golang/velociraptor/flows/proto" _ "www.velocidex.com/golang/velociraptor/proto" @@ -74,24 +75,21 @@ func (SetArtifactRequest_Operation) EnumDescriptor() ([]byte, []int) { } type FieldSelector struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name bool `protobuf:"varint,1,opt,name=name,proto3" json:"name,omitempty"` + Description bool `protobuf:"varint,2,opt,name=description,proto3" json:"description,omitempty"` + Type bool `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` + Sources bool `protobuf:"varint,4,opt,name=sources,proto3" json:"sources,omitempty"` + Tags bool `protobuf:"varint,5,opt,name=tags,proto3" json:"tags,omitempty"` unknownFields protoimpl.UnknownFields - - Name bool `protobuf:"varint,1,opt,name=name,proto3" json:"name,omitempty"` - Description bool `protobuf:"varint,2,opt,name=description,proto3" json:"description,omitempty"` - Type bool `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` - Sources bool `protobuf:"varint,4,opt,name=sources,proto3" json:"sources,omitempty"` - Tags bool `protobuf:"varint,5,opt,name=tags,proto3" json:"tags,omitempty"` + sizeCache protoimpl.SizeCache } func (x *FieldSelector) Reset() { *x = FieldSelector{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FieldSelector) String() string { @@ -102,7 +100,7 @@ func (*FieldSelector) ProtoMessage() {} func (x *FieldSelector) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -153,10 +151,7 @@ func (x *FieldSelector) GetTags() bool { } type GetArtifactsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Deprecated IncludeEventArtifacts bool `protobuf:"varint,1,opt,name=include_event_artifacts,json=includeEventArtifacts,proto3" json:"include_event_artifacts,omitempty"` IncludeServerArtifacts bool `protobuf:"varint,2,opt,name=include_server_artifacts,json=includeServerArtifacts,proto3" json:"include_server_artifacts,omitempty"` @@ -165,17 +160,17 @@ type GetArtifactsRequest struct { Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"` ReportType string `protobuf:"bytes,7,opt,name=report_type,json=reportType,proto3" json:"report_type,omitempty"` // Allow the caller to specify just the fields they want. - Fields *FieldSelector `protobuf:"bytes,8,opt,name=fields,proto3" json:"fields,omitempty"` - Names []string `protobuf:"bytes,6,rep,name=names,proto3" json:"names,omitempty"` + Fields *FieldSelector `protobuf:"bytes,8,opt,name=fields,proto3" json:"fields,omitempty"` + Names []string `protobuf:"bytes,6,rep,name=names,proto3" json:"names,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetArtifactsRequest) Reset() { *x = GetArtifactsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetArtifactsRequest) String() string { @@ -186,7 +181,7 @@ func (*GetArtifactsRequest) ProtoMessage() {} func (x *GetArtifactsRequest) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -258,20 +253,17 @@ func (x *GetArtifactsRequest) GetNames() []string { } type GetArtifactRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetArtifactRequest) Reset() { *x = GetArtifactRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetArtifactRequest) String() string { @@ -282,7 +274,7 @@ func (*GetArtifactRequest) ProtoMessage() {} func (x *GetArtifactRequest) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -305,20 +297,17 @@ func (x *GetArtifactRequest) GetName() string { } type GetArtifactResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Artifact string `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` unknownFields protoimpl.UnknownFields - - Artifact string `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetArtifactResponse) Reset() { *x = GetArtifactResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetArtifactResponse) String() string { @@ -329,7 +318,7 @@ func (*GetArtifactResponse) ProtoMessage() {} func (x *GetArtifactResponse) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -352,23 +341,20 @@ func (x *GetArtifactResponse) GetArtifact() string { } type SetArtifactRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Artifact string `protobuf:"bytes,2,opt,name=artifact,proto3" json:"artifact,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Artifact string `protobuf:"bytes,2,opt,name=artifact,proto3" json:"artifact,omitempty"` // Also set these tags. - Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"` - Op SetArtifactRequest_Operation `protobuf:"varint,3,opt,name=op,proto3,enum=proto.SetArtifactRequest_Operation" json:"op,omitempty"` + Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"` + Op SetArtifactRequest_Operation `protobuf:"varint,3,opt,name=op,proto3,enum=proto.SetArtifactRequest_Operation" json:"op,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SetArtifactRequest) Reset() { *x = SetArtifactRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetArtifactRequest) String() string { @@ -379,7 +365,7 @@ func (*SetArtifactRequest) ProtoMessage() {} func (x *SetArtifactRequest) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -416,23 +402,20 @@ func (x *SetArtifactRequest) GetOp() SetArtifactRequest_Operation { } type SetArtifactResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Error bool `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` + Warnings []string `protobuf:"bytes,4,rep,name=warnings,proto3" json:"warnings,omitempty"` unknownFields protoimpl.UnknownFields - - Error bool `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` - Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` - Warnings []string `protobuf:"bytes,4,rep,name=warnings,proto3" json:"warnings,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SetArtifactResponse) Reset() { *x = SetArtifactResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetArtifactResponse) String() string { @@ -443,7 +426,7 @@ func (*SetArtifactResponse) ProtoMessage() {} func (x *SetArtifactResponse) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -487,21 +470,18 @@ func (x *SetArtifactResponse) GetWarnings() []string { } type LoadArtifactError struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` + Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` unknownFields protoimpl.UnknownFields - - Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` - Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + sizeCache protoimpl.SizeCache } func (x *LoadArtifactError) Reset() { *x = LoadArtifactError{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LoadArtifactError) String() string { @@ -512,7 +492,7 @@ func (*LoadArtifactError) ProtoMessage() {} func (x *LoadArtifactError) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -542,26 +522,23 @@ func (x *LoadArtifactError) GetError() string { } type LoadArtifactPackRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Prefix string `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` - Tags []string `protobuf:"bytes,6,rep,name=tags,proto3" json:"tags,omitempty"` - Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Prefix string `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` + Tags []string `protobuf:"bytes,6,rep,name=tags,proto3" json:"tags,omitempty"` + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` // NOTE: the vfs path must be in the VFS temp directory. - Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - VfsPath []string `protobuf:"bytes,5,rep,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` - ReallyDoIt bool `protobuf:"varint,4,opt,name=really_do_it,json=reallyDoIt,proto3" json:"really_do_it,omitempty"` + Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + VfsPath []string `protobuf:"bytes,5,rep,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` + ReallyDoIt bool `protobuf:"varint,4,opt,name=really_do_it,json=reallyDoIt,proto3" json:"really_do_it,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LoadArtifactPackRequest) Reset() { *x = LoadArtifactPackRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LoadArtifactPackRequest) String() string { @@ -572,7 +549,7 @@ func (*LoadArtifactPackRequest) ProtoMessage() {} func (x *LoadArtifactPackRequest) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -630,22 +607,19 @@ func (x *LoadArtifactPackRequest) GetReallyDoIt() bool { } type LoadArtifactPackResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SuccessfulArtifacts []string `protobuf:"bytes,1,rep,name=successful_artifacts,json=successfulArtifacts,proto3" json:"successful_artifacts,omitempty"` - VfsPath []string `protobuf:"bytes,3,rep,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` - Errors []*LoadArtifactError `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + SuccessfulArtifacts []string `protobuf:"bytes,1,rep,name=successful_artifacts,json=successfulArtifacts,proto3" json:"successful_artifacts,omitempty"` + VfsPath []string `protobuf:"bytes,3,rep,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` + Errors []*LoadArtifactError `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LoadArtifactPackResponse) Reset() { *x = LoadArtifactPackResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LoadArtifactPackResponse) String() string { @@ -656,7 +630,7 @@ func (*LoadArtifactPackResponse) ProtoMessage() {} func (x *LoadArtifactPackResponse) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -693,21 +667,18 @@ func (x *LoadArtifactPackResponse) GetErrors() []*LoadArtifactError { } type APIResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Error bool `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` unknownFields protoimpl.UnknownFields - - Error bool `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + sizeCache protoimpl.SizeCache } func (x *APIResponse) Reset() { *x = APIResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *APIResponse) String() string { @@ -718,7 +689,7 @@ func (*APIResponse) ProtoMessage() {} func (x *APIResponse) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -748,13 +719,10 @@ func (x *APIResponse) GetErrorMessage() string { } type GetReportRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Artifact string `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` - Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` - Format string `protobuf:"bytes,3,opt,name=format,proto3" json:"format,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Artifact string `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + Format string `protobuf:"bytes,3,opt,name=format,proto3" json:"format,omitempty"` // Common parameters ClientId string `protobuf:"bytes,5,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` // Parameters for SERVER_EVENT reports @@ -764,17 +732,17 @@ type GetReportRequest struct { // Parameters for CLIENT reports FlowId string `protobuf:"bytes,7,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` // Parameters for HUNT reports - HuntId string `protobuf:"bytes,10,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` - Parameters []*proto.ArtifactParameter `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty"` + HuntId string `protobuf:"bytes,10,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` + Parameters []*proto.ArtifactParameter `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetReportRequest) Reset() { *x = GetReportRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetReportRequest) String() string { @@ -785,7 +753,7 @@ func (*GetReportRequest) ProtoMessage() {} func (x *GetReportRequest) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -875,22 +843,19 @@ func (x *GetReportRequest) GetParameters() []*proto.ArtifactParameter { // json encoded object, then "template" is an angular template to be // evaluated with the data. type GetReportResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Template string `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"` + Messages []string `protobuf:"bytes,3,rep,name=messages,proto3" json:"messages,omitempty"` unknownFields protoimpl.UnknownFields - - Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` - Template string `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"` - Messages []string `protobuf:"bytes,3,rep,name=messages,proto3" json:"messages,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetReportResponse) Reset() { *x = GetReportResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetReportResponse) String() string { @@ -901,7 +866,7 @@ func (*GetReportResponse) ProtoMessage() {} func (x *GetReportResponse) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -939,18 +904,16 @@ func (x *GetReportResponse) GetMessages() []string { // Deprecated. type ArtifactCompressionDict struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ArtifactCompressionDict) Reset() { *x = ArtifactCompressionDict{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactCompressionDict) String() string { @@ -961,7 +924,7 @@ func (*ArtifactCompressionDict) ProtoMessage() {} func (x *ArtifactCompressionDict) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -977,26 +940,23 @@ func (*ArtifactCompressionDict) Descriptor() ([]byte, []int) { } type ListAvailableEventResultsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` // Which artifact to list timestamps for. If not specified we only // list artifact names. Artifact string `protobuf:"bytes,2,opt,name=artifact,proto3" json:"artifact,omitempty"` // This can be empty or "logs" to list the logs. - LogType string `protobuf:"bytes,3,opt,name=log_type,json=logType,proto3" json:"log_type,omitempty"` - OrgId string `protobuf:"bytes,4,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + LogType string `protobuf:"bytes,3,opt,name=log_type,json=logType,proto3" json:"log_type,omitempty"` + OrgId string `protobuf:"bytes,4,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListAvailableEventResultsRequest) Reset() { *x = ListAvailableEventResultsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListAvailableEventResultsRequest) String() string { @@ -1007,7 +967,7 @@ func (*ListAvailableEventResultsRequest) ProtoMessage() {} func (x *ListAvailableEventResultsRequest) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1051,23 +1011,20 @@ func (x *ListAvailableEventResultsRequest) GetOrgId() string { } type AvailableEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Artifact string `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` + Definition *proto.Artifact `protobuf:"bytes,3,opt,name=definition,proto3" json:"definition,omitempty"` + RowTimestamps []int32 `protobuf:"varint,2,rep,packed,name=row_timestamps,json=rowTimestamps,proto3" json:"row_timestamps,omitempty"` + LogTimestamps []int32 `protobuf:"varint,4,rep,packed,name=log_timestamps,json=logTimestamps,proto3" json:"log_timestamps,omitempty"` unknownFields protoimpl.UnknownFields - - Artifact string `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` - Definition *proto.Artifact `protobuf:"bytes,3,opt,name=definition,proto3" json:"definition,omitempty"` - RowTimestamps []int32 `protobuf:"varint,2,rep,packed,name=row_timestamps,json=rowTimestamps,proto3" json:"row_timestamps,omitempty"` - LogTimestamps []int32 `protobuf:"varint,4,rep,packed,name=log_timestamps,json=logTimestamps,proto3" json:"log_timestamps,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AvailableEvent) Reset() { *x = AvailableEvent{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AvailableEvent) String() string { @@ -1078,7 +1035,7 @@ func (*AvailableEvent) ProtoMessage() {} func (x *AvailableEvent) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1122,20 +1079,17 @@ func (x *AvailableEvent) GetLogTimestamps() []int32 { } type ListAvailableEventResultsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Logs []*AvailableEvent `protobuf:"bytes,1,rep,name=logs,proto3" json:"logs,omitempty"` unknownFields protoimpl.UnknownFields - - Logs []*AvailableEvent `protobuf:"bytes,1,rep,name=logs,proto3" json:"logs,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListAvailableEventResultsResponse) Reset() { *x = ListAvailableEventResultsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListAvailableEventResultsResponse) String() string { @@ -1146,7 +1100,7 @@ func (*ListAvailableEventResultsResponse) ProtoMessage() {} func (x *ListAvailableEventResultsResponse) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1169,21 +1123,18 @@ func (x *ListAvailableEventResultsResponse) GetLogs() []*AvailableEvent { } type GetMonitoringStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Client monitoring states are controlled by labels. - Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetMonitoringStateRequest) Reset() { *x = GetMonitoringStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetMonitoringStateRequest) String() string { @@ -1194,7 +1145,7 @@ func (*GetMonitoringStateRequest) ProtoMessage() {} func (x *GetMonitoringStateRequest) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1217,21 +1168,18 @@ func (x *GetMonitoringStateRequest) GetLabel() string { } type GetMonitoringStateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List all the labels matching the request - Requests []*SetMonitoringStateRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` + Requests []*SetMonitoringStateRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetMonitoringStateResponse) Reset() { *x = GetMonitoringStateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetMonitoringStateResponse) String() string { @@ -1242,7 +1190,7 @@ func (*GetMonitoringStateResponse) ProtoMessage() {} func (x *GetMonitoringStateResponse) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1265,23 +1213,20 @@ func (x *GetMonitoringStateResponse) GetRequests() []*SetMonitoringStateRequest } type SetMonitoringStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Sets the monitoring table for a subset of clients specified by // label. - Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` - Request *proto1.ArtifactCollectorArgs `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Request *proto1.ArtifactCollectorArgs `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SetMonitoringStateRequest) Reset() { *x = SetMonitoringStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_artifacts_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifacts_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetMonitoringStateRequest) String() string { @@ -1292,7 +1237,7 @@ func (*SetMonitoringStateRequest) ProtoMessage() {} func (x *SetMonitoringStateRequest) ProtoReflect() protoreflect.Message { mi := &file_artifacts_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1323,225 +1268,120 @@ func (x *SetMonitoringStateRequest) GetRequest() *proto1.ArtifactCollectorArgs { var File_artifacts_proto protoreflect.FileDescriptor -var file_artifacts_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, - 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xf3, - 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x38, - 0x0a, 0x18, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x24, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1e, 0x12, - 0x1c, 0x41, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x65, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x22, 0x44, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x14, - 0x12, 0x12, 0x54, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x2e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x13, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x44, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x28, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x22, 0x12, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, - 0x6f, 0x72, 0x20, 0x61, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x08, 0x61, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x22, 0x8a, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, - 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x28, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x22, 0x12, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x6f, 0x72, 0x20, - 0x61, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x5a, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x74, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x25, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x1f, 0x12, 0x1d, 0x57, 0x68, 0x61, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x6f, 0x20, 0x77, 0x69, - 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x3f, - 0x52, 0x02, 0x6f, 0x70, 0x22, 0x3e, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, - 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, - 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x53, - 0x45, 0x54, 0x10, 0x03, 0x22, 0x84, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x45, 0x0a, 0x11, 0x4c, - 0x6f, 0x61, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x22, 0xae, 0x01, 0x0a, 0x17, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x66, 0x73, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x66, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x64, 0x6f, 0x5f, 0x69, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x6c, 0x79, 0x44, - 0x6f, 0x49, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x18, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x31, 0x0a, 0x14, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f, 0x61, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x66, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x66, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x30, - 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x22, 0x79, 0x0a, 0x0b, 0x41, 0x50, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x45, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x2f, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x29, 0x12, 0x27, 0x41, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x20, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xf9, 0x03, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x44, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x28, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x22, 0x12, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x77, 0x68, 0x69, - 0x63, 0x68, 0x20, 0x77, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x08, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x31, 0x12, 0x2f, 0x54, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x77, 0x65, - 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x4d, 0x4f, 0x4e, 0x49, - 0x54, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x41, 0x49, 0x4c, 0x59, 0x29, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x18, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x12, 0x12, 0x10, 0x46, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x68, 0x74, 0x6d, 0x6c, 0x52, 0x06, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, - 0x12, 0x17, 0x0a, 0x07, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x7c, 0x0a, 0x0a, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x42, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3c, 0x12, - 0x3a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, - 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x52, 0x0a, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, - 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x22, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1c, 0x12, 0x1a, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x6f, - 0x72, 0x20, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x19, 0x0a, - 0x17, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x63, 0x74, 0x22, 0xfb, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x88, 0x01, - 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x6b, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x65, 0x12, 0x63, 0x54, 0x68, 0x65, 0x20, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x44, 0x20, 0x77, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x6d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x20, - 0x49, 0x66, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x77, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x27, 0x73, 0x20, 0x6d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x52, 0x08, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x0e, 0x41, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x2f, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x77, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, - 0x72, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x25, 0x0a, - 0x0e, 0x6c, 0x6f, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x73, 0x22, 0x4e, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x6f, 0x67, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x04, - 0x6c, 0x6f, 0x67, 0x73, 0x22, 0x31, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x73, 0x22, 0x69, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x41, 0x72, 0x67, 0x73, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x31, - 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, - 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_artifacts_proto_rawDesc = "" + + "\n" + + "\x0fartifacts.proto\x12\x05proto\x1a\x14proto/semantic.proto\x1a\x1eartifacts/proto/artifact.proto\x1a$flows/proto/artifact_collector.proto\"\x87\x01\n" + + "\rFieldSelector\x12\x12\n" + + "\x04name\x18\x01 \x01(\bR\x04name\x12 \n" + + "\vdescription\x18\x02 \x01(\bR\vdescription\x12\x12\n" + + "\x04type\x18\x03 \x01(\bR\x04type\x12\x18\n" + + "\asources\x18\x04 \x01(\bR\asources\x12\x12\n" + + "\x04tags\x18\x05 \x01(\bR\x04tags\"\xf3\x02\n" + + "\x13GetArtifactsRequest\x126\n" + + "\x17include_event_artifacts\x18\x01 \x01(\bR\x15includeEventArtifacts\x128\n" + + "\x18include_server_artifacts\x18\x02 \x01(\bR\x16includeServerArtifacts\x12\x1f\n" + + "\vsearch_term\x18\x03 \x01(\tR\n" + + "searchTerm\x12*\n" + + "\x11number_of_results\x18\x04 \x01(\x04R\x0fnumberOfResults\x12\x12\n" + + "\x04type\x18\x05 \x01(\tR\x04type\x12\x1f\n" + + "\vreport_type\x18\a \x01(\tR\n" + + "reportType\x12,\n" + + "\x06fields\x18\b \x01(\v2\x14.proto.FieldSelectorR\x06fields\x12:\n" + + "\x05names\x18\x06 \x03(\tB$\xe2\xfc\xe3\xc4\x01\x1e\x12\x1cA list of artifacts to fetchR\x05names\"D\n" + + "\x12GetArtifactRequest\x12.\n" + + "\x04name\x18\x02 \x01(\tB\x1a\xe2\xfc\xe3\xc4\x01\x14\x12\x12The artifact name.R\x04name\"[\n" + + "\x13GetArtifactResponse\x12D\n" + + "\bartifact\x18\x01 \x01(\tB(\xe2\xfc\xe3\xc4\x01\"\x12 The artifact data, or a default.R\bartifact\"\x8a\x02\n" + + "\x12SetArtifactRequest\x12D\n" + + "\bartifact\x18\x02 \x01(\tB(\xe2\xfc\xe3\xc4\x01\"\x12 The artifact data, or a default.R\bartifact\x12\x12\n" + + "\x04tags\x18\x04 \x03(\tR\x04tags\x12Z\n" + + "\x02op\x18\x03 \x01(\x0e2#.proto.SetArtifactRequest.OperationB%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dWhat to do with the artifact?R\x02op\">\n" + + "\tOperation\x12\a\n" + + "\x03SET\x10\x00\x12\n" + + "\n" + + "\x06DELETE\x10\x01\x12\t\n" + + "\x05CHECK\x10\x02\x12\x11\n" + + "\rCHECK_AND_SET\x10\x03\"\x84\x01\n" + + "\x13SetArtifactResponse\x12\x14\n" + + "\x05error\x18\x01 \x01(\bR\x05error\x12#\n" + + "\rerror_message\x18\x02 \x01(\tR\ferrorMessage\x12\x16\n" + + "\x06errors\x18\x03 \x03(\tR\x06errors\x12\x1a\n" + + "\bwarnings\x18\x04 \x03(\tR\bwarnings\"E\n" + + "\x11LoadArtifactError\x12\x1a\n" + + "\bfilename\x18\x01 \x01(\tR\bfilename\x12\x14\n" + + "\x05error\x18\x02 \x01(\tR\x05error\"\xae\x01\n" + + "\x17LoadArtifactPackRequest\x12\x16\n" + + "\x06prefix\x18\x01 \x01(\tR\x06prefix\x12\x12\n" + + "\x04tags\x18\x06 \x03(\tR\x04tags\x12\x16\n" + + "\x06filter\x18\x02 \x01(\tR\x06filter\x12\x12\n" + + "\x04data\x18\x03 \x01(\fR\x04data\x12\x19\n" + + "\bvfs_path\x18\x05 \x03(\tR\avfsPath\x12 \n" + + "\freally_do_it\x18\x04 \x01(\bR\n" + + "reallyDoIt\"\x9a\x01\n" + + "\x18LoadArtifactPackResponse\x121\n" + + "\x14successful_artifacts\x18\x01 \x03(\tR\x13successfulArtifacts\x12\x19\n" + + "\bvfs_path\x18\x03 \x03(\tR\avfsPath\x120\n" + + "\x06errors\x18\x02 \x03(\v2\x18.proto.LoadArtifactErrorR\x06errors\"y\n" + + "\vAPIResponse\x12E\n" + + "\x05error\x18\x01 \x01(\bB/\xe2\xfc\xe3\xc4\x01)\x12'An error occurred setting the artifact.R\x05error\x12#\n" + + "\rerror_message\x18\x02 \x01(\tR\ferrorMessage\"\xf9\x03\n" + + "\x10GetReportRequest\x12D\n" + + "\bartifact\x18\x01 \x01(\tB(\xe2\xfc\xe3\xc4\x01\"\x12 The artifact for which we reportR\bartifact\x12K\n" + + "\x04type\x18\x02 \x01(\tB7\xe2\xfc\xe3\xc4\x011\x12/The report type we need (e.g. MONITORING_DAILY)R\x04type\x120\n" + + "\x06format\x18\x03 \x01(\tB\x18\xe2\xfc\xe3\xc4\x01\x12\x12\x10Format e.g. htmlR\x06format\x12\x1b\n" + + "\tclient_id\x18\x05 \x01(\tR\bclientId\x12\x19\n" + + "\bday_name\x18\x06 \x01(\tR\adayName\x12\x1d\n" + + "\n" + + "start_time\x18\b \x01(\x04R\tstartTime\x12\x19\n" + + "\bend_time\x18\t \x01(\x04R\aendTime\x12\x17\n" + + "\aflow_id\x18\a \x01(\tR\x06flowId\x12\x17\n" + + "\ahunt_id\x18\n" + + " \x01(\tR\x06huntId\x12|\n" + + "\n" + + "parameters\x18\x04 \x03(\v2\x18.proto.ArtifactParameterBB\xe2\xfc\xe3\xc4\x01<\x12:Report parameters. These depend on the type of the report.R\n" + + "parameters\"\x83\x01\n" + + "\x11GetReportResponse\x12\x12\n" + + "\x04data\x18\x01 \x01(\tR\x04data\x12\x1a\n" + + "\btemplate\x18\x02 \x01(\tR\btemplate\x12>\n" + + "\bmessages\x18\x03 \x03(\tB\"\xe2\xfc\xe3\xc4\x01\x1c\x12\x1aError or warning messages.R\bmessages\"\x19\n" + + "\x17ArtifactCompressionDict\"\xfb\x01\n" + + " ListAvailableEventResultsRequest\x12\x88\x01\n" + + "\tclient_id\x18\x01 \x01(\tBk\xe2\xfc\xe3\xc4\x01e\x12cThe client ID we list the available monitoring logs. If empty we list the server's monitoring logs.R\bclientId\x12\x1a\n" + + "\bartifact\x18\x02 \x01(\tR\bartifact\x12\x19\n" + + "\blog_type\x18\x03 \x01(\tR\alogType\x12\x15\n" + + "\x06org_id\x18\x04 \x01(\tR\x05orgId\"\xab\x01\n" + + "\x0eAvailableEvent\x12\x1a\n" + + "\bartifact\x18\x01 \x01(\tR\bartifact\x12/\n" + + "\n" + + "definition\x18\x03 \x01(\v2\x0f.proto.ArtifactR\n" + + "definition\x12%\n" + + "\x0erow_timestamps\x18\x02 \x03(\x05R\rrowTimestamps\x12%\n" + + "\x0elog_timestamps\x18\x04 \x03(\x05R\rlogTimestamps\"N\n" + + "!ListAvailableEventResultsResponse\x12)\n" + + "\x04logs\x18\x01 \x03(\v2\x15.proto.AvailableEventR\x04logs\"1\n" + + "\x19GetMonitoringStateRequest\x12\x14\n" + + "\x05label\x18\x01 \x01(\tR\x05label\"Z\n" + + "\x1aGetMonitoringStateResponse\x12<\n" + + "\brequests\x18\x01 \x03(\v2 .proto.SetMonitoringStateRequestR\brequests\"i\n" + + "\x19SetMonitoringStateRequest\x12\x14\n" + + "\x05label\x18\x01 \x01(\tR\x05label\x126\n" + + "\arequest\x18\x02 \x01(\v2\x1c.proto.ArtifactCollectorArgsR\arequestB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_artifacts_proto_rawDescOnce sync.Once - file_artifacts_proto_rawDescData = file_artifacts_proto_rawDesc + file_artifacts_proto_rawDescData []byte ) func file_artifacts_proto_rawDescGZIP() []byte { file_artifacts_proto_rawDescOnce.Do(func() { - file_artifacts_proto_rawDescData = protoimpl.X.CompressGZIP(file_artifacts_proto_rawDescData) + file_artifacts_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_artifacts_proto_rawDesc), len(file_artifacts_proto_rawDesc))) }) return file_artifacts_proto_rawDescData } var file_artifacts_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_artifacts_proto_msgTypes = make([]protoimpl.MessageInfo, 19) -var file_artifacts_proto_goTypes = []interface{}{ +var file_artifacts_proto_goTypes = []any{ (SetArtifactRequest_Operation)(0), // 0: proto.SetArtifactRequest.Operation (*FieldSelector)(nil), // 1: proto.FieldSelector (*GetArtifactsRequest)(nil), // 2: proto.GetArtifactsRequest @@ -1587,241 +1427,11 @@ func file_artifacts_proto_init() { if File_artifacts_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_artifacts_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FieldSelector); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtifactsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtifactRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetArtifactResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetArtifactRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetArtifactResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoadArtifactError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoadArtifactPackRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoadArtifactPackResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*APIResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetReportRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetReportResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactCompressionDict); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAvailableEventResultsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AvailableEvent); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAvailableEventResultsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMonitoringStateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMonitoringStateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifacts_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetMonitoringStateRequest); 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_artifacts_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_artifacts_proto_rawDesc), len(file_artifacts_proto_rawDesc)), NumEnums: 1, NumMessages: 19, NumExtensions: 0, @@ -1833,7 +1443,6 @@ func file_artifacts_proto_init() { MessageInfos: file_artifacts_proto_msgTypes, }.Build() File_artifacts_proto = out.File - file_artifacts_proto_rawDesc = nil file_artifacts_proto_goTypes = nil file_artifacts_proto_depIdxs = nil } diff --git a/api/proto/clients.pb.go b/api/proto/clients.pb.go index f5afb4af7..2c6101b3c 100644 --- a/api/proto/clients.pb.go +++ b/api/proto/clients.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" _ "www.velocidex.com/golang/velociraptor/proto" ) @@ -119,23 +120,20 @@ func (SearchClientsRequest_Filters) EnumDescriptor() ([]byte, []int) { // semantic versioning. We use a string instead which represents the // commit number. type AgentInformation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + BuildTime string `protobuf:"bytes,3,opt,name=build_time,json=buildTime,proto3" json:"build_time,omitempty"` + BuildUrl string `protobuf:"bytes,4,opt,name=build_url,json=buildUrl,proto3" json:"build_url,omitempty"` unknownFields protoimpl.UnknownFields - - Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - BuildTime string `protobuf:"bytes,3,opt,name=build_time,json=buildTime,proto3" json:"build_time,omitempty"` - BuildUrl string `protobuf:"bytes,4,opt,name=build_url,json=buildUrl,proto3" json:"build_url,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AgentInformation) Reset() { *x = AgentInformation{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AgentInformation) String() string { @@ -146,7 +144,7 @@ func (*AgentInformation) ProtoMessage() {} func (x *AgentInformation) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -189,37 +187,34 @@ func (x *AgentInformation) GetBuildUrl() string { return "" } -// TODO: This is an older protobuf that is now largely superceded by +// TODO: This is an older protobuf that is now largely supeceeded by // actions_proto.ClientInfo. We need to replace use of this protobuf // by ClientInfo. type ApiClient struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - AgentInformation *AgentInformation `protobuf:"bytes,2,opt,name=agent_information,json=agentInformation,proto3" json:"agent_information,omitempty"` - OsInfo *Uname `protobuf:"bytes,3,opt,name=os_info,json=osInfo,proto3" json:"os_info,omitempty"` - FirstSeenAt uint64 `protobuf:"varint,6,opt,name=first_seen_at,json=firstSeenAt,proto3" json:"first_seen_at,omitempty"` - LastSeenAt uint64 `protobuf:"varint,7,opt,name=last_seen_at,json=lastSeenAt,proto3" json:"last_seen_at,omitempty"` - LastIp string `protobuf:"bytes,16,opt,name=last_ip,json=lastIp,proto3" json:"last_ip,omitempty"` - LastInterrogateFlowId string `protobuf:"bytes,19,opt,name=last_interrogate_flow_id,json=lastInterrogateFlowId,proto3" json:"last_interrogate_flow_id,omitempty"` - LastInterrogateArtifactName string `protobuf:"bytes,21,opt,name=last_interrogate_artifact_name,json=lastInterrogateArtifactName,proto3" json:"last_interrogate_artifact_name,omitempty"` - Labels []string `protobuf:"bytes,18,rep,name=labels,proto3" json:"labels,omitempty"` - LastHuntTimestamp uint64 `protobuf:"varint,22,opt,name=last_hunt_timestamp,json=lastHuntTimestamp,proto3" json:"last_hunt_timestamp,omitempty"` - LastEventTableVersion uint64 `protobuf:"varint,23,opt,name=last_event_table_version,json=lastEventTableVersion,proto3" json:"last_event_table_version,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + AgentInformation *AgentInformation `protobuf:"bytes,2,opt,name=agent_information,json=agentInformation,proto3" json:"agent_information,omitempty"` + OsInfo *Uname `protobuf:"bytes,3,opt,name=os_info,json=osInfo,proto3" json:"os_info,omitempty"` + FirstSeenAt uint64 `protobuf:"varint,6,opt,name=first_seen_at,json=firstSeenAt,proto3" json:"first_seen_at,omitempty"` + LastSeenAt uint64 `protobuf:"varint,7,opt,name=last_seen_at,json=lastSeenAt,proto3" json:"last_seen_at,omitempty"` + LastIp string `protobuf:"bytes,16,opt,name=last_ip,json=lastIp,proto3" json:"last_ip,omitempty"` + LastInterrogateFlowId string `protobuf:"bytes,19,opt,name=last_interrogate_flow_id,json=lastInterrogateFlowId,proto3" json:"last_interrogate_flow_id,omitempty"` + LastInterrogateArtifactName string `protobuf:"bytes,21,opt,name=last_interrogate_artifact_name,json=lastInterrogateArtifactName,proto3" json:"last_interrogate_artifact_name,omitempty"` + Labels []string `protobuf:"bytes,18,rep,name=labels,proto3" json:"labels,omitempty"` + LastHuntTimestamp uint64 `protobuf:"varint,22,opt,name=last_hunt_timestamp,json=lastHuntTimestamp,proto3" json:"last_hunt_timestamp,omitempty"` + LastEventTableVersion uint64 `protobuf:"varint,23,opt,name=last_event_table_version,json=lastEventTableVersion,proto3" json:"last_event_table_version,omitempty"` // Last time the labels on this client were updated. LastLabelTimestamp uint64 `protobuf:"varint,24,opt,name=last_label_timestamp,json=lastLabelTimestamp,proto3" json:"last_label_timestamp,omitempty"` - InFlightFlows map[string]int64 `protobuf:"bytes,25,rep,name=in_flight_flows,json=inFlightFlows,proto3" json:"in_flight_flows,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + InFlightFlows map[string]int64 `protobuf:"bytes,25,rep,name=in_flight_flows,json=inFlightFlows,proto3" json:"in_flight_flows,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ApiClient) Reset() { *x = ApiClient{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApiClient) String() string { @@ -230,7 +225,7 @@ func (*ApiClient) ProtoMessage() {} func (x *ApiClient) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -337,28 +332,25 @@ func (x *ApiClient) GetInFlightFlows() map[string]int64 { } type SearchClientsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - Query string `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Query string `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"` // Retrieves only the names of matching search terms (used for // suggestion box). If this is false, we return the entire client // record of matching clients. - NameOnly bool `protobuf:"varint,4,opt,name=name_only,json=nameOnly,proto3" json:"name_only,omitempty"` - Sort SearchClientsRequest_SortingSense `protobuf:"varint,6,opt,name=sort,proto3,enum=proto.SearchClientsRequest_SortingSense" json:"sort,omitempty"` - Filter SearchClientsRequest_Filters `protobuf:"varint,7,opt,name=filter,proto3,enum=proto.SearchClientsRequest_Filters" json:"filter,omitempty"` + NameOnly bool `protobuf:"varint,4,opt,name=name_only,json=nameOnly,proto3" json:"name_only,omitempty"` + Sort SearchClientsRequest_SortingSense `protobuf:"varint,6,opt,name=sort,proto3,enum=proto.SearchClientsRequest_SortingSense" json:"sort,omitempty"` + Filter SearchClientsRequest_Filters `protobuf:"varint,7,opt,name=filter,proto3,enum=proto.SearchClientsRequest_Filters" json:"filter,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SearchClientsRequest) Reset() { *x = SearchClientsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchClientsRequest) String() string { @@ -369,7 +361,7 @@ func (*SearchClientsRequest) ProtoMessage() {} func (x *SearchClientsRequest) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -427,23 +419,20 @@ func (x *SearchClientsRequest) GetFilter() SearchClientsRequest_Filters { } type SearchClientsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ApiClient `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Names []string `protobuf:"bytes,2,rep,name=names,proto3" json:"names,omitempty"` + Total uint64 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` + SearchTerm *SearchClientsRequest `protobuf:"bytes,4,opt,name=search_term,json=searchTerm,proto3" json:"search_term,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*ApiClient `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` - Names []string `protobuf:"bytes,2,rep,name=names,proto3" json:"names,omitempty"` - Total uint64 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` - SearchTerm *SearchClientsRequest `protobuf:"bytes,4,opt,name=search_term,json=searchTerm,proto3" json:"search_term,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SearchClientsResponse) Reset() { *x = SearchClientsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchClientsResponse) String() string { @@ -454,7 +443,7 @@ func (*SearchClientsResponse) ProtoMessage() {} func (x *SearchClientsResponse) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -498,23 +487,20 @@ func (x *SearchClientsResponse) GetSearchTerm() *SearchClientsRequest { } type GetClientRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - Lightweight bool `protobuf:"varint,2,opt,name=lightweight,proto3" json:"lightweight,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + Lightweight bool `protobuf:"varint,2,opt,name=lightweight,proto3" json:"lightweight,omitempty"` // If true we also update the MRU for this client. - UpdateMru bool `protobuf:"varint,3,opt,name=update_mru,json=updateMru,proto3" json:"update_mru,omitempty"` + UpdateMru bool `protobuf:"varint,3,opt,name=update_mru,json=updateMru,proto3" json:"update_mru,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetClientRequest) Reset() { *x = GetClientRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetClientRequest) String() string { @@ -525,7 +511,7 @@ func (*GetClientRequest) ProtoMessage() {} func (x *GetClientRequest) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -562,22 +548,19 @@ func (x *GetClientRequest) GetUpdateMru() bool { } type LabelClientsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ClientIds []string `protobuf:"bytes,1,rep,name=client_ids,json=clientIds,proto3" json:"client_ids,omitempty"` + Labels []string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"` + Operation string `protobuf:"bytes,3,opt,name=operation,proto3" json:"operation,omitempty"` unknownFields protoimpl.UnknownFields - - ClientIds []string `protobuf:"bytes,1,rep,name=client_ids,json=clientIds,proto3" json:"client_ids,omitempty"` - Labels []string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"` - Operation string `protobuf:"bytes,3,opt,name=operation,proto3" json:"operation,omitempty"` + sizeCache protoimpl.SizeCache } func (x *LabelClientsRequest) Reset() { *x = LabelClientsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LabelClientsRequest) String() string { @@ -588,7 +571,7 @@ func (*LabelClientsRequest) ProtoMessage() {} func (x *LabelClientsRequest) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -625,22 +608,19 @@ func (x *LabelClientsRequest) GetOperation() string { } type ClientLabels struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // When was the labeling record last updated. - Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Label []string `protobuf:"bytes,2,rep,name=label,proto3" json:"label,omitempty"` + Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Label []string `protobuf:"bytes,2,rep,name=label,proto3" json:"label,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ClientLabels) Reset() { *x = ClientLabels{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClientLabels) String() string { @@ -651,7 +631,7 @@ func (*ClientLabels) ProtoMessage() {} func (x *ClientLabels) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -681,22 +661,19 @@ func (x *ClientLabels) GetLabel() []string { } type ClientMetadataItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // A Json blob of unstructured data. - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ClientMetadataItem) Reset() { *x = ClientMetadataItem{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClientMetadataItem) String() string { @@ -707,7 +684,7 @@ func (*ClientMetadataItem) ProtoMessage() {} func (x *ClientMetadataItem) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -737,21 +714,18 @@ func (x *ClientMetadataItem) GetValue() string { } type ClientMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ClientMetadataItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*ClientMetadataItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` - ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ClientMetadata) Reset() { *x = ClientMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClientMetadata) String() string { @@ -762,7 +736,7 @@ func (*ClientMetadata) ProtoMessage() {} func (x *ClientMetadata) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -792,23 +766,20 @@ func (x *ClientMetadata) GetClientId() string { } type SetClientMetadataRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Add []*ClientMetadataItem `protobuf:"bytes,1,rep,name=add,proto3" json:"add,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Add []*ClientMetadataItem `protobuf:"bytes,1,rep,name=add,proto3" json:"add,omitempty"` // A list of keys to remove - Remove []string `protobuf:"bytes,2,rep,name=remove,proto3" json:"remove,omitempty"` - ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + Remove []string `protobuf:"bytes,2,rep,name=remove,proto3" json:"remove,omitempty"` + ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SetClientMetadataRequest) Reset() { *x = SetClientMetadataRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetClientMetadataRequest) String() string { @@ -819,7 +790,7 @@ func (*SetClientMetadataRequest) ProtoMessage() {} func (x *SetClientMetadataRequest) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -857,25 +828,22 @@ func (x *SetClientMetadataRequest) GetClientId() string { // Message to carry uname information. type Uname struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + System string `protobuf:"bytes,1,opt,name=system,proto3" json:"system,omitempty"` + Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"` + Release string `protobuf:"bytes,3,opt,name=release,proto3" json:"release,omitempty"` + Machine string `protobuf:"bytes,5,opt,name=machine,proto3" json:"machine,omitempty"` + Fqdn string `protobuf:"bytes,7,opt,name=fqdn,proto3" json:"fqdn,omitempty"` + MacAddresses []string `protobuf:"bytes,11,rep,name=mac_addresses,json=macAddresses,proto3" json:"mac_addresses,omitempty"` unknownFields protoimpl.UnknownFields - - System string `protobuf:"bytes,1,opt,name=system,proto3" json:"system,omitempty"` - Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"` - Release string `protobuf:"bytes,3,opt,name=release,proto3" json:"release,omitempty"` - Machine string `protobuf:"bytes,5,opt,name=machine,proto3" json:"machine,omitempty"` - Fqdn string `protobuf:"bytes,7,opt,name=fqdn,proto3" json:"fqdn,omitempty"` - MacAddresses []string `protobuf:"bytes,11,rep,name=mac_addresses,json=macAddresses,proto3" json:"mac_addresses,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Uname) Reset() { *x = Uname{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Uname) String() string { @@ -886,7 +854,7 @@ func (*Uname) ProtoMessage() {} func (x *Uname) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -944,23 +912,20 @@ func (x *Uname) GetMacAddresses() []string { } type IndexRecord struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Usually client id Entity string `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` // The term under which we indexed the entity. - Term string `protobuf:"bytes,2,opt,name=term,proto3" json:"term,omitempty"` + Term string `protobuf:"bytes,2,opt,name=term,proto3" json:"term,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *IndexRecord) Reset() { *x = IndexRecord{} - if protoimpl.UnsafeEnabled { - mi := &file_clients_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_clients_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *IndexRecord) String() string { @@ -971,7 +936,7 @@ func (*IndexRecord) ProtoMessage() {} func (x *IndexRecord) ProtoReflect() protoreflect.Message { mi := &file_clients_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1002,202 +967,107 @@ func (x *IndexRecord) GetTerm() string { var File_clients_proto protoreflect.FileDescriptor -var file_clients_proto_rawDesc = []byte{ - 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, - 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7c, 0x0a, 0x10, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x55, 0x72, 0x6c, 0x22, 0x8c, 0x07, 0x0a, 0x09, 0x41, - 0x70, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x1c, 0x0a, 0x0b, 0x41, 0x70, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x0d, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x64, 0x52, - 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x11, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x25, 0x0a, 0x07, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x06, - 0x6f, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x74, 0x0a, 0x0d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, - 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x50, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x4a, 0x0a, 0x0b, 0x52, 0x44, 0x46, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x12, 0x3b, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x73, 0x65, - 0x65, 0x6e, 0x20, 0x28, 0x69, 0x2e, 0x65, 0x2e, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x74, - 0x20, 0x77, 0x61, 0x73, 0x20, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x29, 0x2e, 0x52, - 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x41, 0x74, 0x12, 0x58, 0x0a, 0x0c, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x36, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x30, 0x0a, 0x0b, 0x52, 0x44, 0x46, 0x44, - 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x4c, 0x61, 0x73, 0x74, 0x20, 0x74, 0x69, - 0x6d, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x2e, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, - 0x53, 0x65, 0x65, 0x6e, 0x41, 0x74, 0x12, 0x41, 0x0a, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x22, 0x12, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x20, 0x73, 0x65, 0x65, 0x6e, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x41, 0x50, 0x49, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x06, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x70, 0x12, 0x37, 0x0a, 0x18, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x6c, - 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6c, 0x61, 0x73, - 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x64, 0x12, 0x43, 0x0a, 0x1e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x6c, 0x61, 0x73, 0x74, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, - 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6c, 0x61, - 0x73, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x37, 0x0a, 0x18, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4b, 0x0a, 0x0f, 0x69, 0x6e, - 0x5f, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x19, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6c, - 0x6f, 0x77, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x69, 0x6e, 0x46, 0x6c, 0x69, 0x67, - 0x68, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x49, 0x6e, 0x46, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x46, 0x6c, 0x6f, 0x77, 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, 0x03, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd3, 0x02, 0x0a, 0x14, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6f, - 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x4f, - 0x6e, 0x6c, 0x79, 0x12, 0x3c, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x04, 0x73, 0x6f, 0x72, - 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x38, - 0x0a, 0x0c, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x0c, - 0x0a, 0x08, 0x55, 0x4e, 0x53, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, - 0x53, 0x4f, 0x52, 0x54, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x4f, 0x52, - 0x54, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x22, 0x25, 0x0a, 0x07, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x22, - 0xfa, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x41, 0x70, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x12, 0x65, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x4f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x49, 0x12, 0x47, 0x49, 0x66, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x20, 0x77, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x68, 0x65, 0x72, 0x65, - 0x2e, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3c, - 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x65, 0x72, 0x6d, 0x22, 0x9f, 0x01, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4f, - 0x0a, 0x0b, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x42, 0x2d, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x27, 0x12, 0x25, 0x49, 0x66, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x52, 0x0b, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x72, 0x75, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x72, 0x75, 0x22, 0x6a, - 0x0a, 0x13, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x42, 0x0a, 0x0c, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x3c, - 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x49, 0x74, 0x65, 0x6d, 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, 0x22, 0x5e, 0x0a, 0x0e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2f, - 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, - 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x7c, 0x0a, 0x18, - 0x53, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x61, 0x64, 0x64, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, - 0x52, 0x03, 0x61, 0x64, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xa3, 0x03, 0x0a, 0x05, 0x55, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2d, 0x12, 0x2b, 0x54, 0x68, - 0x65, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x20, 0x28, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x7c, 0x44, 0x61, 0x72, 0x77, 0x69, - 0x6e, 0x7c, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x29, 0x2e, 0x52, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x12, 0x40, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x24, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1e, 0x12, 0x1c, 0x54, 0x68, 0x65, - 0x20, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x30, 0x12, 0x2e, 0x54, 0x68, - 0x65, 0x20, 0x4f, 0x53, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x37, 0x2c, 0x20, - 0x4f, 0x53, 0x58, 0x2c, 0x20, 0x64, 0x65, 0x62, 0x69, 0x61, 0x6e, 0x2e, 0x52, 0x07, 0x72, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2d, 0x12, 0x2b, - 0x54, 0x68, 0x65, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x41, 0x4d, 0x44, - 0x36, 0x34, 0x2c, 0x20, 0x78, 0x38, 0x36, 0x5f, 0x36, 0x34, 0x2e, 0x52, 0x07, 0x6d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x31, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2b, 0x12, 0x29, 0x54, 0x68, 0x65, 0x20, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x27, 0x73, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x71, - 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x52, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6d, - 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x22, 0x39, 0x0a, 0x0b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x42, 0x31, 0x5a, 0x2f, 0x77, - 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, - 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_clients_proto_rawDesc = "" + + "\n" + + "\rclients.proto\x12\x05proto\x1a\x14proto/semantic.proto\"|\n" + + "\x10AgentInformation\x12\x18\n" + + "\aversion\x18\x01 \x01(\tR\aversion\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x1d\n" + + "\n" + + "build_time\x18\x03 \x01(\tR\tbuildTime\x12\x1b\n" + + "\tbuild_url\x18\x04 \x01(\tR\bbuildUrl\"\x8c\a\n" + + "\tApiClient\x12?\n" + + "\tclient_id\x18\x01 \x01(\tB\"\xe2\xfc\xe3\xc4\x01\x1c\n" + + "\vApiClientId\x12\rThe client idR\bclientId\x12D\n" + + "\x11agent_information\x18\x02 \x01(\v2\x17.proto.AgentInformationR\x10agentInformation\x12%\n" + + "\aos_info\x18\x03 \x01(\v2\f.proto.UnameR\x06osInfo\x12t\n" + + "\rfirst_seen_at\x18\x06 \x01(\x04BP\xe2\xfc\xe3\xc4\x01J\n" + + "\vRDFDatetime\x12;When the client was first seen (i.e. when it was enrolled).R\vfirstSeenAt\x12X\n" + + "\flast_seen_at\x18\a \x01(\x04B6\xe2\xfc\xe3\xc4\x010\n" + + "\vRDFDatetime\x12!Last time when client checked in.R\n" + + "lastSeenAt\x12A\n" + + "\alast_ip\x18\x10 \x01(\tB(\xe2\xfc\xe3\xc4\x01\"\x12 The last seen remote API addressR\x06lastIp\x127\n" + + "\x18last_interrogate_flow_id\x18\x13 \x01(\tR\x15lastInterrogateFlowId\x12C\n" + + "\x1elast_interrogate_artifact_name\x18\x15 \x01(\tR\x1blastInterrogateArtifactName\x12\x16\n" + + "\x06labels\x18\x12 \x03(\tR\x06labels\x12.\n" + + "\x13last_hunt_timestamp\x18\x16 \x01(\x04R\x11lastHuntTimestamp\x127\n" + + "\x18last_event_table_version\x18\x17 \x01(\x04R\x15lastEventTableVersion\x120\n" + + "\x14last_label_timestamp\x18\x18 \x01(\x04R\x12lastLabelTimestamp\x12K\n" + + "\x0fin_flight_flows\x18\x19 \x03(\v2#.proto.ApiClient.InFlightFlowsEntryR\rinFlightFlows\x1a@\n" + + "\x12InFlightFlowsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x03R\x05value:\x028\x01\"\xd3\x02\n" + + "\x14SearchClientsRequest\x12\x16\n" + + "\x06offset\x18\x01 \x01(\x04R\x06offset\x12\x14\n" + + "\x05limit\x18\x02 \x01(\x04R\x05limit\x12\x14\n" + + "\x05query\x18\x03 \x01(\tR\x05query\x12\x1b\n" + + "\tname_only\x18\x04 \x01(\bR\bnameOnly\x12<\n" + + "\x04sort\x18\x06 \x01(\x0e2(.proto.SearchClientsRequest.SortingSenseR\x04sort\x12;\n" + + "\x06filter\x18\a \x01(\x0e2#.proto.SearchClientsRequest.FiltersR\x06filter\"8\n" + + "\fSortingSense\x12\f\n" + + "\bUNSORTED\x10\x00\x12\v\n" + + "\aSORT_UP\x10\x01\x12\r\n" + + "\tSORT_DOWN\x10\x02\"%\n" + + "\aFilters\x12\x0e\n" + + "\n" + + "UNFILTERED\x10\x00\x12\n" + + "\n" + + "\x06ONLINE\x10\x01\"\xfa\x01\n" + + "\x15SearchClientsResponse\x12&\n" + + "\x05items\x18\x01 \x03(\v2\x10.proto.ApiClientR\x05items\x12e\n" + + "\x05names\x18\x02 \x03(\tBO\xe2\xfc\xe3\xc4\x01I\x12GIf name_only is specified in the request we only return the names here.R\x05names\x12\x14\n" + + "\x05total\x18\x03 \x01(\x04R\x05total\x12<\n" + + "\vsearch_term\x18\x04 \x01(\v2\x1b.proto.SearchClientsRequestR\n" + + "searchTerm\"\x9f\x01\n" + + "\x10GetClientRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12O\n" + + "\vlightweight\x18\x02 \x01(\bB-\xe2\xfc\xe3\xc4\x01'\x12%If set only collect some information.R\vlightweight\x12\x1d\n" + + "\n" + + "update_mru\x18\x03 \x01(\bR\tupdateMru\"j\n" + + "\x13LabelClientsRequest\x12\x1d\n" + + "\n" + + "client_ids\x18\x01 \x03(\tR\tclientIds\x12\x16\n" + + "\x06labels\x18\x02 \x03(\tR\x06labels\x12\x1c\n" + + "\toperation\x18\x03 \x01(\tR\toperation\"B\n" + + "\fClientLabels\x12\x1c\n" + + "\ttimestamp\x18\x01 \x01(\x04R\ttimestamp\x12\x14\n" + + "\x05label\x18\x02 \x03(\tR\x05label\"<\n" + + "\x12ClientMetadataItem\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\"^\n" + + "\x0eClientMetadata\x12/\n" + + "\x05items\x18\x01 \x03(\v2\x19.proto.ClientMetadataItemR\x05items\x12\x1b\n" + + "\tclient_id\x18\x02 \x01(\tR\bclientId\"|\n" + + "\x18SetClientMetadataRequest\x12+\n" + + "\x03add\x18\x01 \x03(\v2\x19.proto.ClientMetadataItemR\x03add\x12\x16\n" + + "\x06remove\x18\x02 \x03(\tR\x06remove\x12\x1b\n" + + "\tclient_id\x18\x03 \x01(\tR\bclientId\"\xa3\x03\n" + + "\x05Uname\x12K\n" + + "\x06system\x18\x01 \x01(\tB3\xe2\xfc\xe3\xc4\x01-\x12+The system platform (Windows|Darwin|Linux).R\x06system\x12@\n" + + "\bhostname\x18\x02 \x01(\tB$\xe2\xfc\xe3\xc4\x01\x1e\x12\x1cThe hostname of this system.R\bhostname\x12P\n" + + "\arelease\x18\x03 \x01(\tB6\xe2\xfc\xe3\xc4\x010\x12.The OS release identifier e.g. 7, OSX, debian.R\arelease\x12M\n" + + "\amachine\x18\x05 \x01(\tB3\xe2\xfc\xe3\xc4\x01-\x12+The system architecture e.g. AMD64, x86_64.R\amachine\x12E\n" + + "\x04fqdn\x18\a \x01(\tB1\xe2\xfc\xe3\xc4\x01+\x12)The system's fully qualified domain name.R\x04fqdn\x12#\n" + + "\rmac_addresses\x18\v \x03(\tR\fmacAddresses\"9\n" + + "\vIndexRecord\x12\x16\n" + + "\x06entity\x18\x01 \x01(\tR\x06entity\x12\x12\n" + + "\x04term\x18\x02 \x01(\tR\x04termB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_clients_proto_rawDescOnce sync.Once - file_clients_proto_rawDescData = file_clients_proto_rawDesc + file_clients_proto_rawDescData []byte ) func file_clients_proto_rawDescGZIP() []byte { file_clients_proto_rawDescOnce.Do(func() { - file_clients_proto_rawDescData = protoimpl.X.CompressGZIP(file_clients_proto_rawDescData) + file_clients_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_clients_proto_rawDesc), len(file_clients_proto_rawDesc))) }) return file_clients_proto_rawDescData } var file_clients_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_clients_proto_msgTypes = make([]protoimpl.MessageInfo, 13) -var file_clients_proto_goTypes = []interface{}{ +var file_clients_proto_goTypes = []any{ (SearchClientsRequest_SortingSense)(0), // 0: proto.SearchClientsRequest.SortingSense (SearchClientsRequest_Filters)(0), // 1: proto.SearchClientsRequest.Filters (*AgentInformation)(nil), // 2: proto.AgentInformation @@ -1236,157 +1106,11 @@ func file_clients_proto_init() { if File_clients_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_clients_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AgentInformation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiClient); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchClientsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchClientsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClientRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LabelClientsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientLabels); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientMetadataItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetClientMetadataRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Uname); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_clients_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IndexRecord); 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_clients_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_clients_proto_rawDesc), len(file_clients_proto_rawDesc)), NumEnums: 2, NumMessages: 13, NumExtensions: 0, @@ -1398,7 +1122,6 @@ func file_clients_proto_init() { MessageInfos: file_clients_proto_msgTypes, }.Build() File_clients_proto = out.File - file_clients_proto_rawDesc = nil file_clients_proto_goTypes = nil file_clients_proto_depIdxs = nil } diff --git a/api/proto/completions.pb.go b/api/proto/completions.pb.go index 6ff22de9f..bc9377c45 100644 --- a/api/proto/completions.pb.go +++ b/api/proto/completions.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -18,24 +19,21 @@ const ( ) type ArgDescriptor struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Repeated bool `protobuf:"varint,4,opt,name=repeated,proto3" json:"repeated,omitempty"` + Required bool `protobuf:"varint,5,opt,name=required,proto3" json:"required,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - Repeated bool `protobuf:"varint,4,opt,name=repeated,proto3" json:"repeated,omitempty"` - Required bool `protobuf:"varint,5,opt,name=required,proto3" json:"required,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ArgDescriptor) Reset() { *x = ArgDescriptor{} - if protoimpl.UnsafeEnabled { - mi := &file_completions_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_completions_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArgDescriptor) String() string { @@ -46,7 +44,7 @@ func (*ArgDescriptor) ProtoMessage() {} func (x *ArgDescriptor) ProtoReflect() protoreflect.Message { mi := &file_completions_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -97,28 +95,25 @@ func (x *ArgDescriptor) GetRequired() bool { } type Completion struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Version uint64 `protobuf:"varint,6,opt,name=version,proto3" json:"version,omitempty"` + Args []*ArgDescriptor `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"` + Category string `protobuf:"bytes,5,opt,name=category,proto3" json:"category,omitempty"` + Metadata map[string]string `protobuf:"bytes,7,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Platforms []string `protobuf:"bytes,8,rep,name=platforms,proto3" json:"platforms,omitempty"` + FreeFormArgs bool `protobuf:"varint,9,opt,name=free_form_args,json=freeFormArgs,proto3" json:"free_form_args,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` - Version uint64 `protobuf:"varint,6,opt,name=version,proto3" json:"version,omitempty"` - Args []*ArgDescriptor `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"` - Category string `protobuf:"bytes,5,opt,name=category,proto3" json:"category,omitempty"` - Metadata map[string]string `protobuf:"bytes,7,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Platforms []string `protobuf:"bytes,8,rep,name=platforms,proto3" json:"platforms,omitempty"` - FreeFormArgs bool `protobuf:"varint,9,opt,name=free_form_args,json=freeFormArgs,proto3" json:"free_form_args,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Completion) Reset() { *x = Completion{} - if protoimpl.UnsafeEnabled { - mi := &file_completions_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_completions_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Completion) String() string { @@ -129,7 +124,7 @@ func (*Completion) ProtoMessage() {} func (x *Completion) ProtoReflect() protoreflect.Message { mi := &file_completions_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -208,20 +203,17 @@ func (x *Completion) GetFreeFormArgs() bool { } type KeywordCompletions struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*Completion `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*Completion `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *KeywordCompletions) Reset() { *x = KeywordCompletions{} - if protoimpl.UnsafeEnabled { - mi := &file_completions_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_completions_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeywordCompletions) String() string { @@ -232,7 +224,7 @@ func (*KeywordCompletions) ProtoMessage() {} func (x *KeywordCompletions) ProtoReflect() protoreflect.Message { mi := &file_completions_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -256,65 +248,46 @@ func (x *KeywordCompletions) GetItems() []*Completion { var File_completions_proto protoreflect.FileDescriptor -var file_completions_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x91, 0x01, 0x0a, 0x0d, 0x41, - 0x72, 0x67, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0xf4, - 0x02, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x28, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x67, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, - 0x61, 0x72, 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x65, 0x65, - 0x46, 0x6f, 0x72, 0x6d, 0x41, 0x72, 0x67, 0x73, 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, 0x3d, 0x0a, 0x12, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, - 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, - 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, - 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_completions_proto_rawDesc = "" + + "\n" + + "\x11completions.proto\x12\x05proto\"\x91\x01\n" + + "\rArgDescriptor\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\x12\x1a\n" + + "\brepeated\x18\x04 \x01(\bR\brepeated\x12\x1a\n" + + "\brequired\x18\x05 \x01(\bR\brequired\"\xf4\x02\n" + + "\n" + + "Completion\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12 \n" + + "\vdescription\x18\x02 \x01(\tR\vdescription\x12\x12\n" + + "\x04type\x18\x03 \x01(\tR\x04type\x12\x18\n" + + "\aversion\x18\x06 \x01(\x04R\aversion\x12(\n" + + "\x04args\x18\x04 \x03(\v2\x14.proto.ArgDescriptorR\x04args\x12\x1a\n" + + "\bcategory\x18\x05 \x01(\tR\bcategory\x12;\n" + + "\bmetadata\x18\a \x03(\v2\x1f.proto.Completion.MetadataEntryR\bmetadata\x12\x1c\n" + + "\tplatforms\x18\b \x03(\tR\tplatforms\x12$\n" + + "\x0efree_form_args\x18\t \x01(\bR\ffreeFormArgs\x1a;\n" + + "\rMetadataEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"=\n" + + "\x12KeywordCompletions\x12'\n" + + "\x05items\x18\x01 \x03(\v2\x11.proto.CompletionR\x05itemsB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_completions_proto_rawDescOnce sync.Once - file_completions_proto_rawDescData = file_completions_proto_rawDesc + file_completions_proto_rawDescData []byte ) func file_completions_proto_rawDescGZIP() []byte { file_completions_proto_rawDescOnce.Do(func() { - file_completions_proto_rawDescData = protoimpl.X.CompressGZIP(file_completions_proto_rawDescData) + file_completions_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_completions_proto_rawDesc), len(file_completions_proto_rawDesc))) }) return file_completions_proto_rawDescData } var file_completions_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_completions_proto_goTypes = []interface{}{ +var file_completions_proto_goTypes = []any{ (*ArgDescriptor)(nil), // 0: proto.ArgDescriptor (*Completion)(nil), // 1: proto.Completion (*KeywordCompletions)(nil), // 2: proto.KeywordCompletions @@ -336,49 +309,11 @@ func file_completions_proto_init() { if File_completions_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_completions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArgDescriptor); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_completions_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Completion); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_completions_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeywordCompletions); 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_completions_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_completions_proto_rawDesc), len(file_completions_proto_rawDesc)), NumEnums: 0, NumMessages: 4, NumExtensions: 0, @@ -389,7 +324,6 @@ func file_completions_proto_init() { MessageInfos: file_completions_proto_msgTypes, }.Build() File_completions_proto = out.File - file_completions_proto_rawDesc = nil file_completions_proto_goTypes = nil file_completions_proto_depIdxs = nil } diff --git a/api/proto/csv.pb.go b/api/proto/csv.pb.go index 9543609a8..026672a8c 100644 --- a/api/proto/csv.pb.go +++ b/api/proto/csv.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto "www.velocidex.com/golang/velociraptor/artifacts/proto" _ "www.velocidex.com/golang/velociraptor/proto" proto1 "www.velocidex.com/golang/velociraptor/timelines/proto" @@ -21,10 +22,7 @@ const ( ) type GetTableRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Paging parameters. Rows uint64 `protobuf:"varint,2,opt,name=rows,proto3" json:"rows,omitempty"` // Number of rows to fetch StartRow uint64 `protobuf:"varint,3,opt,name=start_row,json=startRow,proto3" json:"start_row,omitempty"` // First row to fetch. @@ -80,15 +78,15 @@ type GetTableRequest struct { Version uint64 `protobuf:"varint,25,opt,name=version,proto3" json:"version,omitempty"` // Used for VFS components VfsComponents []string `protobuf:"bytes,26,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetTableRequest) Reset() { *x = GetTableRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_csv_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_csv_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTableRequest) String() string { @@ -99,7 +97,7 @@ func (*GetTableRequest) ProtoMessage() {} func (x *GetTableRequest) ProtoReflect() protoreflect.Message { mi := &file_csv_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -325,22 +323,19 @@ func (x *GetTableRequest) GetVfsComponents() []string { } type Row struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The row encoded as a JSON array: Current code encodes the // entire JSON []interface{} into a single JSON string. - Json string `protobuf:"bytes,2,opt,name=json,proto3" json:"json,omitempty"` + Json string `protobuf:"bytes,2,opt,name=json,proto3" json:"json,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Row) Reset() { *x = Row{} - if protoimpl.UnsafeEnabled { - mi := &file_csv_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_csv_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Row) String() string { @@ -351,7 +346,7 @@ func (*Row) ProtoMessage() {} func (x *Row) ProtoReflect() protoreflect.Message { mi := &file_csv_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -374,29 +369,26 @@ func (x *Row) GetJson() string { } type GetTableResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Columns []string `protobuf:"bytes,1,rep,name=columns,proto3" json:"columns,omitempty"` - Rows []*Row `protobuf:"bytes,2,rep,name=rows,proto3" json:"rows,omitempty"` - TotalRows int64 `protobuf:"varint,3,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"` - ColumnTypes []*proto.ColumnType `protobuf:"bytes,4,rep,name=column_types,json=columnTypes,proto3" json:"column_types,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Columns []string `protobuf:"bytes,1,rep,name=columns,proto3" json:"columns,omitempty"` + Rows []*Row `protobuf:"bytes,2,rep,name=rows,proto3" json:"rows,omitempty"` + TotalRows int64 `protobuf:"varint,3,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"` + ColumnTypes []*proto.ColumnType `protobuf:"bytes,4,rep,name=column_types,json=columnTypes,proto3" json:"column_types,omitempty"` // Used for time based data. StartTime int64 `protobuf:"varint,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` EndTime int64 `protobuf:"varint,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` Timelines []*proto1.Timeline `protobuf:"bytes,8,rep,name=timelines,proto3" json:"timelines,omitempty"` // If there is a stack table this is the path to it. - StackPath []string `protobuf:"bytes,7,rep,name=stack_path,json=stackPath,proto3" json:"stack_path,omitempty"` + StackPath []string `protobuf:"bytes,7,rep,name=stack_path,json=stackPath,proto3" json:"stack_path,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetTableResponse) Reset() { *x = GetTableResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_csv_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_csv_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTableResponse) String() string { @@ -407,7 +399,7 @@ func (*GetTableResponse) ProtoMessage() {} func (x *GetTableResponse) ProtoReflect() protoreflect.Message { mi := &file_csv_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -480,115 +472,75 @@ func (x *GetTableResponse) GetStackPath() []string { var File_csv_proto protoreflect.FileDescriptor -var file_csv_proto_rawDesc = []byte{ - 0x0a, 0x09, 0x63, 0x73, 0x76, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, - 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb0, 0x07, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x72, 0x6f, 0x77, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x6f, 0x77, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x77, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, - 0x0a, 0x07, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x68, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x62, - 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x65, 0x6c, 0x6c, - 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x65, 0x6c, 0x6c, 0x49, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x65, 0x6c, 0x6c, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6b, - 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x11, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x11, - 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x72, 0x74, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x6f, - 0x72, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x67, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x78, 0x18, - 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x64, 0x78, 0x12, - 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x78, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, - 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x66, 0x73, 0x5f, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x76, - 0x66, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x19, 0x0a, 0x03, - 0x52, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0xbe, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x07, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x13, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x0d, 0x12, 0x0b, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x73, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x72, - 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x34, 0x0a, 0x0c, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, - 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, - 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, - 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -} +const file_csv_proto_rawDesc = "" + + "\n" + + "\tcsv.proto\x12\x05proto\x1a\x14proto/semantic.proto\x1a\x1eartifacts/proto/artifact.proto\x1a\x1ftimelines/proto/timelines.proto\"\xb0\a\n" + + "\x0fGetTableRequest\x12\x12\n" + + "\x04rows\x18\x02 \x01(\x04R\x04rows\x12\x1b\n" + + "\tstart_row\x18\x03 \x01(\x04R\bstartRow\x12\x1d\n" + + "\n" + + "start_time\x18\r \x01(\x03R\tstartTime\x12\x19\n" + + "\bend_time\x18\x0e \x01(\x03R\aendTime\x12\x1b\n" + + "\tclient_id\x18\x04 \x01(\tR\bclientId\x12\x17\n" + + "\aflow_id\x18\x05 \x01(\tR\x06flowId\x12\x1a\n" + + "\bartifact\x18\x06 \x01(\tR\bartifact\x12\x12\n" + + "\x04type\x18\a \x01(\tR\x04type\x12\x17\n" + + "\ahunt_id\x18\b \x01(\tR\x06huntId\x12\x1f\n" + + "\vnotebook_id\x18\t \x01(\tR\n" + + "notebookId\x12\x17\n" + + "\acell_id\x18\n" + + " \x01(\tR\x06cellId\x12!\n" + + "\fcell_version\x18\x1d \x01(\tR\vcellVersion\x12\x19\n" + + "\btable_id\x18\v \x01(\x03R\atableId\x12\x1a\n" + + "\btimeline\x18\x10 \x01(\tR\btimeline\x12-\n" + + "\x12include_components\x18\x1f \x03(\tR\x11includeComponents\x12'\n" + + "\x0fskip_components\x18\x11 \x03(\tR\x0eskipComponents\x12'\n" + + "\x0fdownload_format\x18\f \x01(\tR\x0edownloadFormat\x12+\n" + + "\x11download_filename\x18\x12 \x01(\tR\x10downloadFilename\x12\x18\n" + + "\acolumns\x18\x0f \x03(\tR\acolumns\x12\x1f\n" + + "\vsort_column\x18\x13 \x01(\tR\n" + + "sortColumn\x12%\n" + + "\x0esort_direction\x18\x14 \x01(\bR\rsortDirection\x12#\n" + + "\rfilter_column\x18\x15 \x01(\tR\ffilterColumn\x12!\n" + + "\ffilter_regex\x18\x16 \x01(\tR\vfilterRegex\x12\x1d\n" + + "\n" + + "stack_path\x18\x1e \x03(\tR\tstackPath\x12\x1b\n" + + "\tstart_idx\x18\x1b \x01(\x04R\bstartIdx\x12\x17\n" + + "\aend_idx\x18\x1c \x01(\x04R\x06endIdx\x12\x15\n" + + "\x06org_id\x18\x17 \x01(\tR\x05orgId\x12\x1a\n" + + "\btimezone\x18\x18 \x01(\tR\btimezone\x12\x18\n" + + "\aversion\x18\x19 \x01(\x04R\aversion\x12%\n" + + "\x0evfs_components\x18\x1a \x03(\tR\rvfsComponents\"\x19\n" + + "\x03Row\x12\x12\n" + + "\x04json\x18\x02 \x01(\tR\x04json\"\xbe\x02\n" + + "\x10GetTableResponse\x12-\n" + + "\acolumns\x18\x01 \x03(\tB\x13\xe2\xfc\xe3\xc4\x01\r\x12\vThe columnsR\acolumns\x12\x1e\n" + + "\x04rows\x18\x02 \x03(\v2\n" + + ".proto.RowR\x04rows\x12\x1d\n" + + "\n" + + "total_rows\x18\x03 \x01(\x03R\ttotalRows\x124\n" + + "\fcolumn_types\x18\x04 \x03(\v2\x11.proto.ColumnTypeR\vcolumnTypes\x12\x1d\n" + + "\n" + + "start_time\x18\x05 \x01(\x03R\tstartTime\x12\x19\n" + + "\bend_time\x18\x06 \x01(\x03R\aendTime\x12-\n" + + "\ttimelines\x18\b \x03(\v2\x0f.proto.TimelineR\ttimelines\x12\x1d\n" + + "\n" + + "stack_path\x18\a \x03(\tR\tstackPathB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_csv_proto_rawDescOnce sync.Once - file_csv_proto_rawDescData = file_csv_proto_rawDesc + file_csv_proto_rawDescData []byte ) func file_csv_proto_rawDescGZIP() []byte { file_csv_proto_rawDescOnce.Do(func() { - file_csv_proto_rawDescData = protoimpl.X.CompressGZIP(file_csv_proto_rawDescData) + file_csv_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_csv_proto_rawDesc), len(file_csv_proto_rawDesc))) }) return file_csv_proto_rawDescData } var file_csv_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_csv_proto_goTypes = []interface{}{ +var file_csv_proto_goTypes = []any{ (*GetTableRequest)(nil), // 0: proto.GetTableRequest (*Row)(nil), // 1: proto.Row (*GetTableResponse)(nil), // 2: proto.GetTableResponse @@ -611,49 +563,11 @@ func file_csv_proto_init() { if File_csv_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_csv_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTableRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_csv_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Row); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_csv_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTableResponse); 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_csv_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_csv_proto_rawDesc), len(file_csv_proto_rawDesc)), NumEnums: 0, NumMessages: 3, NumExtensions: 0, @@ -664,7 +578,6 @@ func file_csv_proto_init() { MessageInfos: file_csv_proto_msgTypes, }.Build() File_csv_proto = out.File - file_csv_proto_rawDesc = nil file_csv_proto_goTypes = nil file_csv_proto_depIdxs = nil } diff --git a/api/proto/datastore.pb.go b/api/proto/datastore.pb.go index 4e8a1a1d9..b29119a2e 100644 --- a/api/proto/datastore.pb.go +++ b/api/proto/datastore.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -18,23 +19,20 @@ const ( ) type DSPathSpec struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Components []string `protobuf:"bytes,1,rep,name=components,proto3" json:"components,omitempty"` + PathType int64 `protobuf:"varint,2,opt,name=path_type,json=pathType,proto3" json:"path_type,omitempty"` + IsDir bool `protobuf:"varint,3,opt,name=is_dir,json=isDir,proto3" json:"is_dir,omitempty"` + Tag string `protobuf:"bytes,4,opt,name=tag,proto3" json:"tag,omitempty"` unknownFields protoimpl.UnknownFields - - Components []string `protobuf:"bytes,1,rep,name=components,proto3" json:"components,omitempty"` - PathType int64 `protobuf:"varint,2,opt,name=path_type,json=pathType,proto3" json:"path_type,omitempty"` - IsDir bool `protobuf:"varint,3,opt,name=is_dir,json=isDir,proto3" json:"is_dir,omitempty"` - Tag string `protobuf:"bytes,4,opt,name=tag,proto3" json:"tag,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DSPathSpec) Reset() { *x = DSPathSpec{} - if protoimpl.UnsafeEnabled { - mi := &file_datastore_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_datastore_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DSPathSpec) String() string { @@ -45,7 +43,7 @@ func (*DSPathSpec) ProtoMessage() {} func (x *DSPathSpec) ProtoReflect() protoreflect.Message { mi := &file_datastore_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -89,25 +87,22 @@ func (x *DSPathSpec) GetTag() string { } type DataRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pathspec *DSPathSpec `protobuf:"bytes,1,opt,name=pathspec,proto3" json:"pathspec,omitempty"` - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Pathspec *DSPathSpec `protobuf:"bytes,1,opt,name=pathspec,proto3" json:"pathspec,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` // If set the request will block until the data is committed to // disk. - Sync bool `protobuf:"varint,3,opt,name=sync,proto3" json:"sync,omitempty"` - OrgId string `protobuf:"bytes,4,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + Sync bool `protobuf:"varint,3,opt,name=sync,proto3" json:"sync,omitempty"` + OrgId string `protobuf:"bytes,4,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DataRequest) Reset() { *x = DataRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_datastore_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_datastore_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DataRequest) String() string { @@ -118,7 +113,7 @@ func (*DataRequest) ProtoMessage() {} func (x *DataRequest) ProtoReflect() protoreflect.Message { mi := &file_datastore_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -162,20 +157,17 @@ func (x *DataRequest) GetOrgId() string { } type DataResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` unknownFields protoimpl.UnknownFields - - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DataResponse) Reset() { *x = DataResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_datastore_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_datastore_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DataResponse) String() string { @@ -186,7 +178,7 @@ func (*DataResponse) ProtoMessage() {} func (x *DataResponse) ProtoReflect() protoreflect.Message { mi := &file_datastore_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -209,20 +201,17 @@ func (x *DataResponse) GetData() []byte { } type ListChildrenResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Children []*DSPathSpec `protobuf:"bytes,1,rep,name=children,proto3" json:"children,omitempty"` unknownFields protoimpl.UnknownFields - - Children []*DSPathSpec `protobuf:"bytes,1,rep,name=children,proto3" json:"children,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListChildrenResponse) Reset() { *x = ListChildrenResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_datastore_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_datastore_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListChildrenResponse) String() string { @@ -233,7 +222,7 @@ func (*ListChildrenResponse) ProtoMessage() {} func (x *ListChildrenResponse) ProtoReflect() protoreflect.Message { mi := &file_datastore_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -257,50 +246,41 @@ func (x *ListChildrenResponse) GetChildren() []*DSPathSpec { var File_datastore_proto protoreflect.FileDescriptor -var file_datastore_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x72, 0x0a, 0x0a, 0x44, 0x53, 0x50, 0x61, - 0x74, 0x68, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, - 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x22, 0x7b, 0x0a, 0x0b, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x08, 0x70, - 0x61, 0x74, 0x68, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x53, 0x50, 0x61, 0x74, 0x68, 0x53, 0x70, 0x65, 0x63, - 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x79, - 0x6e, 0x63, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x45, 0x0a, - 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x44, 0x53, 0x50, 0x61, 0x74, 0x68, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x72, 0x65, 0x6e, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, - 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, - 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_datastore_proto_rawDesc = "" + + "\n" + + "\x0fdatastore.proto\x12\x05proto\"r\n" + + "\n" + + "DSPathSpec\x12\x1e\n" + + "\n" + + "components\x18\x01 \x03(\tR\n" + + "components\x12\x1b\n" + + "\tpath_type\x18\x02 \x01(\x03R\bpathType\x12\x15\n" + + "\x06is_dir\x18\x03 \x01(\bR\x05isDir\x12\x10\n" + + "\x03tag\x18\x04 \x01(\tR\x03tag\"{\n" + + "\vDataRequest\x12-\n" + + "\bpathspec\x18\x01 \x01(\v2\x11.proto.DSPathSpecR\bpathspec\x12\x12\n" + + "\x04data\x18\x02 \x01(\fR\x04data\x12\x12\n" + + "\x04sync\x18\x03 \x01(\bR\x04sync\x12\x15\n" + + "\x06org_id\x18\x04 \x01(\tR\x05orgId\"\"\n" + + "\fDataResponse\x12\x12\n" + + "\x04data\x18\x02 \x01(\fR\x04data\"E\n" + + "\x14ListChildrenResponse\x12-\n" + + "\bchildren\x18\x01 \x03(\v2\x11.proto.DSPathSpecR\bchildrenB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_datastore_proto_rawDescOnce sync.Once - file_datastore_proto_rawDescData = file_datastore_proto_rawDesc + file_datastore_proto_rawDescData []byte ) func file_datastore_proto_rawDescGZIP() []byte { file_datastore_proto_rawDescOnce.Do(func() { - file_datastore_proto_rawDescData = protoimpl.X.CompressGZIP(file_datastore_proto_rawDescData) + file_datastore_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_datastore_proto_rawDesc), len(file_datastore_proto_rawDesc))) }) return file_datastore_proto_rawDescData } var file_datastore_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_datastore_proto_goTypes = []interface{}{ +var file_datastore_proto_goTypes = []any{ (*DSPathSpec)(nil), // 0: proto.DSPathSpec (*DataRequest)(nil), // 1: proto.DataRequest (*DataResponse)(nil), // 2: proto.DataResponse @@ -321,61 +301,11 @@ func file_datastore_proto_init() { if File_datastore_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_datastore_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DSPathSpec); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_datastore_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_datastore_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_datastore_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListChildrenResponse); 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_datastore_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_datastore_proto_rawDesc), len(file_datastore_proto_rawDesc)), NumEnums: 0, NumMessages: 4, NumExtensions: 0, @@ -386,7 +316,6 @@ func file_datastore_proto_init() { MessageInfos: file_datastore_proto_msgTypes, }.Build() File_datastore_proto = out.File - file_datastore_proto_rawDesc = nil file_datastore_proto_goTypes = nil file_datastore_proto_depIdxs = nil } diff --git a/api/proto/docs.pb.go b/api/proto/docs.pb.go index 11f875726..e5ec4f744 100644 --- a/api/proto/docs.pb.go +++ b/api/proto/docs.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -18,22 +19,19 @@ const ( ) type DocSearchRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + Start int64 `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"` + Length int64 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"` unknownFields protoimpl.UnknownFields - - Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` - Start int64 `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"` - Length int64 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DocSearchRequest) Reset() { *x = DocSearchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_docs_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_docs_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DocSearchRequest) String() string { @@ -44,7 +42,7 @@ func (*DocSearchRequest) ProtoMessage() {} func (x *DocSearchRequest) ProtoReflect() protoreflect.Message { mi := &file_docs_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -81,21 +79,18 @@ func (x *DocSearchRequest) GetLength() int64 { } type Highlight struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Start uint64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` + End uint64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` unknownFields protoimpl.UnknownFields - - Start uint64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` - End uint64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Highlight) Reset() { *x = Highlight{} - if protoimpl.UnsafeEnabled { - mi := &file_docs_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_docs_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Highlight) String() string { @@ -106,7 +101,7 @@ func (*Highlight) ProtoMessage() {} func (x *Highlight) ProtoReflect() protoreflect.Message { mi := &file_docs_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -136,28 +131,25 @@ func (x *Highlight) GetEnd() uint64 { } type DocSearchResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Link string `protobuf:"bytes,1,opt,name=link,proto3" json:"link,omitempty"` - Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` - Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` - Fragment string `protobuf:"bytes,4,opt,name=fragment,proto3" json:"fragment,omitempty"` - FullText string `protobuf:"bytes,5,opt,name=full_text,json=fullText,proto3" json:"full_text,omitempty"` - Highlights []*Highlight `protobuf:"bytes,6,rep,name=highlights,proto3" json:"highlights,omitempty"` - Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Link string `protobuf:"bytes,1,opt,name=link,proto3" json:"link,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Fragment string `protobuf:"bytes,4,opt,name=fragment,proto3" json:"fragment,omitempty"` + FullText string `protobuf:"bytes,5,opt,name=full_text,json=fullText,proto3" json:"full_text,omitempty"` + Highlights []*Highlight `protobuf:"bytes,6,rep,name=highlights,proto3" json:"highlights,omitempty"` + Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"` // JSON encoded crumbs structure - Crumbs string `protobuf:"bytes,8,opt,name=crumbs,proto3" json:"crumbs,omitempty"` + Crumbs string `protobuf:"bytes,8,opt,name=crumbs,proto3" json:"crumbs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DocSearchResponse) Reset() { *x = DocSearchResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_docs_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_docs_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DocSearchResponse) String() string { @@ -168,7 +160,7 @@ func (*DocSearchResponse) ProtoMessage() {} func (x *DocSearchResponse) ProtoReflect() protoreflect.Message { mi := &file_docs_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -240,21 +232,18 @@ func (x *DocSearchResponse) GetCrumbs() string { } type DocSearchResponses struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Items []*DocSearchResponse `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` unknownFields protoimpl.UnknownFields - - Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` - Items []*DocSearchResponse `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DocSearchResponses) Reset() { *x = DocSearchResponses{} - if protoimpl.UnsafeEnabled { - mi := &file_docs_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_docs_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DocSearchResponses) String() string { @@ -265,7 +254,7 @@ func (*DocSearchResponses) ProtoMessage() {} func (x *DocSearchResponses) ProtoReflect() protoreflect.Message { mi := &file_docs_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -296,58 +285,46 @@ func (x *DocSearchResponses) GetItems() []*DocSearchResponse { var File_docs_proto protoreflect.FileDescriptor -var file_docs_proto_rawDesc = []byte{ - 0x0a, 0x0a, 0x64, 0x6f, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x56, 0x0a, 0x10, 0x44, 0x6f, 0x63, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x33, 0x0a, 0x09, 0x48, - 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x65, 0x6e, 0x64, - 0x22, 0xe8, 0x01, 0x0a, 0x11, 0x44, 0x6f, 0x63, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x54, 0x65, 0x78, 0x74, 0x12, 0x30, 0x0a, - 0x0a, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x0a, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x75, 0x6d, 0x62, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x75, 0x6d, 0x62, 0x73, 0x22, 0x5a, 0x0a, 0x12, 0x44, - 0x6f, 0x63, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, - 0x6f, 0x63, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, - 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, - 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} +const file_docs_proto_rawDesc = "" + + "\n" + + "\n" + + "docs.proto\x12\x05proto\"V\n" + + "\x10DocSearchRequest\x12\x14\n" + + "\x05query\x18\x01 \x01(\tR\x05query\x12\x14\n" + + "\x05start\x18\x02 \x01(\x03R\x05start\x12\x16\n" + + "\x06length\x18\x03 \x01(\x03R\x06length\"3\n" + + "\tHighlight\x12\x14\n" + + "\x05start\x18\x01 \x01(\x04R\x05start\x12\x10\n" + + "\x03end\x18\x02 \x01(\x04R\x03end\"\xe8\x01\n" + + "\x11DocSearchResponse\x12\x12\n" + + "\x04link\x18\x01 \x01(\tR\x04link\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12\x12\n" + + "\x04type\x18\x03 \x01(\tR\x04type\x12\x1a\n" + + "\bfragment\x18\x04 \x01(\tR\bfragment\x12\x1b\n" + + "\tfull_text\x18\x05 \x01(\tR\bfullText\x120\n" + + "\n" + + "highlights\x18\x06 \x03(\v2\x10.proto.HighlightR\n" + + "highlights\x12\x12\n" + + "\x04tags\x18\a \x03(\tR\x04tags\x12\x16\n" + + "\x06crumbs\x18\b \x01(\tR\x06crumbs\"Z\n" + + "\x12DocSearchResponses\x12\x14\n" + + "\x05total\x18\x01 \x01(\x04R\x05total\x12.\n" + + "\x05Items\x18\x02 \x03(\v2\x18.proto.DocSearchResponseR\x05ItemsB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_docs_proto_rawDescOnce sync.Once - file_docs_proto_rawDescData = file_docs_proto_rawDesc + file_docs_proto_rawDescData []byte ) func file_docs_proto_rawDescGZIP() []byte { file_docs_proto_rawDescOnce.Do(func() { - file_docs_proto_rawDescData = protoimpl.X.CompressGZIP(file_docs_proto_rawDescData) + file_docs_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_docs_proto_rawDesc), len(file_docs_proto_rawDesc))) }) return file_docs_proto_rawDescData } var file_docs_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_docs_proto_goTypes = []interface{}{ +var file_docs_proto_goTypes = []any{ (*DocSearchRequest)(nil), // 0: proto.DocSearchRequest (*Highlight)(nil), // 1: proto.Highlight (*DocSearchResponse)(nil), // 2: proto.DocSearchResponse @@ -368,61 +345,11 @@ func file_docs_proto_init() { if File_docs_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_docs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DocSearchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_docs_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Highlight); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_docs_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DocSearchResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_docs_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DocSearchResponses); 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_docs_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_docs_proto_rawDesc), len(file_docs_proto_rawDesc)), NumEnums: 0, NumMessages: 4, NumExtensions: 0, @@ -433,7 +360,6 @@ func file_docs_proto_init() { MessageInfos: file_docs_proto_msgTypes, }.Build() File_docs_proto = out.File - file_docs_proto_rawDesc = nil file_docs_proto_goTypes = nil file_docs_proto_depIdxs = nil } diff --git a/api/proto/download.pb.go b/api/proto/download.pb.go index cf65a2f12..f5f97fd00 100644 --- a/api/proto/download.pb.go +++ b/api/proto/download.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -18,13 +19,10 @@ const ( ) type CreateDownloadRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` - ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - HuntId string `protobuf:"bytes,3,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + HuntId string `protobuf:"bytes,3,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` // When set we only create combined hunt output and not individual // flow breakdowns. OnlyCombinedHunt bool `protobuf:"varint,4,opt,name=only_combined_hunt,json=onlyCombinedHunt,proto3" json:"only_combined_hunt,omitempty"` @@ -35,16 +33,16 @@ type CreateDownloadRequest struct { // If set we lock the file with this password. Password string `protobuf:"bytes,8,opt,name=password,proto3" json:"password,omitempty"` // If set we expand all sparse files in the archive. - ExpandSparse bool `protobuf:"varint,9,opt,name=expand_sparse,json=expandSparse,proto3" json:"expand_sparse,omitempty"` + ExpandSparse bool `protobuf:"varint,9,opt,name=expand_sparse,json=expandSparse,proto3" json:"expand_sparse,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateDownloadRequest) Reset() { *x = CreateDownloadRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_download_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_download_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateDownloadRequest) String() string { @@ -55,7 +53,7 @@ func (*CreateDownloadRequest) ProtoMessage() {} func (x *CreateDownloadRequest) ProtoReflect() protoreflect.Message { mi := &file_download_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -134,20 +132,17 @@ func (x *CreateDownloadRequest) GetExpandSparse() bool { } type CreateDownloadResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + VfsPath string `protobuf:"bytes,1,opt,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` unknownFields protoimpl.UnknownFields - - VfsPath string `protobuf:"bytes,1,opt,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateDownloadResponse) Reset() { *x = CreateDownloadResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_download_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_download_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateDownloadResponse) String() string { @@ -158,7 +153,7 @@ func (*CreateDownloadResponse) ProtoMessage() {} func (x *CreateDownloadResponse) ProtoReflect() protoreflect.Message { mi := &file_download_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -181,23 +176,20 @@ func (x *CreateDownloadResponse) GetVfsPath() string { } type FormUploadMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` // A list of Path components to the VFS - VfsPath []string `protobuf:"bytes,3,rep,name=VfsPath,proto3" json:"VfsPath,omitempty"` + VfsPath []string `protobuf:"bytes,3,rep,name=VfsPath,proto3" json:"VfsPath,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FormUploadMetadata) Reset() { *x = FormUploadMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_download_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_download_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FormUploadMetadata) String() string { @@ -208,7 +200,7 @@ func (*FormUploadMetadata) ProtoMessage() {} func (x *FormUploadMetadata) ProtoReflect() protoreflect.Message { mi := &file_download_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -246,58 +238,42 @@ func (x *FormUploadMetadata) GetVfsPath() []string { var File_download_proto protoreflect.FileDescriptor -var file_download_proto_rawDesc = []byte{ - 0x0a, 0x0e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xba, 0x02, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, - 0x64, 0x5f, 0x68, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6f, 0x6e, - 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x75, 0x6e, 0x74, 0x12, 0x1f, - 0x0a, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x63, 0x73, 0x76, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x73, 0x76, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x53, 0x70, - 0x61, 0x72, 0x73, 0x65, 0x22, 0x33, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x76, 0x66, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x76, 0x66, 0x73, 0x50, 0x61, 0x74, 0x68, 0x22, 0x5c, 0x0a, 0x12, 0x46, 0x6f, 0x72, - 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x18, 0x0a, - 0x07, 0x56, 0x66, 0x73, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x56, 0x66, 0x73, 0x50, 0x61, 0x74, 0x68, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, - 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, - 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} +const file_download_proto_rawDesc = "" + + "\n" + + "\x0edownload.proto\x12\x05proto\"\xba\x02\n" + + "\x15CreateDownloadRequest\x12\x17\n" + + "\aflow_id\x18\x01 \x01(\tR\x06flowId\x12\x1b\n" + + "\tclient_id\x18\x02 \x01(\tR\bclientId\x12\x17\n" + + "\ahunt_id\x18\x03 \x01(\tR\x06huntId\x12,\n" + + "\x12only_combined_hunt\x18\x04 \x01(\bR\x10onlyCombinedHunt\x12\x1f\n" + + "\vjson_format\x18\x05 \x01(\bR\n" + + "jsonFormat\x12\x1d\n" + + "\n" + + "csv_format\x18\x06 \x01(\bR\tcsvFormat\x12#\n" + + "\rdownload_type\x18\a \x01(\tR\fdownloadType\x12\x1a\n" + + "\bpassword\x18\b \x01(\tR\bpassword\x12#\n" + + "\rexpand_sparse\x18\t \x01(\bR\fexpandSparse\"3\n" + + "\x16CreateDownloadResponse\x12\x19\n" + + "\bvfs_path\x18\x01 \x01(\tR\avfsPath\"\\\n" + + "\x12FormUploadMetadata\x12\x1a\n" + + "\bfilename\x18\x01 \x01(\tR\bfilename\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12\x18\n" + + "\aVfsPath\x18\x03 \x03(\tR\aVfsPathB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_download_proto_rawDescOnce sync.Once - file_download_proto_rawDescData = file_download_proto_rawDesc + file_download_proto_rawDescData []byte ) func file_download_proto_rawDescGZIP() []byte { file_download_proto_rawDescOnce.Do(func() { - file_download_proto_rawDescData = protoimpl.X.CompressGZIP(file_download_proto_rawDescData) + file_download_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_download_proto_rawDesc), len(file_download_proto_rawDesc))) }) return file_download_proto_rawDescData } var file_download_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_download_proto_goTypes = []interface{}{ +var file_download_proto_goTypes = []any{ (*CreateDownloadRequest)(nil), // 0: proto.CreateDownloadRequest (*CreateDownloadResponse)(nil), // 1: proto.CreateDownloadResponse (*FormUploadMetadata)(nil), // 2: proto.FormUploadMetadata @@ -315,49 +291,11 @@ func file_download_proto_init() { if File_download_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_download_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateDownloadRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_download_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateDownloadResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_download_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FormUploadMetadata); 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_download_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_download_proto_rawDesc), len(file_download_proto_rawDesc)), NumEnums: 0, NumMessages: 3, NumExtensions: 0, @@ -368,7 +306,6 @@ func file_download_proto_init() { MessageInfos: file_download_proto_msgTypes, }.Build() File_download_proto = out.File - file_download_proto_rawDesc = nil file_download_proto_goTypes = nil file_download_proto_depIdxs = nil } diff --git a/api/proto/flows.pb.go b/api/proto/flows.pb.go index b16c79d36..4de0625e3 100644 --- a/api/proto/flows.pb.go +++ b/api/proto/flows.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto1 "www.velocidex.com/golang/velociraptor/crypto/proto" proto "www.velocidex.com/golang/velociraptor/flows/proto" ) @@ -20,22 +21,19 @@ const ( ) type ContainerMemberStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - UncompressedSize uint64 `protobuf:"varint,2,opt,name=uncompressed_size,json=uncompressedSize,proto3" json:"uncompressed_size,omitempty"` - CompressedSize uint64 `protobuf:"varint,3,opt,name=compressed_size,json=compressedSize,proto3" json:"compressed_size,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + UncompressedSize uint64 `protobuf:"varint,2,opt,name=uncompressed_size,json=uncompressedSize,proto3" json:"uncompressed_size,omitempty"` + CompressedSize uint64 `protobuf:"varint,3,opt,name=compressed_size,json=compressedSize,proto3" json:"compressed_size,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ContainerMemberStats) Reset() { *x = ContainerMemberStats{} - if protoimpl.UnsafeEnabled { - mi := &file_flows_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flows_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ContainerMemberStats) String() string { @@ -46,7 +44,7 @@ func (*ContainerMemberStats) ProtoMessage() {} func (x *ContainerMemberStats) ProtoReflect() protoreflect.Message { mi := &file_flows_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -84,10 +82,7 @@ func (x *ContainerMemberStats) GetCompressedSize() uint64 { // Stats about exported containers type ContainerStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Seconds since epoch Timestamp uint64 `protobuf:"varint,8,opt,name=timestamp,proto3" json:"timestamp,omitempty"` TotalUploadedFiles uint64 `protobuf:"varint,1,opt,name=total_uploaded_files,json=totalUploadedFiles,proto3" json:"total_uploaded_files,omitempty"` @@ -111,15 +106,15 @@ type ContainerStats struct { // A string representation of the file path VfsPath string `protobuf:"bytes,12,opt,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` ActiveMembers []*ContainerMemberStats `protobuf:"bytes,13,rep,name=active_members,json=activeMembers,proto3" json:"active_members,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ContainerStats) Reset() { *x = ContainerStats{} - if protoimpl.UnsafeEnabled { - mi := &file_flows_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flows_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ContainerStats) String() string { @@ -130,7 +125,7 @@ func (*ContainerStats) ProtoMessage() {} func (x *ContainerStats) ProtoReflect() protoreflect.Message { mi := &file_flows_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -237,27 +232,24 @@ func (x *ContainerStats) GetActiveMembers() []*ContainerMemberStats { } type AvailableDownloadFile struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"` // Deprecated things are now stored in the stats. - Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"` - Complete bool `protobuf:"varint,2,opt,name=complete,proto3" json:"complete,omitempty"` - Size uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` - Date string `protobuf:"bytes,4,opt,name=date,proto3" json:"date,omitempty"` - Stats *ContainerStats `protobuf:"bytes,8,opt,name=stats,proto3" json:"stats,omitempty"` + Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"` + Complete bool `protobuf:"varint,2,opt,name=complete,proto3" json:"complete,omitempty"` + Size uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` + Date string `protobuf:"bytes,4,opt,name=date,proto3" json:"date,omitempty"` + Stats *ContainerStats `protobuf:"bytes,8,opt,name=stats,proto3" json:"stats,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AvailableDownloadFile) Reset() { *x = AvailableDownloadFile{} - if protoimpl.UnsafeEnabled { - mi := &file_flows_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flows_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AvailableDownloadFile) String() string { @@ -268,7 +260,7 @@ func (*AvailableDownloadFile) ProtoMessage() {} func (x *AvailableDownloadFile) ProtoReflect() protoreflect.Message { mi := &file_flows_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -333,20 +325,17 @@ func (x *AvailableDownloadFile) GetStats() *ContainerStats { } type AvailableDownloads struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Files []*AvailableDownloadFile `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"` unknownFields protoimpl.UnknownFields - - Files []*AvailableDownloadFile `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AvailableDownloads) Reset() { *x = AvailableDownloads{} - if protoimpl.UnsafeEnabled { - mi := &file_flows_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flows_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AvailableDownloads) String() string { @@ -357,7 +346,7 @@ func (*AvailableDownloads) ProtoMessage() {} func (x *AvailableDownloads) ProtoReflect() protoreflect.Message { mi := &file_flows_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -380,21 +369,18 @@ func (x *AvailableDownloads) GetFiles() []*AvailableDownloadFile { } type FlowDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Context *proto.ArtifactCollectorContext `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` AvailableDownloads *AvailableDownloads `protobuf:"bytes,16,opt,name=available_downloads,json=availableDownloads,proto3" json:"available_downloads,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FlowDetails) Reset() { *x = FlowDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_flows_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flows_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FlowDetails) String() string { @@ -405,7 +391,7 @@ func (*FlowDetails) ProtoMessage() {} func (x *FlowDetails) ProtoReflect() protoreflect.Message { mi := &file_flows_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -437,24 +423,21 @@ func (x *FlowDetails) GetAvailableDownloads() *AvailableDownloads { // This shows the requests that were actually sent to the client. When // the user selects artifacts to send they are compiled into raw VQL // for sending to the client. NOTE: Clients do not know anything about -// artifacts - they only interpret raw VQL as compiled by the server. +// artifacts - they only interprect raw VQL as compiled by the server. type ApiFlowRequestDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*proto1.VeloMessage `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + FlowId string `protobuf:"bytes,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*proto1.VeloMessage `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` - ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - FlowId string `protobuf:"bytes,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ApiFlowRequestDetails) Reset() { *x = ApiFlowRequestDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_flows_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flows_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApiFlowRequestDetails) String() string { @@ -465,7 +448,7 @@ func (*ApiFlowRequestDetails) ProtoMessage() {} func (x *ApiFlowRequestDetails) ProtoReflect() protoreflect.Message { mi := &file_flows_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -502,20 +485,17 @@ func (x *ApiFlowRequestDetails) GetFlowId() string { } type ApiFlowResultDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*proto1.VeloMessage `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*proto1.VeloMessage `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ApiFlowResultDetails) Reset() { *x = ApiFlowResultDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_flows_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flows_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApiFlowResultDetails) String() string { @@ -526,7 +506,7 @@ func (*ApiFlowResultDetails) ProtoMessage() {} func (x *ApiFlowResultDetails) ProtoReflect() protoreflect.Message { mi := &file_flows_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -549,20 +529,17 @@ func (x *ApiFlowResultDetails) GetItems() []*proto1.VeloMessage { } type ApiFlowLogDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*proto1.LogMessage `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*proto1.LogMessage `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ApiFlowLogDetails) Reset() { *x = ApiFlowLogDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_flows_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flows_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApiFlowLogDetails) String() string { @@ -573,7 +550,7 @@ func (*ApiFlowLogDetails) ProtoMessage() {} func (x *ApiFlowLogDetails) ProtoReflect() protoreflect.Message { mi := &file_flows_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -596,26 +573,23 @@ func (x *ApiFlowLogDetails) GetItems() []*proto1.LogMessage { } type ApiFlowRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - FlowId string `protobuf:"bytes,2,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` - Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` - Count uint64 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` - IncludeArchived bool `protobuf:"varint,5,opt,name=include_archived,json=includeArchived,proto3" json:"include_archived,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + FlowId string `protobuf:"bytes,2,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` + Count uint64 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` + IncludeArchived bool `protobuf:"varint,5,opt,name=include_archived,json=includeArchived,proto3" json:"include_archived,omitempty"` // If specified we only return flows that collected this artifact. - Artifact string `protobuf:"bytes,6,opt,name=artifact,proto3" json:"artifact,omitempty"` + Artifact string `protobuf:"bytes,6,opt,name=artifact,proto3" json:"artifact,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ApiFlowRequest) Reset() { *x = ApiFlowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_flows_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flows_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApiFlowRequest) String() string { @@ -626,7 +600,7 @@ func (*ApiFlowRequest) ProtoMessage() {} func (x *ApiFlowRequest) ProtoReflect() protoreflect.Message { mi := &file_flows_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -684,21 +658,18 @@ func (x *ApiFlowRequest) GetArtifact() string { } type ApiFlowResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` + Items []*proto.ArtifactCollectorContext `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` - Items []*proto.ArtifactCollectorContext `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ApiFlowResponse) Reset() { *x = ApiFlowResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_flows_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flows_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApiFlowResponse) String() string { @@ -709,7 +680,7 @@ func (*ApiFlowResponse) ProtoMessage() {} func (x *ApiFlowResponse) ProtoReflect() protoreflect.Message { mi := &file_flows_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -740,134 +711,76 @@ func (x *ApiFlowResponse) GetItems() []*proto.ArtifactCollectorContext { var File_flows_proto protoreflect.FileDescriptor -var file_flows_proto_rawDesc = []byte{ - 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x66, - 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x75, 0x6e, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x27, 0x0a, - 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x9a, 0x04, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x66, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x66, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x42, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x15, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x48, 0x0a, 0x12, 0x41, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, - 0x12, 0x32, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x4a, 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0x77, 0x0a, 0x15, 0x41, - 0x70, 0x69, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, - 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, - 0x6f, 0x77, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x14, 0x41, 0x70, 0x69, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x28, 0x0a, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3c, 0x0a, 0x11, 0x41, 0x70, 0x69, 0x46, 0x6c, 0x6f, - 0x77, 0x4c, 0x6f, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x27, 0x0a, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x41, 0x70, 0x69, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x22, 0x5e, 0x0a, 0x0f, 0x41, 0x70, 0x69, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x35, 0x0a, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, - 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, - 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_flows_proto_rawDesc = "" + + "\n" + + "\vflows.proto\x12\x05proto\x1a\x17crypto/proto/jobs.proto\x1a$flows/proto/artifact_collector.proto\"\x80\x01\n" + + "\x14ContainerMemberStats\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12+\n" + + "\x11uncompressed_size\x18\x02 \x01(\x04R\x10uncompressedSize\x12'\n" + + "\x0fcompressed_size\x18\x03 \x01(\x04R\x0ecompressedSize\"\x9a\x04\n" + + "\x0eContainerStats\x12\x1c\n" + + "\ttimestamp\x18\b \x01(\x04R\ttimestamp\x120\n" + + "\x14total_uploaded_files\x18\x01 \x01(\x04R\x12totalUploadedFiles\x120\n" + + "\x14total_uploaded_bytes\x18\x02 \x01(\x04R\x12totalUploadedBytes\x128\n" + + "\x18total_uncompressed_bytes\x18\x03 \x01(\x04R\x16totalUncompressedBytes\x124\n" + + "\x16total_compressed_bytes\x18\x04 \x01(\x04R\x14totalCompressedBytes\x122\n" + + "\x15total_container_files\x18\x05 \x01(\x04R\x13totalContainerFiles\x12\x12\n" + + "\x04hash\x18\x06 \x01(\tR\x04hash\x12%\n" + + "\x0etotal_duration\x18\t \x01(\x04R\rtotalDuration\x12\x1e\n" + + "\n" + + "components\x18\a \x03(\tR\n" + + "components\x12\x12\n" + + "\x04type\x18\n" + + " \x01(\tR\x04type\x12\x14\n" + + "\x05error\x18\v \x01(\tR\x05error\x12\x19\n" + + "\bvfs_path\x18\f \x01(\tR\avfsPath\x12B\n" + + "\x0eactive_members\x18\r \x03(\v2\x1b.proto.ContainerMemberStatsR\ractiveMembers\"\xc4\x01\n" + + "\x15AvailableDownloadFile\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" + + "\x04path\x18\x05 \x01(\tR\x04path\x12\x12\n" + + "\x04type\x18\x06 \x01(\tR\x04type\x12\x1a\n" + + "\bcomplete\x18\x02 \x01(\bR\bcomplete\x12\x12\n" + + "\x04size\x18\x03 \x01(\x04R\x04size\x12\x12\n" + + "\x04date\x18\x04 \x01(\tR\x04date\x12+\n" + + "\x05stats\x18\b \x01(\v2\x15.proto.ContainerStatsR\x05stats\"H\n" + + "\x12AvailableDownloads\x122\n" + + "\x05files\x18\x01 \x03(\v2\x1c.proto.AvailableDownloadFileR\x05files\"\x94\x01\n" + + "\vFlowDetails\x129\n" + + "\acontext\x18\x01 \x01(\v2\x1f.proto.ArtifactCollectorContextR\acontext\x12J\n" + + "\x13available_downloads\x18\x10 \x01(\v2\x19.proto.AvailableDownloadsR\x12availableDownloads\"w\n" + + "\x15ApiFlowRequestDetails\x12(\n" + + "\x05items\x18\x01 \x03(\v2\x12.proto.VeloMessageR\x05items\x12\x1b\n" + + "\tclient_id\x18\x02 \x01(\tR\bclientId\x12\x17\n" + + "\aflow_id\x18\x03 \x01(\tR\x06flowId\"@\n" + + "\x14ApiFlowResultDetails\x12(\n" + + "\x05items\x18\x01 \x03(\v2\x12.proto.VeloMessageR\x05items\"<\n" + + "\x11ApiFlowLogDetails\x12'\n" + + "\x05items\x18\x01 \x03(\v2\x11.proto.LogMessageR\x05items\"\xbb\x01\n" + + "\x0eApiFlowRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12\x17\n" + + "\aflow_id\x18\x02 \x01(\tR\x06flowId\x12\x16\n" + + "\x06offset\x18\x03 \x01(\x04R\x06offset\x12\x14\n" + + "\x05count\x18\x04 \x01(\x04R\x05count\x12)\n" + + "\x10include_archived\x18\x05 \x01(\bR\x0fincludeArchived\x12\x1a\n" + + "\bartifact\x18\x06 \x01(\tR\bartifact\"^\n" + + "\x0fApiFlowResponse\x12\x14\n" + + "\x05total\x18\x01 \x01(\x04R\x05total\x125\n" + + "\x05items\x18\x02 \x03(\v2\x1f.proto.ArtifactCollectorContextR\x05itemsB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_flows_proto_rawDescOnce sync.Once - file_flows_proto_rawDescData = file_flows_proto_rawDesc + file_flows_proto_rawDescData []byte ) func file_flows_proto_rawDescGZIP() []byte { file_flows_proto_rawDescOnce.Do(func() { - file_flows_proto_rawDescData = protoimpl.X.CompressGZIP(file_flows_proto_rawDescData) + file_flows_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_flows_proto_rawDesc), len(file_flows_proto_rawDesc))) }) return file_flows_proto_rawDescData } var file_flows_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_flows_proto_goTypes = []interface{}{ +var file_flows_proto_goTypes = []any{ (*ContainerMemberStats)(nil), // 0: proto.ContainerMemberStats (*ContainerStats)(nil), // 1: proto.ContainerStats (*AvailableDownloadFile)(nil), // 2: proto.AvailableDownloadFile @@ -904,133 +817,11 @@ func file_flows_proto_init() { if File_flows_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_flows_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContainerMemberStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flows_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContainerStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flows_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AvailableDownloadFile); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flows_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AvailableDownloads); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flows_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowDetails); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flows_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiFlowRequestDetails); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flows_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiFlowResultDetails); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flows_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiFlowLogDetails); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flows_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiFlowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flows_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiFlowResponse); 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_flows_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_flows_proto_rawDesc), len(file_flows_proto_rawDesc)), NumEnums: 0, NumMessages: 10, NumExtensions: 0, @@ -1041,7 +832,6 @@ func file_flows_proto_init() { MessageInfos: file_flows_proto_msgTypes, }.Build() File_flows_proto = out.File - file_flows_proto_rawDesc = nil file_flows_proto_goTypes = nil file_flows_proto_depIdxs = nil } diff --git a/api/proto/health.pb.go b/api/proto/health.pb.go index de1eedaff..068ae8472 100644 --- a/api/proto/health.pb.go +++ b/api/proto/health.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -67,20 +68,17 @@ func (HealthCheckResponse_ServingStatus) EnumDescriptor() ([]byte, []int) { } type HealthCheckRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` unknownFields protoimpl.UnknownFields - - Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HealthCheckRequest) Reset() { *x = HealthCheckRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_health_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_health_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HealthCheckRequest) String() string { @@ -91,7 +89,7 @@ func (*HealthCheckRequest) ProtoMessage() {} func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message { mi := &file_health_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -114,20 +112,17 @@ func (x *HealthCheckRequest) GetService() string { } type HealthCheckResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status HealthCheckResponse_ServingStatus `protobuf:"varint,1,opt,name=status,proto3,enum=proto.HealthCheckResponse_ServingStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Status HealthCheckResponse_ServingStatus `protobuf:"varint,1,opt,name=status,proto3,enum=proto.HealthCheckResponse_ServingStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HealthCheckResponse) Reset() { *x = HealthCheckResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_health_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_health_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HealthCheckResponse) String() string { @@ -138,7 +133,7 @@ func (*HealthCheckResponse) ProtoMessage() {} func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message { mi := &file_health_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -162,42 +157,33 @@ func (x *HealthCheckResponse) GetStatus() HealthCheckResponse_ServingStatus { var File_health_proto protoreflect.FileDescriptor -var file_health_proto_rawDesc = []byte{ - 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2e, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x53, 0x45, 0x52, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, - 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x42, 0x31, 0x5a, 0x2f, 0x77, - 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, - 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_health_proto_rawDesc = "" + + "\n" + + "\fhealth.proto\x12\x05proto\".\n" + + "\x12HealthCheckRequest\x12\x18\n" + + "\aservice\x18\x01 \x01(\tR\aservice\"\x93\x01\n" + + "\x13HealthCheckResponse\x12@\n" + + "\x06status\x18\x01 \x01(\x0e2(.proto.HealthCheckResponse.ServingStatusR\x06status\":\n" + + "\rServingStatus\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\v\n" + + "\aSERVING\x10\x01\x12\x0f\n" + + "\vNOT_SERVING\x10\x02B1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_health_proto_rawDescOnce sync.Once - file_health_proto_rawDescData = file_health_proto_rawDesc + file_health_proto_rawDescData []byte ) func file_health_proto_rawDescGZIP() []byte { file_health_proto_rawDescOnce.Do(func() { - file_health_proto_rawDescData = protoimpl.X.CompressGZIP(file_health_proto_rawDescData) + file_health_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_health_proto_rawDesc), len(file_health_proto_rawDesc))) }) return file_health_proto_rawDescData } var file_health_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_health_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_health_proto_goTypes = []interface{}{ +var file_health_proto_goTypes = []any{ (HealthCheckResponse_ServingStatus)(0), // 0: proto.HealthCheckResponse.ServingStatus (*HealthCheckRequest)(nil), // 1: proto.HealthCheckRequest (*HealthCheckResponse)(nil), // 2: proto.HealthCheckResponse @@ -216,37 +202,11 @@ func file_health_proto_init() { if File_health_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_health_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HealthCheckRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_health_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HealthCheckResponse); 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_health_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_health_proto_rawDesc), len(file_health_proto_rawDesc)), NumEnums: 1, NumMessages: 2, NumExtensions: 0, @@ -258,7 +218,6 @@ func file_health_proto_init() { MessageInfos: file_health_proto_msgTypes, }.Build() File_health_proto = out.File - file_health_proto_rawDesc = nil file_health_proto_goTypes = nil file_health_proto_depIdxs = nil } diff --git a/api/proto/hunts.pb.go b/api/proto/hunts.pb.go index bf29d8303..2c108d49a 100644 --- a/api/proto/hunts.pb.go +++ b/api/proto/hunts.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto "www.velocidex.com/golang/velociraptor/flows/proto" _ "www.velocidex.com/golang/velociraptor/proto" ) @@ -131,20 +132,17 @@ func (Hunt_State) EnumDescriptor() ([]byte, []int) { } type HuntLabelCondition struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Label []string `protobuf:"bytes,1,rep,name=label,proto3" json:"label,omitempty"` unknownFields protoimpl.UnknownFields - - Label []string `protobuf:"bytes,1,rep,name=label,proto3" json:"label,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HuntLabelCondition) Reset() { *x = HuntLabelCondition{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HuntLabelCondition) String() string { @@ -155,7 +153,7 @@ func (*HuntLabelCondition) ProtoMessage() {} func (x *HuntLabelCondition) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -178,20 +176,17 @@ func (x *HuntLabelCondition) GetLabel() []string { } type HuntOsCondition struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Os HuntOsCondition_OS `protobuf:"varint,1,opt,name=os,proto3,enum=proto.HuntOsCondition_OS" json:"os,omitempty"` unknownFields protoimpl.UnknownFields - - Os HuntOsCondition_OS `protobuf:"varint,1,opt,name=os,proto3,enum=proto.HuntOsCondition_OS" json:"os,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HuntOsCondition) Reset() { *x = HuntOsCondition{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HuntOsCondition) String() string { @@ -202,7 +197,7 @@ func (*HuntOsCondition) ProtoMessage() {} func (x *HuntOsCondition) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -225,25 +220,22 @@ func (x *HuntOsCondition) GetOs() HuntOsCondition_OS { } type HuntCondition struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ExcludedLabels *HuntLabelCondition `protobuf:"bytes,4,opt,name=excluded_labels,json=excludedLabels,proto3" json:"excluded_labels,omitempty"` - // Types that are assignable to UnionField: + state protoimpl.MessageState `protogen:"open.v1"` + ExcludedLabels *HuntLabelCondition `protobuf:"bytes,4,opt,name=excluded_labels,json=excludedLabels,proto3" json:"excluded_labels,omitempty"` + // Types that are valid to be assigned to UnionField: // // *HuntCondition_Labels // *HuntCondition_Os - UnionField isHuntCondition_UnionField `protobuf_oneof:"union_field"` + UnionField isHuntCondition_UnionField `protobuf_oneof:"union_field"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HuntCondition) Reset() { *x = HuntCondition{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HuntCondition) String() string { @@ -254,7 +246,7 @@ func (*HuntCondition) ProtoMessage() {} func (x *HuntCondition) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -276,23 +268,27 @@ func (x *HuntCondition) GetExcludedLabels() *HuntLabelCondition { return nil } -func (m *HuntCondition) GetUnionField() isHuntCondition_UnionField { - if m != nil { - return m.UnionField +func (x *HuntCondition) GetUnionField() isHuntCondition_UnionField { + if x != nil { + return x.UnionField } return nil } func (x *HuntCondition) GetLabels() *HuntLabelCondition { - if x, ok := x.GetUnionField().(*HuntCondition_Labels); ok { - return x.Labels + if x != nil { + if x, ok := x.UnionField.(*HuntCondition_Labels); ok { + return x.Labels + } } return nil } func (x *HuntCondition) GetOs() *HuntOsCondition { - if x, ok := x.GetUnionField().(*HuntCondition_Os); ok { - return x.Os + if x != nil { + if x, ok := x.UnionField.(*HuntCondition_Os); ok { + return x.Os + } } return nil } @@ -314,32 +310,29 @@ func (*HuntCondition_Labels) isHuntCondition_UnionField() {} func (*HuntCondition_Os) isHuntCondition_UnionField() {} type HuntStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TotalClientsScheduled uint64 `protobuf:"varint,9,opt,name=total_clients_scheduled,json=totalClientsScheduled,proto3" json:"total_clients_scheduled,omitempty"` - TotalClientsWithResults uint64 `protobuf:"varint,14,opt,name=total_clients_with_results,json=totalClientsWithResults,proto3" json:"total_clients_with_results,omitempty"` - TotalClientsWithoutResults uint64 `protobuf:"varint,16,opt,name=total_clients_without_results,json=totalClientsWithoutResults,proto3" json:"total_clients_without_results,omitempty"` - TotalClientsWithErrors uint64 `protobuf:"varint,15,opt,name=total_clients_with_errors,json=totalClientsWithErrors,proto3" json:"total_clients_with_errors,omitempty"` - TotalUploadedBytes uint64 `protobuf:"varint,18,opt,name=total_uploaded_bytes,json=totalUploadedBytes,proto3" json:"total_uploaded_bytes,omitempty"` - TotalCollectedRows uint64 `protobuf:"varint,19,opt,name=total_collected_rows,json=totalCollectedRows,proto3" json:"total_collected_rows,omitempty"` - TotalFinishedClients uint64 `protobuf:"varint,20,opt,name=total_finished_clients,json=totalFinishedClients,proto3" json:"total_finished_clients,omitempty"` - Stopped bool `protobuf:"varint,1,opt,name=stopped,proto3" json:"stopped,omitempty"` - AvailableDownloads *AvailableDownloads `protobuf:"bytes,2,opt,name=available_downloads,json=availableDownloads,proto3" json:"available_downloads,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + TotalClientsScheduled uint64 `protobuf:"varint,9,opt,name=total_clients_scheduled,json=totalClientsScheduled,proto3" json:"total_clients_scheduled,omitempty"` + TotalClientsWithResults uint64 `protobuf:"varint,14,opt,name=total_clients_with_results,json=totalClientsWithResults,proto3" json:"total_clients_with_results,omitempty"` + TotalClientsWithoutResults uint64 `protobuf:"varint,16,opt,name=total_clients_without_results,json=totalClientsWithoutResults,proto3" json:"total_clients_without_results,omitempty"` + TotalClientsWithErrors uint64 `protobuf:"varint,15,opt,name=total_clients_with_errors,json=totalClientsWithErrors,proto3" json:"total_clients_with_errors,omitempty"` + TotalUploadedBytes uint64 `protobuf:"varint,18,opt,name=total_uploaded_bytes,json=totalUploadedBytes,proto3" json:"total_uploaded_bytes,omitempty"` + TotalCollectedRows uint64 `protobuf:"varint,19,opt,name=total_collected_rows,json=totalCollectedRows,proto3" json:"total_collected_rows,omitempty"` + TotalFinishedClients uint64 `protobuf:"varint,20,opt,name=total_finished_clients,json=totalFinishedClients,proto3" json:"total_finished_clients,omitempty"` + Stopped bool `protobuf:"varint,1,opt,name=stopped,proto3" json:"stopped,omitempty"` + AvailableDownloads *AvailableDownloads `protobuf:"bytes,2,opt,name=available_downloads,json=availableDownloads,proto3" json:"available_downloads,omitempty"` // The last time the client table was scanned. This is used // internally for a quick comparison when refreshing the hunt // stats. LastClientTableScan int64 `protobuf:"varint,17,opt,name=last_client_table_scan,json=lastClientTableScan,proto3" json:"last_client_table_scan,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HuntStats) Reset() { *x = HuntStats{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HuntStats) String() string { @@ -350,7 +343,7 @@ func (*HuntStats) ProtoMessage() {} func (x *HuntStats) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -436,17 +429,14 @@ func (x *HuntStats) GetLastClientTableScan() int64 { } type Hunt struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - HuntId string `protobuf:"bytes,1,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` - Version int64 `protobuf:"varint,20,opt,name=version,proto3" json:"version,omitempty"` - CreateTime uint64 `protobuf:"varint,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` - Creator string `protobuf:"bytes,12,opt,name=creator,proto3" json:"creator,omitempty"` - StartTime uint64 `protobuf:"varint,21,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` - Expires uint64 `protobuf:"varint,10,opt,name=expires,proto3" json:"expires,omitempty"` - HuntDescription string `protobuf:"bytes,11,opt,name=hunt_description,json=huntDescription,proto3" json:"hunt_description,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + HuntId string `protobuf:"bytes,1,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` + Version int64 `protobuf:"varint,20,opt,name=version,proto3" json:"version,omitempty"` + CreateTime uint64 `protobuf:"varint,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + Creator string `protobuf:"bytes,12,opt,name=creator,proto3" json:"creator,omitempty"` + StartTime uint64 `protobuf:"varint,21,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + Expires uint64 `protobuf:"varint,10,opt,name=expires,proto3" json:"expires,omitempty"` + HuntDescription string `protobuf:"bytes,11,opt,name=hunt_description,json=huntDescription,proto3" json:"hunt_description,omitempty"` // Hunts can be tagged. Tags []string `protobuf:"bytes,23,rep,name=tags,proto3" json:"tags,omitempty"` StartRequest *proto.ArtifactCollectorArgs `protobuf:"bytes,16,opt,name=start_request,json=startRequest,proto3" json:"start_request,omitempty"` @@ -457,16 +447,16 @@ type Hunt struct { ArtifactSources []string `protobuf:"bytes,19,rep,name=artifact_sources,json=artifactSources,proto3" json:"artifact_sources,omitempty"` State Hunt_State `protobuf:"varint,8,opt,name=state,proto3,enum=proto.Hunt_State" json:"state,omitempty"` // A list of the org IDs that the hunt will be launched on - OrgIds []string `protobuf:"bytes,22,rep,name=org_ids,json=orgIds,proto3" json:"org_ids,omitempty"` + OrgIds []string `protobuf:"bytes,22,rep,name=org_ids,json=orgIds,proto3" json:"org_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Hunt) Reset() { *x = Hunt{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Hunt) String() string { @@ -477,7 +467,7 @@ func (*Hunt) ProtoMessage() {} func (x *Hunt) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -605,22 +595,19 @@ func (x *Hunt) GetOrgIds() []string { } type HuntEstimateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Only show clients that were active this many seconds ago. - LastActive uint64 `protobuf:"varint,1,opt,name=last_active,json=lastActive,proto3" json:"last_active,omitempty"` - Condition *HuntCondition `protobuf:"bytes,4,opt,name=condition,proto3" json:"condition,omitempty"` + LastActive uint64 `protobuf:"varint,1,opt,name=last_active,json=lastActive,proto3" json:"last_active,omitempty"` + Condition *HuntCondition `protobuf:"bytes,4,opt,name=condition,proto3" json:"condition,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HuntEstimateRequest) Reset() { *x = HuntEstimateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HuntEstimateRequest) String() string { @@ -631,7 +618,7 @@ func (*HuntEstimateRequest) ProtoMessage() {} func (x *HuntEstimateRequest) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -661,25 +648,22 @@ func (x *HuntEstimateRequest) GetCondition() *HuntCondition { } type ListHuntsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Count uint64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Count uint64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` // If specified we return a partial structure. Summary bool `protobuf:"varint,4,opt,name=summary,proto3" json:"summary,omitempty"` IncludeArchived bool `protobuf:"varint,3,opt,name=include_archived,json=includeArchived,proto3" json:"include_archived,omitempty"` UserFilter string `protobuf:"bytes,5,opt,name=user_filter,json=userFilter,proto3" json:"user_filter,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListHuntsRequest) Reset() { *x = ListHuntsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListHuntsRequest) String() string { @@ -690,7 +674,7 @@ func (*ListHuntsRequest) ProtoMessage() {} func (x *ListHuntsRequest) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -741,21 +725,18 @@ func (x *ListHuntsRequest) GetUserFilter() string { } type ListHuntsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + Items []*Hunt `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` - Items []*Hunt `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListHuntsResponse) Reset() { *x = ListHuntsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListHuntsResponse) String() string { @@ -766,7 +747,7 @@ func (*ListHuntsResponse) ProtoMessage() {} func (x *ListHuntsResponse) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -796,21 +777,18 @@ func (x *ListHuntsResponse) GetItems() []*Hunt { } type GetHuntRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - HuntId string `protobuf:"bytes,1,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` - IncludeRequest bool `protobuf:"varint,2,opt,name=include_request,json=includeRequest,proto3" json:"include_request,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + HuntId string `protobuf:"bytes,1,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` + IncludeRequest bool `protobuf:"varint,2,opt,name=include_request,json=includeRequest,proto3" json:"include_request,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetHuntRequest) Reset() { *x = GetHuntRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetHuntRequest) String() string { @@ -821,7 +799,7 @@ func (*GetHuntRequest) ProtoMessage() {} func (x *GetHuntRequest) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -851,23 +829,20 @@ func (x *GetHuntRequest) GetIncludeRequest() bool { } type GetHuntResultsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Count uint64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` + HuntId string `protobuf:"bytes,3,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` + Artifact string `protobuf:"bytes,4,opt,name=artifact,proto3" json:"artifact,omitempty"` unknownFields protoimpl.UnknownFields - - Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Count uint64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` - HuntId string `protobuf:"bytes,3,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` - Artifact string `protobuf:"bytes,4,opt,name=artifact,proto3" json:"artifact,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetHuntResultsRequest) Reset() { *x = GetHuntResultsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetHuntResultsRequest) String() string { @@ -878,7 +853,7 @@ func (*GetHuntResultsRequest) ProtoMessage() {} func (x *GetHuntResultsRequest) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -922,21 +897,18 @@ func (x *GetHuntResultsRequest) GetArtifact() string { } type FlowAssignment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + FlowId string `protobuf:"bytes,2,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - FlowId string `protobuf:"bytes,2,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *FlowAssignment) Reset() { *x = FlowAssignment{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FlowAssignment) String() string { @@ -947,7 +919,7 @@ func (*FlowAssignment) ProtoMessage() {} func (x *FlowAssignment) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -977,32 +949,29 @@ func (x *FlowAssignment) GetFlowId() string { } type HuntMutation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - HuntId string `protobuf:"bytes,1,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` - Stats *HuntStats `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - State Hunt_State `protobuf:"varint,4,opt,name=state,proto3,enum=proto.Hunt_State" json:"state,omitempty"` - StartTime uint64 `protobuf:"varint,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` - Expires uint64 `protobuf:"varint,7,opt,name=expires,proto3" json:"expires,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + HuntId string `protobuf:"bytes,1,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` + Stats *HuntStats `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + State Hunt_State `protobuf:"varint,4,opt,name=state,proto3,enum=proto.Hunt_State" json:"state,omitempty"` + StartTime uint64 `protobuf:"varint,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + Expires uint64 `protobuf:"varint,7,opt,name=expires,proto3" json:"expires,omitempty"` // A mutation can directly assign an existing flow to the // hunt. This allows a flow to be rerun and added to the hunt // later. Assignment *FlowAssignment `protobuf:"bytes,6,opt,name=assignment,proto3" json:"assignment,omitempty"` Tags []string `protobuf:"bytes,8,rep,name=tags,proto3" json:"tags,omitempty"` // The user who is initiating the mutation. - User string `protobuf:"bytes,9,opt,name=user,proto3" json:"user,omitempty"` + User string `protobuf:"bytes,9,opt,name=user,proto3" json:"user,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HuntMutation) Reset() { *x = HuntMutation{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HuntMutation) String() string { @@ -1013,7 +982,7 @@ func (*HuntMutation) ProtoMessage() {} func (x *HuntMutation) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1092,20 +1061,17 @@ func (x *HuntMutation) GetUser() string { } type HuntTags struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Tags []string `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` unknownFields protoimpl.UnknownFields - - Tags []string `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HuntTags) Reset() { *x = HuntTags{} - if protoimpl.UnsafeEnabled { - mi := &file_hunts_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_hunts_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HuntTags) String() string { @@ -1116,7 +1082,7 @@ func (*HuntTags) ProtoMessage() {} func (x *HuntTags) ProtoReflect() protoreflect.Message { mi := &file_hunts_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1140,278 +1106,122 @@ func (x *HuntTags) GetTags() []string { var File_hunts_proto protoreflect.FileDescriptor -var file_hunts_proto_rawDesc = []byte{ - 0x0a, 0x0b, 0x68, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, - 0x6e, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x66, 0x6c, 0x6f, 0x77, - 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2a, 0x0a, - 0x12, 0x48, 0x75, 0x6e, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x6c, 0x0a, 0x0f, 0x48, 0x75, 0x6e, - 0x74, 0x4f, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x02, - 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x48, 0x75, 0x6e, 0x74, 0x4f, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x4f, 0x53, 0x52, 0x02, 0x6f, 0x73, 0x22, 0x2e, 0x0a, 0x02, 0x4f, 0x53, 0x12, 0x07, 0x0a, - 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, - 0x53, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x49, 0x4e, 0x55, 0x58, 0x10, 0x02, 0x12, 0x07, - 0x0a, 0x03, 0x4f, 0x53, 0x58, 0x10, 0x03, 0x22, 0xa8, 0x02, 0x0a, 0x0d, 0x48, 0x75, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0f, 0x65, 0x78, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, 0x74, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x65, - 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4b, 0x0a, - 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x16, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x10, - 0x22, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x62, 0x79, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x48, 0x00, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x02, 0x6f, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, - 0x75, 0x6e, 0x74, 0x4f, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x18, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x12, 0x22, 0x10, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x73, 0x3a, 0x33, - 0xda, 0xfc, 0xe3, 0xc4, 0x01, 0x2d, 0x0a, 0x2b, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x68, - 0x6f, 0x73, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x68, 0x75, - 0x6e, 0x74, 0x2e, 0x42, 0x0d, 0x0a, 0x0b, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x22, 0xd7, 0x07, 0x0a, 0x09, 0x48, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x12, 0x8f, 0x01, 0x0a, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x57, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x51, 0x12, 0x3e, 0x54, 0x68, 0x65, 0x20, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, - 0x79, 0x20, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x68, 0x75, 0x6e, 0x74, 0x2e, 0x22, 0x0f, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x20, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x15, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x12, 0x86, 0x01, 0x0a, 0x1a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x42, 0x49, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x43, 0x12, - 0x25, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x22, 0x1a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x52, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x93, 0x01, 0x0a, 0x1d, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x04, 0x42, 0x50, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x4a, 0x12, 0x29, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x22, 0x1d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x1a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x12, 0x82, 0x01, 0x0a, 0x19, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x47, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x41, 0x12, 0x24, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x2e, 0x22, 0x19, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x16, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, - 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x79, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x5f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x59, 0x12, 0x57, 0x49, 0x66, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x68, 0x75, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x70, - 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x69, - 0x73, 0x20, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x75, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x2e, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x13, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x73, 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, - 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x61, 0x6e, 0x22, 0xca, 0x0b, 0x0a, - 0x04, 0x48, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x09, 0x22, 0x07, - 0x48, 0x75, 0x6e, 0x74, 0x20, 0x49, 0x44, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x0b, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x3f, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x39, 0x0a, 0x0b, 0x52, 0x44, 0x46, 0x44, 0x61, 0x74, 0x65, 0x74, - 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x68, - 0x75, 0x6e, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, - 0x22, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x52, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1d, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x17, 0x12, 0x15, 0x57, 0x68, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x75, 0x6e, 0x74, 0x3f, 0x52, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x64, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x42, 0x45, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3f, - 0x0a, 0x0b, 0x52, 0x44, 0x46, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x57, - 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x68, 0x75, 0x6e, 0x74, 0x20, 0x77, 0x61, - 0x73, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x65, 0x64, 0x2e, 0x22, 0x0a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x07, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x3d, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x37, 0x0a, 0x0b, 0x52, 0x44, 0x46, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x1b, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x68, 0x75, 0x6e, 0x74, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x3f, 0x22, 0x0b, 0x45, - 0x78, 0x70, 0x69, 0x72, 0x79, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x10, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x14, 0x12, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x27, 0x73, 0x20, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x68, 0x75, 0x6e, 0x74, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x88, - 0x01, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x41, 0x72, 0x67, 0x73, 0x42, 0x45, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3f, 0x12, 0x3d, 0x4c, 0x61, - 0x75, 0x6e, 0x63, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0c, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x8e, 0x01, 0x0a, 0x09, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x5a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x54, 0x12, 0x42, 0x54, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, - 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x75, 0x6e, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x2e, 0x22, - 0x0e, 0x48, 0x75, 0x6e, 0x74, 0x20, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0c, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x42, 0x36, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x30, 0x12, 0x2e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x68, 0x75, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x6e, 0x2e, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x2f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x29, 0x12, 0x27, 0x41, 0x20, 0x6c, 0x69, 0x73, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x68, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, - 0x2e, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x61, 0x0a, 0x10, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x42, 0x36, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x30, 0x12, 0x2e, - 0x41, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x68, 0x75, 0x6e, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x0f, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, - 0x71, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x42, 0x48, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x42, 0x12, 0x40, 0x54, 0x68, 0x69, 0x73, 0x20, - 0x69, 0x73, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x68, 0x75, 0x6e, 0x74, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x20, 0x69, 0x73, 0x20, 0x6d, 0x61, 0x6e, 0x75, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x55, 0x49, 0x2e, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x16, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x73, 0x22, 0xeb, 0x01, 0x0a, 0x05, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, - 0x12, 0x48, 0x0a, 0x06, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x01, 0x1a, 0x3c, 0xea, 0xb9, - 0xcb, 0xb9, 0x01, 0x36, 0x48, 0x75, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x62, 0x75, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x12, 0x2d, 0x0a, 0x07, 0x52, 0x55, - 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x1a, 0x20, 0xea, 0xb9, 0xcb, 0xb9, 0x01, 0x1a, 0x48, - 0x75, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x61, - 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x79, 0x2e, 0x12, 0x24, 0x0a, 0x07, 0x53, 0x54, 0x4f, - 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x1a, 0x17, 0xea, 0xb9, 0xcb, 0xb9, 0x01, 0x11, 0x48, 0x75, - 0x6e, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x2e, 0x12, - 0x2b, 0x0a, 0x08, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x44, 0x10, 0x04, 0x1a, 0x1d, 0xea, - 0xb9, 0xcb, 0xb9, 0x01, 0x17, 0x48, 0x75, 0x6e, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, - 0x65, 0x6e, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x2e, 0x12, 0x0b, 0x0a, 0x07, - 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x22, 0x6a, 0x0a, 0x13, 0x48, 0x75, 0x6e, - 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x12, 0x32, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, - 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x75, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1f, 0x0a, - 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x4c, - 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x48, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x52, 0x0a, 0x0e, - 0x47, 0x65, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x68, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x7a, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x48, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x22, 0x46, 0x0a, 0x0e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, - 0x6f, 0x77, 0x49, 0x64, 0x22, 0xb2, 0x02, 0x0a, 0x0c, 0x48, 0x75, 0x6e, 0x74, 0x4d, 0x75, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x48, 0x75, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0a, 0x61, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x08, 0x48, 0x75, 0x6e, - 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, - 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, - 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, - 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, -} +const file_hunts_proto_rawDesc = "" + + "\n" + + "\vhunts.proto\x12\x05proto\x1a\x14proto/semantic.proto\x1a$flows/proto/artifact_collector.proto\x1a\vflows.proto\"*\n" + + "\x12HuntLabelCondition\x12\x14\n" + + "\x05label\x18\x01 \x03(\tR\x05label\"l\n" + + "\x0fHuntOsCondition\x12)\n" + + "\x02os\x18\x01 \x01(\x0e2\x19.proto.HuntOsCondition.OSR\x02os\".\n" + + "\x02OS\x12\a\n" + + "\x03ALL\x10\x00\x12\v\n" + + "\aWINDOWS\x10\x01\x12\t\n" + + "\x05LINUX\x10\x02\x12\a\n" + + "\x03OSX\x10\x03\"\xa8\x02\n" + + "\rHuntCondition\x12B\n" + + "\x0fexcluded_labels\x18\x04 \x01(\v2\x19.proto.HuntLabelConditionR\x0eexcludedLabels\x12K\n" + + "\x06labels\x18\x02 \x01(\v2\x19.proto.HuntLabelConditionB\x16\xe2\xfc\xe3\xc4\x01\x10\"\x0eMatch by labelH\x00R\x06labels\x12B\n" + + "\x02os\x18\x03 \x01(\v2\x16.proto.HuntOsConditionB\x18\xe2\xfc\xe3\xc4\x01\x12\"\x10Operating SystemH\x00R\x02os:3\xda\xfc\xe3\xc4\x01-\n" + + "+The condition to match hosts for this hunt.B\r\n" + + "\vunion_field\"\xd7\a\n" + + "\tHuntStats\x12\x8f\x01\n" + + "\x17total_clients_scheduled\x18\t \x01(\x04BW\xe2\xfc\xe3\xc4\x01Q\x12>The total number of clients currently scheduled for this hunt.\"\x0fTotal ScheduledR\x15totalClientsScheduled\x12\x86\x01\n" + + "\x1atotal_clients_with_results\x18\x0e \x01(\x04BI\xe2\xfc\xe3\xc4\x01C\x12%Total number of clients with results.\"\x1aTotal Clients with ResultsR\x17totalClientsWithResults\x12\x93\x01\n" + + "\x1dtotal_clients_without_results\x18\x10 \x01(\x04BP\xe2\xfc\xe3\xc4\x01J\x12)Total number of clients with out results.\"\x1dTotal Clients without ResultsR\x1atotalClientsWithoutResults\x12\x82\x01\n" + + "\x19total_clients_with_errors\x18\x0f \x01(\x04BG\xe2\xfc\xe3\xc4\x01A\x12$Total number of clients with errors.\"\x19Total Clients with ErrorsR\x16totalClientsWithErrors\x120\n" + + "\x14total_uploaded_bytes\x18\x12 \x01(\x04R\x12totalUploadedBytes\x120\n" + + "\x14total_collected_rows\x18\x13 \x01(\x04R\x12totalCollectedRows\x124\n" + + "\x16total_finished_clients\x18\x14 \x01(\x04R\x14totalFinishedClients\x12y\n" + + "\astopped\x18\x01 \x01(\bB_\xe2\xfc\xe3\xc4\x01Y\x12WIf this is set then the hunt is stopped. This field is manipulated by the hunt manager.R\astopped\x12J\n" + + "\x13available_downloads\x18\x02 \x01(\v2\x19.proto.AvailableDownloadsR\x12availableDownloads\x123\n" + + "\x16last_client_table_scan\x18\x11 \x01(\x03R\x13lastClientTableScan\"\xca\v\n" + + "\x04Hunt\x12(\n" + + "\ahunt_id\x18\x01 \x01(\tB\x0f\xe2\xfc\xe3\xc4\x01\t\"\aHunt IDR\x06huntId\x12\x18\n" + + "\aversion\x18\x14 \x01(\x03R\aversion\x12`\n" + + "\vcreate_time\x18\x02 \x01(\x04B?\xe2\xfc\xe3\xc4\x019\n" + + "\vRDFDatetime\x12\x1bWhen this hunt was created.\"\rCreation TimeR\n" + + "createTime\x127\n" + + "\acreator\x18\f \x01(\tB\x1d\xe2\xfc\xe3\xc4\x01\x17\x12\x15Who created the hunt?R\acreator\x12d\n" + + "\n" + + "start_time\x18\x15 \x01(\x04BE\xe2\xfc\xe3\xc4\x01?\n" + + "\vRDFDatetime\x12$When this hunt was actually started.\"\n" + + "Start TimeR\tstartTime\x12W\n" + + "\aexpires\x18\n" + + " \x01(\x04B=\xe2\xfc\xe3\xc4\x017\n" + + "\vRDFDatetime\x12\x1bWhen does this hunt expire?\"\vExpiry TimeR\aexpires\x12E\n" + + "\x10hunt_description\x18\v \x01(\tB\x1a\xe2\xfc\xe3\xc4\x01\x14\x12\x12Hunt's descriptionR\x0fhuntDescription\x12\x12\n" + + "\x04tags\x18\x17 \x03(\tR\x04tags\x12\x88\x01\n" + + "\rstart_request\x18\x10 \x01(\v2\x1c.proto.ArtifactCollectorArgsBE\xe2\xfc\xe3\xc4\x01?\x12=Launch this collection on the client if the condition is trueR\fstartRequest\x12\x8e\x01\n" + + "\tcondition\x18\x04 \x01(\v2\x14.proto.HuntConditionBZ\xe2\xfc\xe3\xc4\x01T\x12BThe condition that must be satisfied for the hunt to be scheduled.\"\x0eHunt ConditionR\tcondition\x12Y\n" + + "\fclient_limit\x18\x06 \x01(\x04B6\xe2\xfc\xe3\xc4\x010\x12.Total number of clients this hunt will run on.R\vclientLimit\x12&\n" + + "\x05stats\x18\x12 \x01(\v2\x10.proto.HuntStatsR\x05stats\x12M\n" + + "\tartifacts\x18\x11 \x03(\tB/\xe2\xfc\xe3\xc4\x01)\x12'A list of artifacts this hunt produces.R\tartifacts\x12a\n" + + "\x10artifact_sources\x18\x13 \x03(\tB6\xe2\xfc\xe3\xc4\x010\x12.A list of artifact sources this hunt produces.R\x0fartifactSources\x12q\n" + + "\x05state\x18\b \x01(\x0e2\x11.proto.Hunt.StateBH\xe2\xfc\xe3\xc4\x01B\x12@This is state of the hunt. This field is manupulated by the GUI.R\x05state\x12\x17\n" + + "\aorg_ids\x18\x16 \x03(\tR\x06orgIds\"\xeb\x01\n" + + "\x05State\x12\t\n" + + "\x05UNSET\x10\x00\x12H\n" + + "\x06PAUSED\x10\x01\x1a<\xea\xb9˹\x016Hunt will not schedule new clients but can be started.\x12-\n" + + "\aRUNNING\x10\x02\x1a \xea\xb9˹\x01\x1aHunt is running and ready.\x12$\n" + + "\aSTOPPED\x10\x03\x1a\x17\xea\xb9˹\x01\x11Hunt has stopped.\x12+\n" + + "\bARCHIVED\x10\x04\x1a\x1d\xea\xb9˹\x01\x17Hunt has been archived.\x12\v\n" + + "\aDELETED\x10\x05\"j\n" + + "\x13HuntEstimateRequest\x12\x1f\n" + + "\vlast_active\x18\x01 \x01(\x04R\n" + + "lastActive\x122\n" + + "\tcondition\x18\x04 \x01(\v2\x14.proto.HuntConditionR\tcondition\"\xa6\x01\n" + + "\x10ListHuntsRequest\x12\x16\n" + + "\x06offset\x18\x01 \x01(\x04R\x06offset\x12\x14\n" + + "\x05count\x18\x02 \x01(\x04R\x05count\x12\x18\n" + + "\asummary\x18\x04 \x01(\bR\asummary\x12)\n" + + "\x10include_archived\x18\x03 \x01(\bR\x0fincludeArchived\x12\x1f\n" + + "\vuser_filter\x18\x05 \x01(\tR\n" + + "userFilter\"L\n" + + "\x11ListHuntsResponse\x12\x14\n" + + "\x05total\x18\x02 \x01(\x03R\x05total\x12!\n" + + "\x05items\x18\x01 \x03(\v2\v.proto.HuntR\x05items\"R\n" + + "\x0eGetHuntRequest\x12\x17\n" + + "\ahunt_id\x18\x01 \x01(\tR\x06huntId\x12'\n" + + "\x0finclude_request\x18\x02 \x01(\bR\x0eincludeRequest\"z\n" + + "\x15GetHuntResultsRequest\x12\x16\n" + + "\x06offset\x18\x01 \x01(\x04R\x06offset\x12\x14\n" + + "\x05count\x18\x02 \x01(\x04R\x05count\x12\x17\n" + + "\ahunt_id\x18\x03 \x01(\tR\x06huntId\x12\x1a\n" + + "\bartifact\x18\x04 \x01(\tR\bartifact\"F\n" + + "\x0eFlowAssignment\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12\x17\n" + + "\aflow_id\x18\x02 \x01(\tR\x06flowId\"\xb2\x02\n" + + "\fHuntMutation\x12\x17\n" + + "\ahunt_id\x18\x01 \x01(\tR\x06huntId\x12&\n" + + "\x05stats\x18\x02 \x01(\v2\x10.proto.HuntStatsR\x05stats\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\x12'\n" + + "\x05state\x18\x04 \x01(\x0e2\x11.proto.Hunt.StateR\x05state\x12\x1d\n" + + "\n" + + "start_time\x18\x05 \x01(\x04R\tstartTime\x12\x18\n" + + "\aexpires\x18\a \x01(\x04R\aexpires\x125\n" + + "\n" + + "assignment\x18\x06 \x01(\v2\x15.proto.FlowAssignmentR\n" + + "assignment\x12\x12\n" + + "\x04tags\x18\b \x03(\tR\x04tags\x12\x12\n" + + "\x04user\x18\t \x01(\tR\x04user\"\x1e\n" + + "\bHuntTags\x12\x12\n" + + "\x04tags\x18\x01 \x03(\tR\x04tagsB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_hunts_proto_rawDescOnce sync.Once - file_hunts_proto_rawDescData = file_hunts_proto_rawDesc + file_hunts_proto_rawDescData []byte ) func file_hunts_proto_rawDescGZIP() []byte { file_hunts_proto_rawDescOnce.Do(func() { - file_hunts_proto_rawDescData = protoimpl.X.CompressGZIP(file_hunts_proto_rawDescData) + file_hunts_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_hunts_proto_rawDesc), len(file_hunts_proto_rawDesc))) }) return file_hunts_proto_rawDescData } var file_hunts_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_hunts_proto_msgTypes = make([]protoimpl.MessageInfo, 13) -var file_hunts_proto_goTypes = []interface{}{ +var file_hunts_proto_goTypes = []any{ (HuntOsCondition_OS)(0), // 0: proto.HuntOsCondition.OS (Hunt_State)(0), // 1: proto.Hunt.State (*HuntLabelCondition)(nil), // 2: proto.HuntLabelCondition @@ -1458,165 +1268,7 @@ func file_hunts_proto_init() { return } file_flows_proto_init() - if !protoimpl.UnsafeEnabled { - file_hunts_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HuntLabelCondition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HuntOsCondition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HuntCondition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HuntStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Hunt); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HuntEstimateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListHuntsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListHuntsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetHuntRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetHuntResultsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowAssignment); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HuntMutation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_hunts_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HuntTags); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_hunts_proto_msgTypes[2].OneofWrappers = []interface{}{ + file_hunts_proto_msgTypes[2].OneofWrappers = []any{ (*HuntCondition_Labels)(nil), (*HuntCondition_Os)(nil), } @@ -1624,7 +1276,7 @@ func file_hunts_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_hunts_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_hunts_proto_rawDesc), len(file_hunts_proto_rawDesc)), NumEnums: 2, NumMessages: 13, NumExtensions: 0, @@ -1636,7 +1288,6 @@ func file_hunts_proto_init() { MessageInfos: file_hunts_proto_msgTypes, }.Build() File_hunts_proto = out.File - file_hunts_proto_rawDesc = nil file_hunts_proto_goTypes = nil file_hunts_proto_depIdxs = nil } diff --git a/api/proto/notebooks.pb.go b/api/proto/notebooks.pb.go index d3756eab5..be7cf2c07 100644 --- a/api/proto/notebooks.pb.go +++ b/api/proto/notebooks.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto2 "www.velocidex.com/golang/velociraptor/actions/proto" proto1 "www.velocidex.com/golang/velociraptor/artifacts/proto" proto "www.velocidex.com/golang/velociraptor/flows/proto" @@ -21,21 +22,18 @@ const ( ) type ReformatVQLMessage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Vql string `protobuf:"bytes,1,opt,name=vql,proto3" json:"vql,omitempty"` + Artifact string `protobuf:"bytes,2,opt,name=artifact,proto3" json:"artifact,omitempty"` unknownFields protoimpl.UnknownFields - - Vql string `protobuf:"bytes,1,opt,name=vql,proto3" json:"vql,omitempty"` - Artifact string `protobuf:"bytes,2,opt,name=artifact,proto3" json:"artifact,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReformatVQLMessage) Reset() { *x = ReformatVQLMessage{} - if protoimpl.UnsafeEnabled { - mi := &file_notebooks_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notebooks_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReformatVQLMessage) String() string { @@ -46,7 +44,7 @@ func (*ReformatVQLMessage) ProtoMessage() {} func (x *ReformatVQLMessage) ProtoReflect() protoreflect.Message { mi := &file_notebooks_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -76,21 +74,18 @@ func (x *ReformatVQLMessage) GetArtifact() string { } type Env struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Env) Reset() { *x = Env{} - if protoimpl.UnsafeEnabled { - mi := &file_notebooks_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notebooks_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Env) String() string { @@ -101,7 +96,7 @@ func (*Env) ProtoMessage() {} func (x *Env) ProtoReflect() protoreflect.Message { mi := &file_notebooks_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -131,22 +126,19 @@ func (x *Env) GetValue() string { } type NotebookExportRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + NotebookId string `protobuf:"bytes,1,opt,name=notebook_id,json=notebookId,proto3" json:"notebook_id,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + PreferredName string `protobuf:"bytes,3,opt,name=preferred_name,json=preferredName,proto3" json:"preferred_name,omitempty"` unknownFields protoimpl.UnknownFields - - NotebookId string `protobuf:"bytes,1,opt,name=notebook_id,json=notebookId,proto3" json:"notebook_id,omitempty"` - Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` - PreferredName string `protobuf:"bytes,3,opt,name=preferred_name,json=preferredName,proto3" json:"preferred_name,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotebookExportRequest) Reset() { *x = NotebookExportRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_notebooks_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notebooks_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotebookExportRequest) String() string { @@ -157,7 +149,7 @@ func (*NotebookExportRequest) ProtoMessage() {} func (x *NotebookExportRequest) ProtoReflect() protoreflect.Message { mi := &file_notebooks_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -195,35 +187,32 @@ func (x *NotebookExportRequest) GetPreferredName() string { // Message sent to the notebook processor ro request a cell recalc. type NotebookCellRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + NotebookId string `protobuf:"bytes,1,opt,name=notebook_id,json=notebookId,proto3" json:"notebook_id,omitempty"` + CellId string `protobuf:"bytes,2,opt,name=cell_id,json=cellId,proto3" json:"cell_id,omitempty"` + Version string `protobuf:"bytes,12,opt,name=version,proto3" json:"version,omitempty"` + AvailableVersions []string `protobuf:"bytes,13,rep,name=available_versions,json=availableVersions,proto3" json:"available_versions,omitempty"` + Input string `protobuf:"bytes,3,opt,name=input,proto3" json:"input,omitempty"` + Output string `protobuf:"bytes,14,opt,name=output,proto3" json:"output,omitempty"` + Name string `protobuf:"bytes,11,opt,name=name,proto3" json:"name,omitempty"` + Offset uint64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"` + Count uint64 `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"` + Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"` + CurrentlyEditing bool `protobuf:"varint,8,opt,name=currently_editing,json=currentlyEditing,proto3" json:"currently_editing,omitempty"` + Env []*Env `protobuf:"bytes,9,rep,name=env,proto3" json:"env,omitempty"` + IncludeUploads bool `protobuf:"varint,10,opt,name=include_uploads,json=includeUploads,proto3" json:"include_uploads,omitempty"` + IncludeTimelines bool `protobuf:"varint,16,opt,name=include_timelines,json=includeTimelines,proto3" json:"include_timelines,omitempty"` + // If this is set schedule the calculation syncronously. + Sync bool `protobuf:"varint,15,opt,name=sync,proto3" json:"sync,omitempty"` unknownFields protoimpl.UnknownFields - - NotebookId string `protobuf:"bytes,1,opt,name=notebook_id,json=notebookId,proto3" json:"notebook_id,omitempty"` - CellId string `protobuf:"bytes,2,opt,name=cell_id,json=cellId,proto3" json:"cell_id,omitempty"` - Version string `protobuf:"bytes,12,opt,name=version,proto3" json:"version,omitempty"` - AvailableVersions []string `protobuf:"bytes,13,rep,name=available_versions,json=availableVersions,proto3" json:"available_versions,omitempty"` - Input string `protobuf:"bytes,3,opt,name=input,proto3" json:"input,omitempty"` - Output string `protobuf:"bytes,14,opt,name=output,proto3" json:"output,omitempty"` - Name string `protobuf:"bytes,11,opt,name=name,proto3" json:"name,omitempty"` - Offset uint64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"` - Count uint64 `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"` - Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"` - CurrentlyEditing bool `protobuf:"varint,8,opt,name=currently_editing,json=currentlyEditing,proto3" json:"currently_editing,omitempty"` - Env []*Env `protobuf:"bytes,9,rep,name=env,proto3" json:"env,omitempty"` - IncludeUploads bool `protobuf:"varint,10,opt,name=include_uploads,json=includeUploads,proto3" json:"include_uploads,omitempty"` - IncludeTimelines bool `protobuf:"varint,16,opt,name=include_timelines,json=includeTimelines,proto3" json:"include_timelines,omitempty"` - // If this is set schedule the calculation synchronously. - Sync bool `protobuf:"varint,15,opt,name=sync,proto3" json:"sync,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotebookCellRequest) Reset() { *x = NotebookCellRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_notebooks_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notebooks_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotebookCellRequest) String() string { @@ -234,7 +223,7 @@ func (*NotebookCellRequest) ProtoMessage() {} func (x *NotebookCellRequest) ProtoReflect() protoreflect.Message { mi := &file_notebooks_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -355,26 +344,23 @@ func (x *NotebookCellRequest) GetSync() bool { } type NotebookContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + HuntId string `protobuf:"bytes,2,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` + FlowId string `protobuf:"bytes,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + ClientId string `protobuf:"bytes,4,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + EventArtifact string `protobuf:"bytes,5,opt,name=event_artifact,json=eventArtifact,proto3" json:"event_artifact,omitempty"` + StartTime int64 `protobuf:"varint,6,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + EndTime int64 `protobuf:"varint,7,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - HuntId string `protobuf:"bytes,2,opt,name=hunt_id,json=huntId,proto3" json:"hunt_id,omitempty"` - FlowId string `protobuf:"bytes,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` - ClientId string `protobuf:"bytes,4,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - EventArtifact string `protobuf:"bytes,5,opt,name=event_artifact,json=eventArtifact,proto3" json:"event_artifact,omitempty"` - StartTime int64 `protobuf:"varint,6,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` - EndTime int64 `protobuf:"varint,7,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotebookContext) Reset() { *x = NotebookContext{} - if protoimpl.UnsafeEnabled { - mi := &file_notebooks_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notebooks_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotebookContext) String() string { @@ -385,7 +371,7 @@ func (*NotebookContext) ProtoMessage() {} func (x *NotebookContext) ProtoReflect() protoreflect.Message { mi := &file_notebooks_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -451,13 +437,10 @@ func (x *NotebookContext) GetEndTime() int64 { // Represents an entire notebook. type NotebookMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Creator string `protobuf:"bytes,3,opt,name=creator,proto3" json:"creator,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Creator string `protobuf:"bytes,3,opt,name=creator,proto3" json:"creator,omitempty"` // Type of notebook - Hunt, Flow or empty for default. Context *NotebookContext `protobuf:"bytes,16,opt,name=context,proto3" json:"context,omitempty"` // A list of usernames that have access to this notebook. @@ -491,16 +474,16 @@ type NotebookMetadata struct { ColumnTypes []*proto1.ColumnType `protobuf:"bytes,17,rep,name=column_types,json=columnTypes,proto3" json:"column_types,omitempty"` // Cells that are not immediately included but may be included by // the GUI as suggestions. - Suggestions []*NotebookCellRequest `protobuf:"bytes,19,rep,name=suggestions,proto3" json:"suggestions,omitempty"` + Suggestions []*NotebookCellRequest `protobuf:"bytes,19,rep,name=suggestions,proto3" json:"suggestions,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *NotebookMetadata) Reset() { *x = NotebookMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_notebooks_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notebooks_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotebookMetadata) String() string { @@ -511,7 +494,7 @@ func (*NotebookMetadata) ProtoMessage() {} func (x *NotebookMetadata) ProtoReflect() protoreflect.Message { mi := &file_notebooks_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -688,20 +671,17 @@ func (x *NotebookMetadata) GetSuggestions() []*NotebookCellRequest { } type Notebooks struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*NotebookMetadata `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*NotebookMetadata `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Notebooks) Reset() { *x = Notebooks{} - if protoimpl.UnsafeEnabled { - mi := &file_notebooks_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notebooks_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Notebooks) String() string { @@ -712,7 +692,7 @@ func (*Notebooks) ProtoMessage() {} func (x *Notebooks) ProtoReflect() protoreflect.Message { mi := &file_notebooks_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -735,13 +715,10 @@ func (x *Notebooks) GetItems() []*NotebookMetadata { } type NotebookCell struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - NotebookId string `protobuf:"bytes,16,opt,name=notebook_id,json=notebookId,proto3" json:"notebook_id,omitempty"` - Input string `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` - Output string `protobuf:"bytes,2,opt,name=output,proto3" json:"output,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + NotebookId string `protobuf:"bytes,16,opt,name=notebook_id,json=notebookId,proto3" json:"notebook_id,omitempty"` + Input string `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + Output string `protobuf:"bytes,2,opt,name=output,proto3" json:"output,omitempty"` // A short summary of the notebook cell. Summary string `protobuf:"bytes,17,opt,name=summary,proto3" json:"summary,omitempty"` Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` @@ -760,15 +737,15 @@ type NotebookCell struct { Error string `protobuf:"bytes,13,opt,name=error,proto3" json:"error,omitempty"` CurrentVersion string `protobuf:"bytes,14,opt,name=current_version,json=currentVersion,proto3" json:"current_version,omitempty"` AvailableVersions []string `protobuf:"bytes,15,rep,name=available_versions,json=availableVersions,proto3" json:"available_versions,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *NotebookCell) Reset() { *x = NotebookCell{} - if protoimpl.UnsafeEnabled { - mi := &file_notebooks_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notebooks_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotebookCell) String() string { @@ -779,7 +756,7 @@ func (*NotebookCell) ProtoMessage() {} func (x *NotebookCell) ProtoReflect() protoreflect.Message { mi := &file_notebooks_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -914,25 +891,22 @@ func (x *NotebookCell) GetAvailableVersions() []string { } type NotebookFileUploadRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` - Filename string `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"` - DisableAttachmentId bool `protobuf:"varint,6,opt,name=disable_attachment_id,json=disableAttachmentId,proto3" json:"disable_attachment_id,omitempty"` - Components []string `protobuf:"bytes,4,rep,name=components,proto3" json:"components,omitempty"` - NotebookId string `protobuf:"bytes,3,opt,name=notebook_id,json=notebookId,proto3" json:"notebook_id,omitempty"` - CellId string `protobuf:"bytes,5,opt,name=cell_id,json=cellId,proto3" json:"cell_id,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Filename string `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"` + DisableAttachmentId bool `protobuf:"varint,6,opt,name=disable_attachment_id,json=disableAttachmentId,proto3" json:"disable_attachment_id,omitempty"` + Components []string `protobuf:"bytes,4,rep,name=components,proto3" json:"components,omitempty"` + NotebookId string `protobuf:"bytes,3,opt,name=notebook_id,json=notebookId,proto3" json:"notebook_id,omitempty"` + CellId string `protobuf:"bytes,5,opt,name=cell_id,json=cellId,proto3" json:"cell_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *NotebookFileUploadRequest) Reset() { *x = NotebookFileUploadRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_notebooks_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notebooks_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotebookFileUploadRequest) String() string { @@ -943,7 +917,7 @@ func (*NotebookFileUploadRequest) ProtoMessage() {} func (x *NotebookFileUploadRequest) ProtoReflect() protoreflect.Message { mi := &file_notebooks_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1001,22 +975,19 @@ func (x *NotebookFileUploadRequest) GetCellId() string { } type NotebookFileUploadResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + Filename string `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"` + MimeType string `protobuf:"bytes,3,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` unknownFields protoimpl.UnknownFields - - Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` - Filename string `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"` - MimeType string `protobuf:"bytes,3,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotebookFileUploadResponse) Reset() { *x = NotebookFileUploadResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_notebooks_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notebooks_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotebookFileUploadResponse) String() string { @@ -1027,7 +998,7 @@ func (*NotebookFileUploadResponse) ProtoMessage() {} func (x *NotebookFileUploadResponse) ProtoReflect() protoreflect.Message { mi := &file_notebooks_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1065,210 +1036,129 @@ func (x *NotebookFileUploadResponse) GetMimeType() string { var File_notebooks_proto protoreflect.FileDescriptor -var file_notebooks_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x71, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x24, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x42, 0x0a, 0x12, 0x52, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x56, 0x51, 0x4c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x71, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x71, 0x6c, 0x12, 0x1a, 0x0a, 0x08, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x22, 0x2d, 0x0a, 0x03, 0x45, 0x6e, 0x76, 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, 0x22, 0x73, 0x0a, 0x15, 0x4e, 0x6f, 0x74, 0x65, 0x62, - 0x6f, 0x6f, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, - 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd1, 0x03, 0x0a, - 0x13, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x62, - 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x65, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, - 0x79, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, - 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, - 0x76, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, - 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x79, 0x6e, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, - 0x22, 0xd5, 0x01, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc5, 0x07, 0x0a, 0x10, 0x4e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x30, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x15, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x73, 0x70, 0x65, 0x63, 0x73, 0x12, 0x38, - 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x16, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, - 0x72, 0x67, 0x73, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, - 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x0d, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, - 0x52, 0x0c, 0x63, 0x65, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, - 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x65, - 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x4a, 0x0a, 0x13, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x46, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x52, 0x10, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, - 0x12, 0x1c, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x76, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x0c, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0b, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x0b, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x22, 0x3a, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x2d, 0x0a, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x8e, 0x04, 0x0a, - 0x0c, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, - 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x65, - 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x65, 0x6c, - 0x6c, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, - 0x23, 0x0a, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6d, 0x6f, 0x72, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, - 0x65, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x12, 0x1c, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x76, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, - 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd9, 0x01, - 0x0a, 0x19, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, - 0x12, 0x17, 0x0a, 0x07, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x63, 0x65, 0x6c, 0x6c, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, - 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, - 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_notebooks_proto_rawDesc = "" + + "\n" + + "\x0fnotebooks.proto\x12\x05proto\x1a\x17actions/proto/vql.proto\x1a\x1eartifacts/proto/artifact.proto\x1a$flows/proto/artifact_collector.proto\x1a\vflows.proto\"B\n" + + "\x12ReformatVQLMessage\x12\x10\n" + + "\x03vql\x18\x01 \x01(\tR\x03vql\x12\x1a\n" + + "\bartifact\x18\x02 \x01(\tR\bartifact\"-\n" + + "\x03Env\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\"s\n" + + "\x15NotebookExportRequest\x12\x1f\n" + + "\vnotebook_id\x18\x01 \x01(\tR\n" + + "notebookId\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12%\n" + + "\x0epreferred_name\x18\x03 \x01(\tR\rpreferredName\"\xd1\x03\n" + + "\x13NotebookCellRequest\x12\x1f\n" + + "\vnotebook_id\x18\x01 \x01(\tR\n" + + "notebookId\x12\x17\n" + + "\acell_id\x18\x02 \x01(\tR\x06cellId\x12\x18\n" + + "\aversion\x18\f \x01(\tR\aversion\x12-\n" + + "\x12available_versions\x18\r \x03(\tR\x11availableVersions\x12\x14\n" + + "\x05input\x18\x03 \x01(\tR\x05input\x12\x16\n" + + "\x06output\x18\x0e \x01(\tR\x06output\x12\x12\n" + + "\x04name\x18\v \x01(\tR\x04name\x12\x16\n" + + "\x06offset\x18\x04 \x01(\x04R\x06offset\x12\x14\n" + + "\x05count\x18\x05 \x01(\x04R\x05count\x12\x12\n" + + "\x04type\x18\x06 \x01(\tR\x04type\x12+\n" + + "\x11currently_editing\x18\b \x01(\bR\x10currentlyEditing\x12\x1c\n" + + "\x03env\x18\t \x03(\v2\n" + + ".proto.EnvR\x03env\x12'\n" + + "\x0finclude_uploads\x18\n" + + " \x01(\bR\x0eincludeUploads\x12+\n" + + "\x11include_timelines\x18\x10 \x01(\bR\x10includeTimelines\x12\x12\n" + + "\x04sync\x18\x0f \x01(\bR\x04sync\"\xd5\x01\n" + + "\x0fNotebookContext\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12\x17\n" + + "\ahunt_id\x18\x02 \x01(\tR\x06huntId\x12\x17\n" + + "\aflow_id\x18\x03 \x01(\tR\x06flowId\x12\x1b\n" + + "\tclient_id\x18\x04 \x01(\tR\bclientId\x12%\n" + + "\x0eevent_artifact\x18\x05 \x01(\tR\reventArtifact\x12\x1d\n" + + "\n" + + "start_time\x18\x06 \x01(\x03R\tstartTime\x12\x19\n" + + "\bend_time\x18\a \x01(\x03R\aendTime\"\xc5\a\n" + + "\x10NotebookMetadata\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12 \n" + + "\vdescription\x18\x02 \x01(\tR\vdescription\x12\x18\n" + + "\acreator\x18\x03 \x01(\tR\acreator\x120\n" + + "\acontext\x18\x10 \x01(\v2\x16.proto.NotebookContextR\acontext\x12$\n" + + "\rcollaborators\x18\f \x03(\tR\rcollaborators\x12\x1c\n" + + "\tartifacts\x18\x14 \x03(\tR\tartifacts\x12)\n" + + "\x05specs\x18\x15 \x03(\v2\x13.proto.ArtifactSpecR\x05specs\x128\n" + + "\n" + + "parameters\x18\x16 \x03(\v2\x18.proto.ArtifactParameterR\n" + + "parameters\x123\n" + + "\brequests\x18\x17 \x03(\v2\x17.proto.VQLCollectorArgsR\brequests\x12\x16\n" + + "\x06public\x18\r \x01(\bR\x06public\x12!\n" + + "\fcreated_time\x18\x04 \x01(\x03R\vcreatedTime\x12#\n" + + "\rmodified_time\x18\x05 \x01(\x03R\fmodifiedTime\x12\x1f\n" + + "\vnotebook_id\x18\a \x01(\tR\n" + + "notebookId\x12\x14\n" + + "\x05cells\x18\x06 \x03(\tR\x05cells\x128\n" + + "\rcell_metadata\x18\v \x03(\v2\x13.proto.NotebookCellR\fcellMetadata\x12$\n" + + "\x0elatest_cell_id\x18\b \x01(\tR\flatestCellId\x12\x16\n" + + "\x06hidden\x18\t \x01(\bR\x06hidden\x12J\n" + + "\x13available_downloads\x18\n" + + " \x01(\v2\x19.proto.AvailableDownloadsR\x12availableDownloads\x12F\n" + + "\x11available_uploads\x18\x12 \x01(\v2\x19.proto.AvailableDownloadsR\x10availableUploads\x12\x1c\n" + + "\x03env\x18\x0e \x03(\v2\n" + + ".proto.EnvR\x03env\x12\x1c\n" + + "\ttimelines\x18\x0f \x03(\tR\ttimelines\x124\n" + + "\fcolumn_types\x18\x11 \x03(\v2\x11.proto.ColumnTypeR\vcolumnTypes\x12<\n" + + "\vsuggestions\x18\x13 \x03(\v2\x1a.proto.NotebookCellRequestR\vsuggestions\":\n" + + "\tNotebooks\x12-\n" + + "\x05items\x18\x01 \x03(\v2\x17.proto.NotebookMetadataR\x05items\"\x8e\x04\n" + + "\fNotebookCell\x12\x1f\n" + + "\vnotebook_id\x18\x10 \x01(\tR\n" + + "notebookId\x12\x14\n" + + "\x05input\x18\x01 \x01(\tR\x05input\x12\x16\n" + + "\x06output\x18\x02 \x01(\tR\x06output\x12\x18\n" + + "\asummary\x18\x11 \x01(\tR\asummary\x12\x12\n" + + "\x04data\x18\x03 \x01(\tR\x04data\x12\x17\n" + + "\acell_id\x18\x04 \x01(\tR\x06cellId\x12\x1a\n" + + "\bmessages\x18\x05 \x03(\tR\bmessages\x12#\n" + + "\rmore_messages\x18\f \x01(\bR\fmoreMessages\x12\x1c\n" + + "\ttimestamp\x18\x06 \x01(\x03R\ttimestamp\x12\x1a\n" + + "\bduration\x18\n" + + " \x01(\x03R\bduration\x12\x12\n" + + "\x04type\x18\a \x01(\tR\x04type\x12+\n" + + "\x11currently_editing\x18\b \x01(\bR\x10currentlyEditing\x12 \n" + + "\vcalculating\x18\t \x01(\bR\vcalculating\x12\x1c\n" + + "\x03env\x18\v \x03(\v2\n" + + ".proto.EnvR\x03env\x12\x14\n" + + "\x05error\x18\r \x01(\tR\x05error\x12'\n" + + "\x0fcurrent_version\x18\x0e \x01(\tR\x0ecurrentVersion\x12-\n" + + "\x12available_versions\x18\x0f \x03(\tR\x11availableVersions\"\xd9\x01\n" + + "\x19NotebookFileUploadRequest\x12\x12\n" + + "\x04data\x18\x01 \x01(\tR\x04data\x12\x1a\n" + + "\bfilename\x18\x02 \x01(\tR\bfilename\x122\n" + + "\x15disable_attachment_id\x18\x06 \x01(\bR\x13disableAttachmentId\x12\x1e\n" + + "\n" + + "components\x18\x04 \x03(\tR\n" + + "components\x12\x1f\n" + + "\vnotebook_id\x18\x03 \x01(\tR\n" + + "notebookId\x12\x17\n" + + "\acell_id\x18\x05 \x01(\tR\x06cellId\"g\n" + + "\x1aNotebookFileUploadResponse\x12\x10\n" + + "\x03url\x18\x01 \x01(\tR\x03url\x12\x1a\n" + + "\bfilename\x18\x02 \x01(\tR\bfilename\x12\x1b\n" + + "\tmime_type\x18\x03 \x01(\tR\bmimeTypeB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_notebooks_proto_rawDescOnce sync.Once - file_notebooks_proto_rawDescData = file_notebooks_proto_rawDesc + file_notebooks_proto_rawDescData []byte ) func file_notebooks_proto_rawDescGZIP() []byte { file_notebooks_proto_rawDescOnce.Do(func() { - file_notebooks_proto_rawDescData = protoimpl.X.CompressGZIP(file_notebooks_proto_rawDescData) + file_notebooks_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_notebooks_proto_rawDesc), len(file_notebooks_proto_rawDesc))) }) return file_notebooks_proto_rawDescData } var file_notebooks_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_notebooks_proto_goTypes = []interface{}{ +var file_notebooks_proto_goTypes = []any{ (*ReformatVQLMessage)(nil), // 0: proto.ReformatVQLMessage (*Env)(nil), // 1: proto.Env (*NotebookExportRequest)(nil), // 2: proto.NotebookExportRequest @@ -1312,133 +1202,11 @@ func file_notebooks_proto_init() { return } file_flows_proto_init() - if !protoimpl.UnsafeEnabled { - file_notebooks_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReformatVQLMessage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notebooks_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Env); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notebooks_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotebookExportRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notebooks_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotebookCellRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notebooks_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotebookContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notebooks_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotebookMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notebooks_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Notebooks); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notebooks_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotebookCell); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notebooks_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotebookFileUploadRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notebooks_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotebookFileUploadResponse); 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_notebooks_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_notebooks_proto_rawDesc), len(file_notebooks_proto_rawDesc)), NumEnums: 0, NumMessages: 10, NumExtensions: 0, @@ -1449,7 +1217,6 @@ func file_notebooks_proto_init() { MessageInfos: file_notebooks_proto_msgTypes, }.Build() File_notebooks_proto = out.File - file_notebooks_proto_rawDesc = nil file_notebooks_proto_goTypes = nil file_notebooks_proto_depIdxs = nil } diff --git a/api/proto/objects.pb.go b/api/proto/objects.pb.go index 2ac32f93d..19a564075 100644 --- a/api/proto/objects.pb.go +++ b/api/proto/objects.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -18,21 +19,18 @@ const ( ) type ServerState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Currently running server state - Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ServerState) Reset() { *x = ServerState{} - if protoimpl.UnsafeEnabled { - mi := &file_objects_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_objects_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ServerState) String() string { @@ -43,7 +41,7 @@ func (*ServerState) ProtoMessage() {} func (x *ServerState) ProtoReflect() protoreflect.Message { mi := &file_objects_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -67,31 +65,26 @@ func (x *ServerState) GetVersion() string { var File_objects_proto protoreflect.FileDescriptor -var file_objects_proto_rawDesc = []byte{ - 0x0a, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x27, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, - 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_objects_proto_rawDesc = "" + + "\n" + + "\robjects.proto\x12\x05proto\"'\n" + + "\vServerState\x12\x18\n" + + "\aversion\x18\x01 \x01(\tR\aversionB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_objects_proto_rawDescOnce sync.Once - file_objects_proto_rawDescData = file_objects_proto_rawDesc + file_objects_proto_rawDescData []byte ) func file_objects_proto_rawDescGZIP() []byte { file_objects_proto_rawDescOnce.Do(func() { - file_objects_proto_rawDescData = protoimpl.X.CompressGZIP(file_objects_proto_rawDescData) + file_objects_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_objects_proto_rawDesc), len(file_objects_proto_rawDesc))) }) return file_objects_proto_rawDescData } var file_objects_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_objects_proto_goTypes = []interface{}{ +var file_objects_proto_goTypes = []any{ (*ServerState)(nil), // 0: proto.ServerState } var file_objects_proto_depIdxs = []int32{ @@ -107,25 +100,11 @@ func file_objects_proto_init() { if File_objects_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_objects_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerState); 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_objects_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_objects_proto_rawDesc), len(file_objects_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -136,7 +115,6 @@ func file_objects_proto_init() { MessageInfos: file_objects_proto_msgTypes, }.Build() File_objects_proto = out.File - file_objects_proto_rawDesc = nil file_objects_proto_goTypes = nil file_objects_proto_depIdxs = nil } diff --git a/api/proto/orgs.pb.go b/api/proto/orgs.pb.go index 37fde3367..95d3cc66b 100644 --- a/api/proto/orgs.pb.go +++ b/api/proto/orgs.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -18,24 +19,21 @@ const ( ) type OrgRecord struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Nonce string `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` - Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Nonce string `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` + Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` // Deprecated do not use - OrgId string `protobuf:"bytes,4,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + OrgId string `protobuf:"bytes,4,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *OrgRecord) Reset() { *x = OrgRecord{} - if protoimpl.UnsafeEnabled { - mi := &file_orgs_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_orgs_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OrgRecord) String() string { @@ -46,7 +44,7 @@ func (*OrgRecord) ProtoMessage() {} func (x *OrgRecord) ProtoReflect() protoreflect.Message { mi := &file_orgs_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -91,34 +89,30 @@ func (x *OrgRecord) GetOrgId() string { var File_orgs_proto protoreflect.FileDescriptor -var file_orgs_proto_rawDesc = []byte{ - 0x0a, 0x0a, 0x6f, 0x72, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x5c, 0x0a, 0x09, 0x4f, 0x72, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, - 0x67, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, - 0x64, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, - 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, - 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_orgs_proto_rawDesc = "" + + "\n" + + "\n" + + "orgs.proto\x12\x05proto\"\\\n" + + "\tOrgRecord\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05nonce\x18\x02 \x01(\tR\x05nonce\x12\x0e\n" + + "\x02id\x18\x03 \x01(\tR\x02id\x12\x15\n" + + "\x06org_id\x18\x04 \x01(\tR\x05orgIdB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_orgs_proto_rawDescOnce sync.Once - file_orgs_proto_rawDescData = file_orgs_proto_rawDesc + file_orgs_proto_rawDescData []byte ) func file_orgs_proto_rawDescGZIP() []byte { file_orgs_proto_rawDescOnce.Do(func() { - file_orgs_proto_rawDescData = protoimpl.X.CompressGZIP(file_orgs_proto_rawDescData) + file_orgs_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_orgs_proto_rawDesc), len(file_orgs_proto_rawDesc))) }) return file_orgs_proto_rawDescData } var file_orgs_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_orgs_proto_goTypes = []interface{}{ +var file_orgs_proto_goTypes = []any{ (*OrgRecord)(nil), // 0: proto.OrgRecord } var file_orgs_proto_depIdxs = []int32{ @@ -134,25 +128,11 @@ func file_orgs_proto_init() { if File_orgs_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_orgs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrgRecord); 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_orgs_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_orgs_proto_rawDesc), len(file_orgs_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -163,7 +143,6 @@ func file_orgs_proto_init() { MessageInfos: file_orgs_proto_msgTypes, }.Build() File_orgs_proto = out.File - file_orgs_proto_rawDesc = nil file_orgs_proto_goTypes = nil file_orgs_proto_depIdxs = nil } diff --git a/api/proto/scheduler.pb.go b/api/proto/scheduler.pb.go index 1fc3f2e06..1ff04bacc 100644 --- a/api/proto/scheduler.pb.go +++ b/api/proto/scheduler.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -18,10 +19,7 @@ const ( ) type ScheduleRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The queue we want to receive jobs on Queue string `protobuf:"bytes,1,opt,name=queue,proto3" json:"queue,omitempty"` // First request must be "register" then for each completed job "completion" @@ -33,16 +31,16 @@ type ScheduleRequest struct { Response string `protobuf:"bytes,4,opt,name=response,proto3" json:"response,omitempty"` OrgId string `protobuf:"bytes,7,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` // An error message or "" for no error. - Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"` + Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ScheduleRequest) Reset() { *x = ScheduleRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_scheduler_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_scheduler_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ScheduleRequest) String() string { @@ -53,7 +51,7 @@ func (*ScheduleRequest) ProtoMessage() {} func (x *ScheduleRequest) ProtoReflect() protoreflect.Message { mi := &file_scheduler_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -119,25 +117,22 @@ func (x *ScheduleRequest) GetError() string { // This represents a job request from the server to the minion, type ScheduleResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The id must be matched with the response. Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Queue string `protobuf:"bytes,2,opt,name=queue,proto3" json:"queue,omitempty"` // A json serialized request suitable for the named queue. - Job string `protobuf:"bytes,3,opt,name=job,proto3" json:"job,omitempty"` - OrgId string `protobuf:"bytes,7,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + Job string `protobuf:"bytes,3,opt,name=job,proto3" json:"job,omitempty"` + OrgId string `protobuf:"bytes,7,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ScheduleResponse) Reset() { *x = ScheduleResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_scheduler_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_scheduler_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ScheduleResponse) String() string { @@ -148,7 +143,7 @@ func (*ScheduleResponse) ProtoMessage() {} func (x *ScheduleResponse) ProtoReflect() protoreflect.Message { mi := &file_scheduler_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -193,46 +188,37 @@ func (x *ScheduleResponse) GetOrgId() string { var File_scheduler_proto protoreflect.FileDescriptor -var file_scheduler_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb0, 0x01, 0x0a, 0x0f, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, - 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x61, 0x0a, 0x10, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x42, 0x31, - 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, - 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_scheduler_proto_rawDesc = "" + + "\n" + + "\x0fscheduler.proto\x12\x05proto\"\xb0\x01\n" + + "\x0fScheduleRequest\x12\x14\n" + + "\x05queue\x18\x01 \x01(\tR\x05queue\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12\x0e\n" + + "\x02id\x18\x03 \x01(\x04R\x02id\x12\x1a\n" + + "\bpriority\x18\x06 \x01(\x03R\bpriority\x12\x1a\n" + + "\bresponse\x18\x04 \x01(\tR\bresponse\x12\x15\n" + + "\x06org_id\x18\a \x01(\tR\x05orgId\x12\x14\n" + + "\x05error\x18\x05 \x01(\tR\x05error\"a\n" + + "\x10ScheduleResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id\x12\x14\n" + + "\x05queue\x18\x02 \x01(\tR\x05queue\x12\x10\n" + + "\x03job\x18\x03 \x01(\tR\x03job\x12\x15\n" + + "\x06org_id\x18\a \x01(\tR\x05orgIdB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_scheduler_proto_rawDescOnce sync.Once - file_scheduler_proto_rawDescData = file_scheduler_proto_rawDesc + file_scheduler_proto_rawDescData []byte ) func file_scheduler_proto_rawDescGZIP() []byte { file_scheduler_proto_rawDescOnce.Do(func() { - file_scheduler_proto_rawDescData = protoimpl.X.CompressGZIP(file_scheduler_proto_rawDescData) + file_scheduler_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_scheduler_proto_rawDesc), len(file_scheduler_proto_rawDesc))) }) return file_scheduler_proto_rawDescData } var file_scheduler_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_scheduler_proto_goTypes = []interface{}{ +var file_scheduler_proto_goTypes = []any{ (*ScheduleRequest)(nil), // 0: proto.ScheduleRequest (*ScheduleResponse)(nil), // 1: proto.ScheduleResponse } @@ -249,37 +235,11 @@ func file_scheduler_proto_init() { if File_scheduler_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_scheduler_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScheduleRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_scheduler_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScheduleResponse); 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_scheduler_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_scheduler_proto_rawDesc), len(file_scheduler_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, @@ -290,7 +250,6 @@ func file_scheduler_proto_init() { MessageInfos: file_scheduler_proto_msgTypes, }.Build() File_scheduler_proto = out.File - file_scheduler_proto_rawDesc = nil file_scheduler_proto_goTypes = nil file_scheduler_proto_depIdxs = nil } diff --git a/api/proto/secrets.pb.go b/api/proto/secrets.pb.go index e7ad4ccd1..408d9b12b 100644 --- a/api/proto/secrets.pb.go +++ b/api/proto/secrets.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -18,32 +19,29 @@ const ( ) type SecretDefinition struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TypeName string `protobuf:"bytes,1,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` - Verifier string `protobuf:"bytes,2,opt,name=verifier,proto3" json:"verifier,omitempty"` - Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + TypeName string `protobuf:"bytes,1,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` + Verifier string `protobuf:"bytes,2,opt,name=verifier,proto3" json:"verifier,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` // The fields that are supported by the secret. These are in a // list to ensure consistent ordering. Fields []string `protobuf:"bytes,7,rep,name=fields,proto3" json:"fields,omitempty"` - Template map[string]string `protobuf:"bytes,4,rep,name=template,proto3" json:"template,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Template map[string]string `protobuf:"bytes,4,rep,name=template,proto3" json:"template,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` SecretNames []string `protobuf:"bytes,3,rep,name=secret_names,json=secretNames,proto3" json:"secret_names,omitempty"` // deprecated - all secrets must be built in, no custom templates // can be defined. BuiltIn bool `protobuf:"varint,6,opt,name=built_in,json=builtIn,proto3" json:"built_in,omitempty"` // These fields should be validated with yaml - YamlFields []string `protobuf:"bytes,8,rep,name=yaml_fields,json=yamlFields,proto3" json:"yaml_fields,omitempty"` + YamlFields []string `protobuf:"bytes,8,rep,name=yaml_fields,json=yamlFields,proto3" json:"yaml_fields,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SecretDefinition) Reset() { *x = SecretDefinition{} - if protoimpl.UnsafeEnabled { - mi := &file_secrets_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_secrets_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SecretDefinition) String() string { @@ -54,7 +52,7 @@ func (*SecretDefinition) ProtoMessage() {} func (x *SecretDefinition) ProtoReflect() protoreflect.Message { mi := &file_secrets_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -126,20 +124,17 @@ func (x *SecretDefinition) GetYamlFields() []string { } type SecretDefinitionList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*SecretDefinition `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*SecretDefinition `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SecretDefinitionList) Reset() { *x = SecretDefinitionList{} - if protoimpl.UnsafeEnabled { - mi := &file_secrets_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_secrets_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SecretDefinitionList) String() string { @@ -150,7 +145,7 @@ func (*SecretDefinitionList) ProtoMessage() {} func (x *SecretDefinitionList) ProtoReflect() protoreflect.Message { mi := &file_secrets_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -173,33 +168,30 @@ func (x *SecretDefinitionList) GetItems() []*SecretDefinition { } type Secret struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - TypeName string `protobuf:"bytes,2,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` - Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + TypeName string `protobuf:"bytes,2,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` // The secret is stored as an encrypted json blob in storage. The // blob is encrypted with the DEK derived from // config_obj.Security.secrets_dek EncryptedSecret []byte `protobuf:"bytes,6,opt,name=encrypted_secret,json=encryptedSecret,proto3" json:"encrypted_secret,omitempty"` - Secret map[string]string `protobuf:"bytes,3,rep,name=secret,proto3" json:"secret,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Secret map[string]string `protobuf:"bytes,3,rep,name=secret,proto3" json:"secret,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` Users []string `protobuf:"bytes,4,rep,name=users,proto3" json:"users,omitempty"` // A list of orgs which can see the secret. Only meaningful for // secrets at the root org. Orgs []string `protobuf:"bytes,7,rep,name=orgs,proto3" json:"orgs,omitempty"` // When true this secret is available to all orgs automatically. VisibleToAllOrgs bool `protobuf:"varint,8,opt,name=visible_to_all_orgs,json=visibleToAllOrgs,proto3" json:"visible_to_all_orgs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Secret) Reset() { *x = Secret{} - if protoimpl.UnsafeEnabled { - mi := &file_secrets_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_secrets_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Secret) String() string { @@ -210,7 +202,7 @@ func (*Secret) ProtoMessage() {} func (x *Secret) ProtoReflect() protoreflect.Message { mi := &file_secrets_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -282,12 +274,9 @@ func (x *Secret) GetVisibleToAllOrgs() bool { } type ModifySecretRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TypeName string `protobuf:"bytes,1,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + TypeName string `protobuf:"bytes,1,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // If set the secret will be deleted. Delete bool `protobuf:"varint,3,opt,name=delete,proto3" json:"delete,omitempty"` AddUsers []string `protobuf:"bytes,4,rep,name=add_users,json=addUsers,proto3" json:"add_users,omitempty"` @@ -298,15 +287,15 @@ type ModifySecretRequest struct { RemoveOrgs []string `protobuf:"bytes,7,rep,name=remove_orgs,json=removeOrgs,proto3" json:"remove_orgs,omitempty"` // When true this secret is available to all orgs automatically. VisibleToAllOrgs bool `protobuf:"varint,8,opt,name=visible_to_all_orgs,json=visibleToAllOrgs,proto3" json:"visible_to_all_orgs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ModifySecretRequest) Reset() { *x = ModifySecretRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_secrets_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_secrets_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ModifySecretRequest) String() string { @@ -317,7 +306,7 @@ func (*ModifySecretRequest) ProtoMessage() {} func (x *ModifySecretRequest) ProtoReflect() protoreflect.Message { mi := &file_secrets_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -390,93 +379,61 @@ func (x *ModifySecretRequest) GetVisibleToAllOrgs() bool { var File_secrets_proto protoreflect.FileDescriptor -var file_secrets_proto_rawDesc = []byte{ - 0x0a, 0x0d, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe4, 0x02, 0x0a, 0x10, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x41, - 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x5f, 0x69, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x49, 0x6e, 0x12, - 0x1f, 0x0a, 0x0b, 0x79, 0x61, 0x6d, 0x6c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x79, 0x61, 0x6d, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x1a, 0x3b, 0x0a, 0x0d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 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, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x22, 0xcd, 0x02, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x65, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x31, 0x0a, - 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x2e, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6f, 0x72, 0x67, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x67, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x54, 0x6f, 0x41, 0x6c, 0x6c, 0x4f, 0x72, 0x67, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 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, 0x89, 0x02, 0x0a, 0x13, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x61, 0x64, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x6f, 0x72, 0x67, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, - 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x5f, - 0x61, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x41, 0x6c, 0x6c, 0x4f, 0x72, 0x67, 0x73, - 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, - 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, - 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_secrets_proto_rawDesc = "" + + "\n" + + "\rsecrets.proto\x12\x05proto\"\xe4\x02\n" + + "\x10SecretDefinition\x12\x1b\n" + + "\ttype_name\x18\x01 \x01(\tR\btypeName\x12\x1a\n" + + "\bverifier\x18\x02 \x01(\tR\bverifier\x12 \n" + + "\vdescription\x18\x05 \x01(\tR\vdescription\x12\x16\n" + + "\x06fields\x18\a \x03(\tR\x06fields\x12A\n" + + "\btemplate\x18\x04 \x03(\v2%.proto.SecretDefinition.TemplateEntryR\btemplate\x12!\n" + + "\fsecret_names\x18\x03 \x03(\tR\vsecretNames\x12\x19\n" + + "\bbuilt_in\x18\x06 \x01(\bR\abuiltIn\x12\x1f\n" + + "\vyaml_fields\x18\b \x03(\tR\n" + + "yamlFields\x1a;\n" + + "\rTemplateEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"E\n" + + "\x14SecretDefinitionList\x12-\n" + + "\x05items\x18\x01 \x03(\v2\x17.proto.SecretDefinitionR\x05items\"\xcd\x02\n" + + "\x06Secret\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n" + + "\ttype_name\x18\x02 \x01(\tR\btypeName\x12 \n" + + "\vdescription\x18\x05 \x01(\tR\vdescription\x12)\n" + + "\x10encrypted_secret\x18\x06 \x01(\fR\x0fencryptedSecret\x121\n" + + "\x06secret\x18\x03 \x03(\v2\x19.proto.Secret.SecretEntryR\x06secret\x12\x14\n" + + "\x05users\x18\x04 \x03(\tR\x05users\x12\x12\n" + + "\x04orgs\x18\a \x03(\tR\x04orgs\x12-\n" + + "\x13visible_to_all_orgs\x18\b \x01(\bR\x10visibleToAllOrgs\x1a9\n" + + "\vSecretEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x89\x02\n" + + "\x13ModifySecretRequest\x12\x1b\n" + + "\ttype_name\x18\x01 \x01(\tR\btypeName\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n" + + "\x06delete\x18\x03 \x01(\bR\x06delete\x12\x1b\n" + + "\tadd_users\x18\x04 \x03(\tR\baddUsers\x12!\n" + + "\fremove_users\x18\x05 \x03(\tR\vremoveUsers\x12\x19\n" + + "\badd_orgs\x18\x06 \x03(\tR\aaddOrgs\x12\x1f\n" + + "\vremove_orgs\x18\a \x03(\tR\n" + + "removeOrgs\x12-\n" + + "\x13visible_to_all_orgs\x18\b \x01(\bR\x10visibleToAllOrgsB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_secrets_proto_rawDescOnce sync.Once - file_secrets_proto_rawDescData = file_secrets_proto_rawDesc + file_secrets_proto_rawDescData []byte ) func file_secrets_proto_rawDescGZIP() []byte { file_secrets_proto_rawDescOnce.Do(func() { - file_secrets_proto_rawDescData = protoimpl.X.CompressGZIP(file_secrets_proto_rawDescData) + file_secrets_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_secrets_proto_rawDesc), len(file_secrets_proto_rawDesc))) }) return file_secrets_proto_rawDescData } var file_secrets_proto_msgTypes = make([]protoimpl.MessageInfo, 6) -var file_secrets_proto_goTypes = []interface{}{ +var file_secrets_proto_goTypes = []any{ (*SecretDefinition)(nil), // 0: proto.SecretDefinition (*SecretDefinitionList)(nil), // 1: proto.SecretDefinitionList (*Secret)(nil), // 2: proto.Secret @@ -500,61 +457,11 @@ func file_secrets_proto_init() { if File_secrets_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_secrets_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SecretDefinition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_secrets_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SecretDefinitionList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_secrets_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Secret); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_secrets_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ModifySecretRequest); 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_secrets_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_secrets_proto_rawDesc), len(file_secrets_proto_rawDesc)), NumEnums: 0, NumMessages: 6, NumExtensions: 0, @@ -565,7 +472,6 @@ func file_secrets_proto_init() { MessageInfos: file_secrets_proto_msgTypes, }.Build() File_secrets_proto = out.File - file_secrets_proto_rawDesc = nil file_secrets_proto_goTypes = nil file_secrets_proto_depIdxs = nil } diff --git a/api/proto/server_state.pb.go b/api/proto/server_state.pb.go index 82a8fe89f..dff1294df 100644 --- a/api/proto/server_state.pb.go +++ b/api/proto/server_state.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -18,20 +19,17 @@ const ( ) type ServerInstallRecord struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + InstallTime uint64 `protobuf:"varint,1,opt,name=install_time,json=installTime,proto3" json:"install_time,omitempty"` unknownFields protoimpl.UnknownFields - - InstallTime uint64 `protobuf:"varint,1,opt,name=install_time,json=installTime,proto3" json:"install_time,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ServerInstallRecord) Reset() { *x = ServerInstallRecord{} - if protoimpl.UnsafeEnabled { - mi := &file_server_state_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_server_state_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ServerInstallRecord) String() string { @@ -42,7 +40,7 @@ func (*ServerInstallRecord) ProtoMessage() {} func (x *ServerInstallRecord) ProtoReflect() protoreflect.Message { mi := &file_server_state_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -66,32 +64,26 @@ func (x *ServerInstallRecord) GetInstallTime() uint64 { var File_server_state_proto protoreflect.FileDescriptor -var file_server_state_proto_rawDesc = []byte{ - 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x38, 0x0a, 0x13, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, - 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, - 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_server_state_proto_rawDesc = "" + + "\n" + + "\x12server_state.proto\x12\x05proto\"8\n" + + "\x13ServerInstallRecord\x12!\n" + + "\finstall_time\x18\x01 \x01(\x04R\vinstallTimeB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_server_state_proto_rawDescOnce sync.Once - file_server_state_proto_rawDescData = file_server_state_proto_rawDesc + file_server_state_proto_rawDescData []byte ) func file_server_state_proto_rawDescGZIP() []byte { file_server_state_proto_rawDescOnce.Do(func() { - file_server_state_proto_rawDescData = protoimpl.X.CompressGZIP(file_server_state_proto_rawDescData) + file_server_state_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_server_state_proto_rawDesc), len(file_server_state_proto_rawDesc))) }) return file_server_state_proto_rawDescData } var file_server_state_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_server_state_proto_goTypes = []interface{}{ +var file_server_state_proto_goTypes = []any{ (*ServerInstallRecord)(nil), // 0: proto.ServerInstallRecord } var file_server_state_proto_depIdxs = []int32{ @@ -107,25 +99,11 @@ func file_server_state_proto_init() { if File_server_state_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_server_state_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerInstallRecord); 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_server_state_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_server_state_proto_rawDesc), len(file_server_state_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -136,7 +114,6 @@ func file_server_state_proto_init() { MessageInfos: file_server_state_proto_msgTypes, }.Build() File_server_state_proto = out.File - file_server_state_proto_rawDesc = nil file_server_state_proto_goTypes = nil file_server_state_proto_depIdxs = nil } diff --git a/api/proto/timeline_api.pb.go b/api/proto/timeline_api.pb.go index 95d6a1184..7fdaf9e3b 100644 --- a/api/proto/timeline_api.pb.go +++ b/api/proto/timeline_api.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -18,24 +19,21 @@ const ( ) type AnnotationRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + SuperTimeline string `protobuf:"bytes,2,opt,name=super_timeline,json=superTimeline,proto3" json:"super_timeline,omitempty"` + NotebookId string `protobuf:"bytes,3,opt,name=notebook_id,json=notebookId,proto3" json:"notebook_id,omitempty"` + Note string `protobuf:"bytes,4,opt,name=note,proto3" json:"note,omitempty"` + EventJson string `protobuf:"bytes,5,opt,name=event_json,json=eventJson,proto3" json:"event_json,omitempty"` unknownFields protoimpl.UnknownFields - - Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - SuperTimeline string `protobuf:"bytes,2,opt,name=super_timeline,json=superTimeline,proto3" json:"super_timeline,omitempty"` - NotebookId string `protobuf:"bytes,3,opt,name=notebook_id,json=notebookId,proto3" json:"notebook_id,omitempty"` - Note string `protobuf:"bytes,4,opt,name=note,proto3" json:"note,omitempty"` - EventJson string `protobuf:"bytes,5,opt,name=event_json,json=eventJson,proto3" json:"event_json,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AnnotationRequest) Reset() { *x = AnnotationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_timeline_api_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_timeline_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AnnotationRequest) String() string { @@ -46,7 +44,7 @@ func (*AnnotationRequest) ProtoMessage() {} func (x *AnnotationRequest) ProtoReflect() protoreflect.Message { mi := &file_timeline_api_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -98,40 +96,32 @@ func (x *AnnotationRequest) GetEventJson() string { var File_timeline_api_proto protoreflect.FileDescriptor -var file_timeline_api_proto_rawDesc = []byte{ - 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xac, 0x01, 0x0a, 0x11, - 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x70, 0x65, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4a, 0x73, 0x6f, 0x6e, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, - 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, - 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_timeline_api_proto_rawDesc = "" + + "\n" + + "\x12timeline_api.proto\x12\x05proto\"\xac\x01\n" + + "\x11AnnotationRequest\x12\x1c\n" + + "\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x12%\n" + + "\x0esuper_timeline\x18\x02 \x01(\tR\rsuperTimeline\x12\x1f\n" + + "\vnotebook_id\x18\x03 \x01(\tR\n" + + "notebookId\x12\x12\n" + + "\x04note\x18\x04 \x01(\tR\x04note\x12\x1d\n" + + "\n" + + "event_json\x18\x05 \x01(\tR\teventJsonB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_timeline_api_proto_rawDescOnce sync.Once - file_timeline_api_proto_rawDescData = file_timeline_api_proto_rawDesc + file_timeline_api_proto_rawDescData []byte ) func file_timeline_api_proto_rawDescGZIP() []byte { file_timeline_api_proto_rawDescOnce.Do(func() { - file_timeline_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_timeline_api_proto_rawDescData) + file_timeline_api_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_timeline_api_proto_rawDesc), len(file_timeline_api_proto_rawDesc))) }) return file_timeline_api_proto_rawDescData } var file_timeline_api_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_timeline_api_proto_goTypes = []interface{}{ +var file_timeline_api_proto_goTypes = []any{ (*AnnotationRequest)(nil), // 0: proto.AnnotationRequest } var file_timeline_api_proto_depIdxs = []int32{ @@ -147,25 +137,11 @@ func file_timeline_api_proto_init() { if File_timeline_api_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_timeline_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AnnotationRequest); 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_timeline_api_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_timeline_api_proto_rawDesc), len(file_timeline_api_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -176,7 +152,6 @@ func file_timeline_api_proto_init() { MessageInfos: file_timeline_api_proto_msgTypes, }.Build() File_timeline_api_proto = out.File - file_timeline_api_proto_rawDesc = nil file_timeline_api_proto_goTypes = nil file_timeline_api_proto_depIdxs = nil } diff --git a/api/proto/users.pb.go b/api/proto/users.pb.go index dc5bf94f1..2927cb6bf 100644 --- a/api/proto/users.pb.go +++ b/api/proto/users.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto "www.velocidex.com/golang/velociraptor/acls/proto" proto1 "www.velocidex.com/golang/velociraptor/config/proto" proto2 "www.velocidex.com/golang/velociraptor/flows/proto" @@ -71,20 +72,17 @@ func (ApiUser_UserType) EnumDescriptor() ([]byte, []int) { } type Strings struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Strings []string `protobuf:"bytes,1,rep,name=strings,proto3" json:"strings,omitempty"` unknownFields protoimpl.UnknownFields - - Strings []string `protobuf:"bytes,1,rep,name=strings,proto3" json:"strings,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Strings) Reset() { *x = Strings{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Strings) String() string { @@ -95,7 +93,7 @@ func (*Strings) ProtoMessage() {} func (x *Strings) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -118,22 +116,19 @@ func (x *Strings) GetStrings() []string { } type UserStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Last time the user's record was fetched from the cache. LastActiveTime int64 `protobuf:"varint,1,opt,name=last_active_time,json=lastActiveTime,proto3" json:"last_active_time,omitempty"` LastIpAddress string `protobuf:"bytes,2,opt,name=last_ip_address,json=lastIpAddress,proto3" json:"last_ip_address,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UserStats) Reset() { *x = UserStats{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UserStats) String() string { @@ -144,7 +139,7 @@ func (*UserStats) ProtoMessage() {} func (x *UserStats) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -174,34 +169,31 @@ func (x *UserStats) GetLastIpAddress() string { } type VelociraptorUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - PasswordHash []byte `protobuf:"bytes,2,opt,name=password_hash,json=passwordHash,proto3" json:"password_hash,omitempty"` - PasswordSalt []byte `protobuf:"bytes,3,opt,name=password_salt,json=passwordSalt,proto3" json:"password_salt,omitempty"` - Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` - Picture string `protobuf:"bytes,5,opt,name=picture,proto3" json:"picture,omitempty"` - VerifiedEmail bool `protobuf:"varint,6,opt,name=verified_email,json=verifiedEmail,proto3" json:"verified_email,omitempty"` - ReadOnly bool `protobuf:"varint,7,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"` - Locked bool `protobuf:"varint,8,opt,name=locked,proto3" json:"locked,omitempty"` - Permissions *proto.ApiClientACL `protobuf:"bytes,9,opt,name=Permissions,proto3" json:"Permissions,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + PasswordHash []byte `protobuf:"bytes,2,opt,name=password_hash,json=passwordHash,proto3" json:"password_hash,omitempty"` + PasswordSalt []byte `protobuf:"bytes,3,opt,name=password_salt,json=passwordSalt,proto3" json:"password_salt,omitempty"` + Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` + Picture string `protobuf:"bytes,5,opt,name=picture,proto3" json:"picture,omitempty"` + VerifiedEmail bool `protobuf:"varint,6,opt,name=verified_email,json=verifiedEmail,proto3" json:"verified_email,omitempty"` + ReadOnly bool `protobuf:"varint,7,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"` + Locked bool `protobuf:"varint,8,opt,name=locked,proto3" json:"locked,omitempty"` + Permissions *proto.ApiClientACL `protobuf:"bytes,9,opt,name=Permissions,proto3" json:"Permissions,omitempty"` // A list of org id's the user belongs to. Orgs []*OrgRecord `protobuf:"bytes,11,rep,name=orgs,proto3" json:"orgs,omitempty"` // Only used by the GUI/API to determine the currently selected // org the user wants to see. - CurrentOrg string `protobuf:"bytes,12,opt,name=current_org,json=currentOrg,proto3" json:"current_org,omitempty"` - Stats *UserStats `protobuf:"bytes,13,opt,name=stats,proto3" json:"stats,omitempty"` + CurrentOrg string `protobuf:"bytes,12,opt,name=current_org,json=currentOrg,proto3" json:"current_org,omitempty"` + Stats *UserStats `protobuf:"bytes,13,opt,name=stats,proto3" json:"stats,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *VelociraptorUser) Reset() { *x = VelociraptorUser{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VelociraptorUser) String() string { @@ -212,7 +204,7 @@ func (*VelociraptorUser) ProtoMessage() {} func (x *VelociraptorUser) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -312,24 +304,21 @@ func (x *VelociraptorUser) GetStats() *UserStats { } type UpdateUserRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` + Orgs []string `protobuf:"bytes,3,rep,name=orgs,proto3" json:"orgs,omitempty"` + Roles []string `protobuf:"bytes,4,rep,name=roles,proto3" json:"roles,omitempty"` + AddNewUser bool `protobuf:"varint,5,opt,name=add_new_user,json=addNewUser,proto3" json:"add_new_user,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` - Orgs []string `protobuf:"bytes,3,rep,name=orgs,proto3" json:"orgs,omitempty"` - Roles []string `protobuf:"bytes,4,rep,name=roles,proto3" json:"roles,omitempty"` - AddNewUser bool `protobuf:"varint,5,opt,name=add_new_user,json=addNewUser,proto3" json:"add_new_user,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateUserRequest) Reset() { *x = UpdateUserRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateUserRequest) String() string { @@ -340,7 +329,7 @@ func (*UpdateUserRequest) ProtoMessage() {} func (x *UpdateUserRequest) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -391,21 +380,18 @@ func (x *UpdateUserRequest) GetAddNewUser() bool { } type DeleteUserRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Orgs []string `protobuf:"bytes,2,rep,name=orgs,proto3" json:"orgs,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Orgs []string `protobuf:"bytes,2,rep,name=orgs,proto3" json:"orgs,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DeleteUserRequest) Reset() { *x = DeleteUserRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteUserRequest) String() string { @@ -416,7 +402,7 @@ func (*DeleteUserRequest) ProtoMessage() {} func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -446,21 +432,18 @@ func (x *DeleteUserRequest) GetOrgs() []string { } type UserRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UserRequest) Reset() { *x = UserRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UserRequest) String() string { @@ -471,7 +454,7 @@ func (*UserRequest) ProtoMessage() {} func (x *UserRequest) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -504,13 +487,10 @@ func (x *UserRequest) GetOrg() string { // are constructed from the VelociraptorUser, the config file, the // GUIOptions etc. type ApiUserInterfaceTraits struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Permissions *proto.ApiClientACL `protobuf:"bytes,9,opt,name=Permissions,proto3" json:"Permissions,omitempty"` - Customizations *GUICustomizations `protobuf:"bytes,10,opt,name=customizations,proto3" json:"customizations,omitempty"` - Lang string `protobuf:"bytes,22,opt,name=lang,proto3" json:"lang,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Permissions *proto.ApiClientACL `protobuf:"bytes,9,opt,name=Permissions,proto3" json:"Permissions,omitempty"` + Customizations *GUICustomizations `protobuf:"bytes,10,opt,name=customizations,proto3" json:"customizations,omitempty"` + Lang string `protobuf:"bytes,22,opt,name=lang,proto3" json:"lang,omitempty"` // Set if the authenticator is password less (e.g. OAuth, SAML // etc) PasswordLess bool `protobuf:"varint,25,opt,name=password_less,json=passwordLess,proto3" json:"password_less,omitempty"` @@ -535,15 +515,15 @@ type ApiUserInterfaceTraits struct { DisableServerEvents bool `protobuf:"varint,26,opt,name=disable_server_events,json=disableServerEvents,proto3" json:"disable_server_events,omitempty"` AuthRedirectTemplate string `protobuf:"bytes,27,opt,name=auth_redirect_template,json=authRedirectTemplate,proto3" json:"auth_redirect_template,omitempty"` DisableQuarantineButton bool `protobuf:"varint,28,opt,name=disable_quarantine_button,json=disableQuarantineButton,proto3" json:"disable_quarantine_button,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ApiUserInterfaceTraits) Reset() { *x = ApiUserInterfaceTraits{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApiUserInterfaceTraits) String() string { @@ -554,7 +534,7 @@ func (*ApiUserInterfaceTraits) ProtoMessage() {} func (x *ApiUserInterfaceTraits) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -690,27 +670,24 @@ func (x *ApiUserInterfaceTraits) GetDisableQuarantineButton() bool { // Describe the user to the GUI. type ApiUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // Gets constructed from the users.GetUserOptions() InterfaceTraits *ApiUserInterfaceTraits `protobuf:"bytes,3,opt,name=interface_traits,json=interfaceTraits,proto3" json:"interface_traits,omitempty"` UserType ApiUser_UserType `protobuf:"varint,4,opt,name=user_type,json=userType,proto3,enum=proto.ApiUser_UserType" json:"user_type,omitempty"` Orgs []*OrgRecord `protobuf:"bytes,11,rep,name=orgs,proto3" json:"orgs,omitempty"` OrgAdmin bool `protobuf:"varint,12,opt,name=org_admin,json=orgAdmin,proto3" json:"org_admin,omitempty"` // Messages for the user are available. - Messages int64 `protobuf:"varint,14,opt,name=messages,proto3" json:"messages,omitempty"` + Messages int64 `protobuf:"varint,14,opt,name=messages,proto3" json:"messages,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ApiUser) Reset() { *x = ApiUser{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApiUser) String() string { @@ -721,7 +698,7 @@ func (*ApiUser) ProtoMessage() {} func (x *ApiUser) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -778,27 +755,24 @@ func (x *ApiUser) GetMessages() int64 { return 0 } -// Control the GUI per user. +// Contol the GUI per user. type GUICustomizations struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DisableServerEvents bool `protobuf:"varint,1,opt,name=disable_server_events,json=disableServerEvents,proto3" json:"disable_server_events,omitempty"` - DisableUserManagement bool `protobuf:"varint,2,opt,name=disable_user_management,json=disableUserManagement,proto3" json:"disable_user_management,omitempty"` - DisableQuarantineButton bool `protobuf:"varint,3,opt,name=disable_quarantine_button,json=disableQuarantineButton,proto3" json:"disable_quarantine_button,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + DisableServerEvents bool `protobuf:"varint,1,opt,name=disable_server_events,json=disableServerEvents,proto3" json:"disable_server_events,omitempty"` + DisableUserManagement bool `protobuf:"varint,2,opt,name=disable_user_management,json=disableUserManagement,proto3" json:"disable_user_management,omitempty"` + DisableQuarantineButton bool `protobuf:"varint,3,opt,name=disable_quarantine_button,json=disableQuarantineButton,proto3" json:"disable_quarantine_button,omitempty"` // Updated from config_obj.Defaults.HuntExpiryHours HuntExpiryHours int64 `protobuf:"varint,4,opt,name=hunt_expiry_hours,json=huntExpiryHours,proto3" json:"hunt_expiry_hours,omitempty"` IndexedClientMetadata []string `protobuf:"bytes,5,rep,name=indexed_client_metadata,json=indexedClientMetadata,proto3" json:"indexed_client_metadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GUICustomizations) Reset() { *x = GUICustomizations{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GUICustomizations) String() string { @@ -809,7 +783,7 @@ func (*GUICustomizations) ProtoMessage() {} func (x *GUICustomizations) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -860,13 +834,10 @@ func (x *GUICustomizations) GetIndexedClientMetadata() []string { } type SetGUIOptionsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Theme string `protobuf:"bytes,2,opt,name=theme,proto3" json:"theme,omitempty"` - Timezone string `protobuf:"bytes,6,opt,name=timezone,proto3" json:"timezone,omitempty"` - Lang string `protobuf:"bytes,5,opt,name=lang,proto3" json:"lang,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Theme string `protobuf:"bytes,2,opt,name=theme,proto3" json:"theme,omitempty"` + Timezone string `protobuf:"bytes,6,opt,name=timezone,proto3" json:"timezone,omitempty"` + Lang string `protobuf:"bytes,5,opt,name=lang,proto3" json:"lang,omitempty"` // Downloads will be protected using this password. If this is // empty we do not update the password. If it is set to "-" we // reset the password to the empty string. @@ -884,16 +855,16 @@ type SetGUIOptionsRequest struct { AuthRedirectTemplate string `protobuf:"bytes,27,opt,name=auth_redirect_template,json=authRedirectTemplate,proto3" json:"auth_redirect_template,omitempty"` DisableQuarantineButton bool `protobuf:"varint,28,opt,name=disable_quarantine_button,json=disableQuarantineButton,proto3" json:"disable_quarantine_button,omitempty"` // How many notifications are currently outstanding for the user. - Messages int64 `protobuf:"varint,29,opt,name=messages,proto3" json:"messages,omitempty"` + Messages int64 `protobuf:"varint,29,opt,name=messages,proto3" json:"messages,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SetGUIOptionsRequest) Reset() { *x = SetGUIOptionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetGUIOptionsRequest) String() string { @@ -904,7 +875,7 @@ func (*SetGUIOptionsRequest) ProtoMessage() {} func (x *SetGUIOptionsRequest) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1011,24 +982,21 @@ func (x *SetGUIOptionsRequest) GetMessages() int64 { } type SetGUIOptionsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // If this is specified the GUI will redirect to the specified + state protoimpl.MessageState `protogen:"open.v1"` + // If this is specifed the GUI will redirect to the specified // URL. This helps when there are multiple servers that can handle // the user and a better one is needed. Normally this is really // set by any middleware (e.g. custom authenticators). - RedirectUrl string `protobuf:"bytes,1,opt,name=redirect_url,json=redirectUrl,proto3" json:"redirect_url,omitempty"` + RedirectUrl string `protobuf:"bytes,1,opt,name=redirect_url,json=redirectUrl,proto3" json:"redirect_url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SetGUIOptionsResponse) Reset() { *x = SetGUIOptionsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetGUIOptionsResponse) String() string { @@ -1039,7 +1007,7 @@ func (*SetGUIOptionsResponse) ProtoMessage() {} func (x *SetGUIOptionsResponse) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1062,20 +1030,17 @@ func (x *SetGUIOptionsResponse) GetRedirectUrl() string { } type Users struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Users []*VelociraptorUser `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` unknownFields protoimpl.UnknownFields - - Users []*VelociraptorUser `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Users) Reset() { *x = Users{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Users) String() string { @@ -1086,7 +1051,7 @@ func (*Users) ProtoMessage() {} func (x *Users) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1110,28 +1075,25 @@ func (x *Users) GetUsers() []*VelociraptorUser { // Get the roles and permissions of a user within the org. type UserRoles struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"` - OrgName string `protobuf:"bytes,8,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` - Permissions []string `protobuf:"bytes,3,rep,name=permissions,proto3" json:"permissions,omitempty"` - Roles []string `protobuf:"bytes,4,rep,name=roles,proto3" json:"roles,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"` + OrgName string `protobuf:"bytes,8,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` + Permissions []string `protobuf:"bytes,3,rep,name=permissions,proto3" json:"permissions,omitempty"` + Roles []string `protobuf:"bytes,4,rep,name=roles,proto3" json:"roles,omitempty"` // Expanded permissions as above. EffectivePermissions []string `protobuf:"bytes,5,rep,name=effective_permissions,json=effectivePermissions,proto3" json:"effective_permissions,omitempty"` AllRoles []string `protobuf:"bytes,6,rep,name=all_roles,json=allRoles,proto3" json:"all_roles,omitempty"` AllPermissions []string `protobuf:"bytes,7,rep,name=all_permissions,json=allPermissions,proto3" json:"all_permissions,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UserRoles) Reset() { *x = UserRoles{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UserRoles) String() string { @@ -1142,7 +1104,7 @@ func (*UserRoles) ProtoMessage() {} func (x *UserRoles) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1214,21 +1176,18 @@ func (x *UserRoles) GetAllPermissions() []string { } type SetPasswordRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` unknownFields protoimpl.UnknownFields - - Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` - Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SetPasswordRequest) Reset() { *x = SetPasswordRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetPasswordRequest) String() string { @@ -1239,7 +1198,7 @@ func (*SetPasswordRequest) ProtoMessage() {} func (x *SetPasswordRequest) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1270,23 +1229,20 @@ func (x *SetPasswordRequest) GetUsername() string { // Store favorite collections (essential preset collection specs) type Favorite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Spec []*proto2.ArtifactSpec `protobuf:"bytes,3,rep,name=spec,proto3" json:"spec,omitempty"` + Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Spec []*proto2.ArtifactSpec `protobuf:"bytes,3,rep,name=spec,proto3" json:"spec,omitempty"` - Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Favorite) Reset() { *x = Favorite{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Favorite) String() string { @@ -1297,7 +1253,7 @@ func (*Favorite) ProtoMessage() {} func (x *Favorite) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1341,20 +1297,17 @@ func (x *Favorite) GetType() string { } type Favorites struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*Favorite `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*Favorite `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Favorites) Reset() { *x = Favorites{} - if protoimpl.UnsafeEnabled { - mi := &file_users_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_users_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Favorites) String() string { @@ -1365,7 +1318,7 @@ func (*Favorites) ProtoMessage() {} func (x *Favorites) ProtoReflect() protoreflect.Message { mi := &file_users_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1389,273 +1342,132 @@ func (x *Favorites) GetItems() []*Favorite { var File_users_proto protoreflect.FileDescriptor -var file_users_proto_rawDesc = []byte{ - 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, - 0x6e, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x61, 0x63, 0x6c, 0x73, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x63, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x19, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x66, 0x6c, 0x6f, - 0x77, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x0a, 0x6f, 0x72, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x23, 0x0a, - 0x07, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x73, 0x22, 0x5d, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, - 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x22, 0xe8, 0x04, 0x0a, 0x10, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, - 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x14, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x0e, 0x12, 0x0c, 0x54, 0x68, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x24, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1e, 0x12, - 0x1c, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2e, 0x52, 0x0c, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x61, 0x6c, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x72, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, - 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x55, 0xe2, 0xfc, 0xe3, 0xc4, - 0x01, 0x4f, 0x12, 0x4d, 0x41, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x75, 0x73, 0x65, 0x72, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x47, 0x55, 0x49, 0x20, 0x62, 0x75, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x61, 0x75, 0x6e, 0x63, - 0x68, 0x20, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x68, 0x75, 0x6e, 0x74, 0x73, - 0x2e, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x06, 0x6c, - 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x31, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x2b, 0x12, 0x29, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x69, 0x6e, 0x2e, 0x52, 0x06, - 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x43, 0x4c, - 0x52, 0x0b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, - 0x04, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x72, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x6f, - 0x72, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6f, - 0x72, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x4f, 0x72, 0x67, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xc5, 0x01, 0x0a, - 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x14, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x0e, 0x12, 0x0c, 0x54, 0x68, 0x65, 0x20, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x18, 0x12, 0x16, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x65, 0x61, - 0x72, 0x74, 0x65, 0x78, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x08, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x72, 0x67, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6f, 0x72, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x4e, 0x65, 0x77, - 0x55, 0x73, 0x65, 0x72, 0x22, 0x91, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x14, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x0e, - 0x12, 0x0c, 0x54, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x04, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x42, 0x3e, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x38, 0x12, 0x36, 0x54, 0x68, 0x65, 0x20, - 0x6f, 0x72, 0x67, 0x20, 0x49, 0x44, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x28, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x72, 0x67, - 0x73, 0x29, 0x52, 0x04, 0x6f, 0x72, 0x67, 0x73, 0x22, 0x33, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, - 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0xae, 0x05, - 0x0a, 0x16, 0x41, 0x70, 0x69, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x54, 0x72, 0x61, 0x69, 0x74, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, - 0x43, 0x4c, 0x52, 0x0b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x40, 0x0a, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x47, 0x55, 0x49, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x5f, 0x6c, 0x65, 0x73, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4c, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, - 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x15, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x55, 0x49, 0x4c, - 0x69, 0x6e, 0x6b, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, - 0x65, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x68, 0x65, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x29, 0x0a, 0x10, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x5f, 0x6c, 0x6f, 0x63, - 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x1f, 0x0a, - 0x0b, 0x75, 0x69, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x75, 0x69, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, - 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x62, 0x61, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x16, - 0x61, 0x75, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x61, 0x75, - 0x74, 0x68, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, - 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, - 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0xe4, - 0x03, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x55, 0x73, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1d, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x17, 0x12, 0x15, 0x54, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x72, 0x61, 0x69, 0x74, 0x73, 0x42, - 0x47, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x41, 0x12, 0x3f, 0x55, 0x73, 0x65, 0x72, 0x27, 0x73, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x20, 0x74, 0x72, 0x61, 0x69, 0x74, 0x73, - 0x20, 0x28, 0x77, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x63, 0x61, 0x6e, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x63, 0x61, 0x6e, 0x27, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x55, 0x49, 0x29, 0x2e, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x54, 0x72, 0x61, 0x69, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x09, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x24, 0x0a, 0x04, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x72, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x04, 0x6f, 0x72, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x6f, 0x72, 0x67, 0x5f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x28, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x22, - 0x12, 0x20, 0x57, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x75, - 0x73, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x4f, 0x72, 0x67, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x52, 0x08, 0x6f, 0x72, 0x67, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x4b, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x45, 0x52, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, - 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, - 0x4d, 0x49, 0x4e, 0x10, 0x02, 0x22, 0x9f, 0x02, 0x0a, 0x11, 0x47, 0x55, 0x49, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x36, 0x0a, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x5f, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x51, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x42, 0x75, 0x74, - 0x74, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x79, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, - 0x68, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, - 0x36, 0x0a, 0x17, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x93, 0x04, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x47, - 0x55, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, - 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, - 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x40, 0x0a, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x55, 0x49, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x55, 0x49, - 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x34, 0x0a, 0x16, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x14, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, - 0x6f, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x51, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x1d, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x3a, 0x0a, - 0x15, 0x53, 0x65, 0x74, 0x47, 0x55, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x22, 0x36, 0x0a, 0x05, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, - 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, - 0x73, 0x22, 0xff, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x15, 0x65, 0x66, 0x66, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x61, 0x6c, 0x6c, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6c, - 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x4c, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x7d, 0x0a, 0x08, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x32, 0x0a, 0x09, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x61, 0x76, 0x6f, 0x72, 0x69, 0x74, 0x65, 0x52, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x42, 0x31, 0x5a, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, - 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, - 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_users_proto_rawDesc = "" + + "\n" + + "\vusers.proto\x12\x05proto\x1a\x14proto/semantic.proto\x1a\x14acls/proto/acl.proto\x1a\x19config/proto/config.proto\x1a$flows/proto/artifact_collector.proto\x1a\n" + + "orgs.proto\"#\n" + + "\aStrings\x12\x18\n" + + "\astrings\x18\x01 \x03(\tR\astrings\"]\n" + + "\tUserStats\x12(\n" + + "\x10last_active_time\x18\x01 \x01(\x03R\x0elastActiveTime\x12&\n" + + "\x0flast_ip_address\x18\x02 \x01(\tR\rlastIpAddress\"\xe8\x04\n" + + "\x10VelociraptorUser\x12(\n" + + "\x04name\x18\x01 \x01(\tB\x14\xe2\xfc\xe3\xc4\x01\x0e\x12\fThe usernameR\x04name\x12I\n" + + "\rpassword_hash\x18\x02 \x01(\fB$\xe2\xfc\xe3\xc4\x01\x1e\x12\x1cSHA256 hash of the password.R\fpasswordHash\x12#\n" + + "\rpassword_salt\x18\x03 \x01(\fR\fpasswordSalt\x12\x14\n" + + "\x05email\x18\x04 \x01(\tR\x05email\x12\x18\n" + + "\apicture\x18\x05 \x01(\tR\apicture\x12%\n" + + "\x0everified_email\x18\x06 \x01(\bR\rverifiedEmail\x12r\n" + + "\tread_only\x18\a \x01(\bBU\xe2\xfc\xe3\xc4\x01O\x12MA read only user can use the GUI but is not allowed to launch flows or hunts.R\breadOnly\x12I\n" + + "\x06locked\x18\b \x01(\bB1\xe2\xfc\xe3\xc4\x01+\x12)If set the user is not allowed to log in.R\x06locked\x125\n" + + "\vPermissions\x18\t \x01(\v2\x13.proto.ApiClientACLR\vPermissions\x12$\n" + + "\x04orgs\x18\v \x03(\v2\x10.proto.OrgRecordR\x04orgs\x12\x1f\n" + + "\vcurrent_org\x18\f \x01(\tR\n" + + "currentOrg\x12&\n" + + "\x05stats\x18\r \x01(\v2\x10.proto.UserStatsR\x05stats\"\xc5\x01\n" + + "\x11UpdateUserRequest\x12(\n" + + "\x04name\x18\x01 \x01(\tB\x14\xe2\xfc\xe3\xc4\x01\x0e\x12\fThe usernameR\x04name\x12:\n" + + "\bpassword\x18\x02 \x01(\tB\x1e\xe2\xfc\xe3\xc4\x01\x18\x12\x16The cleartext passwordR\bpassword\x12\x12\n" + + "\x04orgs\x18\x03 \x03(\tR\x04orgs\x12\x14\n" + + "\x05roles\x18\x04 \x03(\tR\x05roles\x12 \n" + + "\fadd_new_user\x18\x05 \x01(\bR\n" + + "addNewUser\"\x91\x01\n" + + "\x11DeleteUserRequest\x12(\n" + + "\x04name\x18\x01 \x01(\tB\x14\xe2\xfc\xe3\xc4\x01\x0e\x12\fThe usernameR\x04name\x12R\n" + + "\x04orgs\x18\x02 \x03(\tB>\xe2\xfc\xe3\xc4\x018\x126The org IDs to remove this user (empty means all orgs)R\x04orgs\"3\n" + + "\vUserRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" + + "\x03org\x18\x02 \x01(\tR\x03org\"\xae\x05\n" + + "\x16ApiUserInterfaceTraits\x125\n" + + "\vPermissions\x18\t \x01(\v2\x13.proto.ApiClientACLR\vPermissions\x12@\n" + + "\x0ecustomizations\x18\n" + + " \x01(\v2\x18.proto.GUICustomizationsR\x0ecustomizations\x12\x12\n" + + "\x04lang\x18\x16 \x01(\tR\x04lang\x12#\n" + + "\rpassword_less\x18\x19 \x01(\bR\fpasswordLess\x12\x18\n" + + "\apicture\x18\x14 \x01(\tR\apicture\x12$\n" + + "\x05links\x18\x15 \x03(\v2\x0e.proto.GUILinkR\x05links\x12\x14\n" + + "\x05theme\x18\x02 \x01(\tR\x05theme\x12\x1a\n" + + "\btimezone\x18\x17 \x01(\tR\btimezone\x12)\n" + + "\x10default_password\x18\x03 \x01(\tR\x0fdefaultPassword\x124\n" + + "\x16default_downloads_lock\x18\x04 \x01(\bR\x14defaultDownloadsLock\x12\x1f\n" + + "\vui_settings\x18\x01 \x01(\tR\n" + + "uiSettings\x12\x10\n" + + "\x03org\x18\x18 \x01(\tR\x03org\x12\x19\n" + + "\borg_name\x18\x1e \x01(\tR\aorgName\x12\x1b\n" + + "\tbase_path\x18\x1d \x01(\tR\bbasePath\x122\n" + + "\x15disable_server_events\x18\x1a \x01(\bR\x13disableServerEvents\x124\n" + + "\x16auth_redirect_template\x18\x1b \x01(\tR\x14authRedirectTemplate\x12:\n" + + "\x19disable_quarantine_button\x18\x1c \x01(\bR\x17disableQuarantineButton\"\xe4\x03\n" + + "\aApiUser\x129\n" + + "\busername\x18\x01 \x01(\tB\x1d\xe2\xfc\xe3\xc4\x01\x17\x12\x15The name of the user.R\busername\x12\x91\x01\n" + + "\x10interface_traits\x18\x03 \x01(\v2\x1d.proto.ApiUserInterfaceTraitsBG\xe2\xfc\xe3\xc4\x01A\x12?User's interface traits (what they can and can't do in the UI).R\x0finterfaceTraits\x124\n" + + "\tuser_type\x18\x04 \x01(\x0e2\x17.proto.ApiUser.UserTypeR\buserType\x12$\n" + + "\x04orgs\x18\v \x03(\v2\x10.proto.OrgRecordR\x04orgs\x12E\n" + + "\torg_admin\x18\f \x01(\bB(\xe2\xfc\xe3\xc4\x01\"\x12 Whether this user is an OrgAdminR\borgAdmin\x12\x1a\n" + + "\bmessages\x18\x0e \x01(\x03R\bmessages\"K\n" + + "\bUserType\x12\x12\n" + + "\x0eUSER_TYPE_NONE\x10\x00\x12\x16\n" + + "\x12USER_TYPE_STANDARD\x10\x01\x12\x13\n" + + "\x0fUSER_TYPE_ADMIN\x10\x02\"\x9f\x02\n" + + "\x11GUICustomizations\x122\n" + + "\x15disable_server_events\x18\x01 \x01(\bR\x13disableServerEvents\x126\n" + + "\x17disable_user_management\x18\x02 \x01(\bR\x15disableUserManagement\x12:\n" + + "\x19disable_quarantine_button\x18\x03 \x01(\bR\x17disableQuarantineButton\x12*\n" + + "\x11hunt_expiry_hours\x18\x04 \x01(\x03R\x0fhuntExpiryHours\x126\n" + + "\x17indexed_client_metadata\x18\x05 \x03(\tR\x15indexedClientMetadata\"\x93\x04\n" + + "\x14SetGUIOptionsRequest\x12\x14\n" + + "\x05theme\x18\x02 \x01(\tR\x05theme\x12\x1a\n" + + "\btimezone\x18\x06 \x01(\tR\btimezone\x12\x12\n" + + "\x04lang\x18\x05 \x01(\tR\x04lang\x12)\n" + + "\x10default_password\x18\x03 \x01(\tR\x0fdefaultPassword\x124\n" + + "\x16default_downloads_lock\x18\x04 \x01(\bR\x14defaultDownloadsLock\x12\x18\n" + + "\aoptions\x18\x01 \x01(\tR\aoptions\x12\x10\n" + + "\x03org\x18\a \x01(\tR\x03org\x12@\n" + + "\x0ecustomizations\x18\b \x01(\v2\x18.proto.GUICustomizationsR\x0ecustomizations\x12$\n" + + "\x05links\x18\t \x03(\v2\x0e.proto.GUILinkR\x05links\x122\n" + + "\x15disable_server_events\x18\x1a \x01(\bR\x13disableServerEvents\x124\n" + + "\x16auth_redirect_template\x18\x1b \x01(\tR\x14authRedirectTemplate\x12:\n" + + "\x19disable_quarantine_button\x18\x1c \x01(\bR\x17disableQuarantineButton\x12\x1a\n" + + "\bmessages\x18\x1d \x01(\x03R\bmessages\":\n" + + "\x15SetGUIOptionsResponse\x12!\n" + + "\fredirect_url\x18\x01 \x01(\tR\vredirectUrl\"6\n" + + "\x05Users\x12-\n" + + "\x05users\x18\x01 \x03(\v2\x17.proto.VelociraptorUserR\x05users\"\xff\x01\n" + + "\tUserRoles\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" + + "\x03org\x18\x02 \x01(\tR\x03org\x12\x19\n" + + "\borg_name\x18\b \x01(\tR\aorgName\x12 \n" + + "\vpermissions\x18\x03 \x03(\tR\vpermissions\x12\x14\n" + + "\x05roles\x18\x04 \x03(\tR\x05roles\x123\n" + + "\x15effective_permissions\x18\x05 \x03(\tR\x14effectivePermissions\x12\x1b\n" + + "\tall_roles\x18\x06 \x03(\tR\ballRoles\x12'\n" + + "\x0fall_permissions\x18\a \x03(\tR\x0eallPermissions\"L\n" + + "\x12SetPasswordRequest\x12\x1a\n" + + "\bpassword\x18\x01 \x01(\tR\bpassword\x12\x1a\n" + + "\busername\x18\x02 \x01(\tR\busername\"}\n" + + "\bFavorite\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12 \n" + + "\vdescription\x18\x02 \x01(\tR\vdescription\x12'\n" + + "\x04spec\x18\x03 \x03(\v2\x13.proto.ArtifactSpecR\x04spec\x12\x12\n" + + "\x04type\x18\x04 \x01(\tR\x04type\"2\n" + + "\tFavorites\x12%\n" + + "\x05items\x18\x01 \x03(\v2\x0f.proto.FavoriteR\x05itemsB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_users_proto_rawDescOnce sync.Once - file_users_proto_rawDescData = file_users_proto_rawDesc + file_users_proto_rawDescData []byte ) func file_users_proto_rawDescGZIP() []byte { file_users_proto_rawDescOnce.Do(func() { - file_users_proto_rawDescData = protoimpl.X.CompressGZIP(file_users_proto_rawDescData) + file_users_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_users_proto_rawDesc), len(file_users_proto_rawDesc))) }) return file_users_proto_rawDescData } var file_users_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_users_proto_msgTypes = make([]protoimpl.MessageInfo, 16) -var file_users_proto_goTypes = []interface{}{ +var file_users_proto_goTypes = []any{ (ApiUser_UserType)(0), // 0: proto.ApiUser.UserType (*Strings)(nil), // 1: proto.Strings (*UserStats)(nil), // 2: proto.UserStats @@ -1706,205 +1518,11 @@ func file_users_proto_init() { return } file_orgs_proto_init() - if !protoimpl.UnsafeEnabled { - file_users_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Strings); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VelociraptorUser); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiUserInterfaceTraits); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiUser); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GUICustomizations); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGUIOptionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGUIOptionsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Users); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserRoles); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetPasswordRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Favorite); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_users_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Favorites); 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_users_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_users_proto_rawDesc), len(file_users_proto_rawDesc)), NumEnums: 1, NumMessages: 16, NumExtensions: 0, @@ -1916,7 +1534,6 @@ func file_users_proto_init() { MessageInfos: file_users_proto_msgTypes, }.Build() File_users_proto = out.File - file_users_proto_rawDesc = nil file_users_proto_goTypes = nil file_users_proto_depIdxs = nil } diff --git a/api/proto/vfs_api.pb.go b/api/proto/vfs_api.pb.go index b9b0dce0d..1310dcd99 100644 --- a/api/proto/vfs_api.pb.go +++ b/api/proto/vfs_api.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto "www.velocidex.com/golang/velociraptor/actions/proto" ) @@ -24,16 +25,13 @@ const ( // in the flow's collection and this protobuf contains the range of // rows within the collection that refers to this current directory. type VFSListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Response string `protobuf:"bytes,1,opt,name=Response,proto3" json:"Response,omitempty"` - Columns []string `protobuf:"bytes,2,rep,name=Columns,proto3" json:"Columns,omitempty"` - Query *proto.VQLRequest `protobuf:"bytes,3,opt,name=Query,proto3" json:"Query,omitempty"` - Timestamp uint64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - TotalRows uint64 `protobuf:"varint,7,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"` - Types []*proto.VQLTypeMap `protobuf:"bytes,8,rep,name=types,proto3" json:"types,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Response string `protobuf:"bytes,1,opt,name=Response,proto3" json:"Response,omitempty"` + Columns []string `protobuf:"bytes,2,rep,name=Columns,proto3" json:"Columns,omitempty"` + Query *proto.VQLRequest `protobuf:"bytes,3,opt,name=Query,proto3" json:"Query,omitempty"` + Timestamp uint64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + TotalRows uint64 `protobuf:"varint,7,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"` + Types []*proto.VQLTypeMap `protobuf:"bytes,8,rep,name=types,proto3" json:"types,omitempty"` // The actual artifact that contains the data. ClientId string `protobuf:"bytes,9,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` FlowId string `protobuf:"bytes,10,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` @@ -45,15 +43,15 @@ type VFSListResponse struct { // The version number that tracks the total download mutations in // this directory. DownloadVersion uint64 `protobuf:"varint,14,opt,name=download_version,json=downloadVersion,proto3" json:"download_version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *VFSListResponse) Reset() { *x = VFSListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vfs_api_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vfs_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VFSListResponse) String() string { @@ -64,7 +62,7 @@ func (*VFSListResponse) ProtoMessage() {} func (x *VFSListResponse) ProtoReflect() protoreflect.Message { mi := &file_vfs_api_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -164,22 +162,19 @@ func (x *VFSListResponse) GetDownloadVersion() uint64 { } type VFSStatDownloadRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + Accessor string `protobuf:"bytes,4,opt,name=accessor,proto3" json:"accessor,omitempty"` + Components []string `protobuf:"bytes,6,rep,name=components,proto3" json:"components,omitempty"` unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - Accessor string `protobuf:"bytes,4,opt,name=accessor,proto3" json:"accessor,omitempty"` - Components []string `protobuf:"bytes,6,rep,name=components,proto3" json:"components,omitempty"` + sizeCache protoimpl.SizeCache } func (x *VFSStatDownloadRequest) Reset() { *x = VFSStatDownloadRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vfs_api_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vfs_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VFSStatDownloadRequest) String() string { @@ -190,7 +185,7 @@ func (*VFSStatDownloadRequest) ProtoMessage() {} func (x *VFSStatDownloadRequest) ProtoReflect() protoreflect.Message { mi := &file_vfs_api_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -227,22 +222,19 @@ func (x *VFSStatDownloadRequest) GetComponents() []string { } type VFSListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - RecursionDepth uint64 `protobuf:"varint,3,opt,name=recursion_depth,json=recursionDepth,proto3" json:"recursion_depth,omitempty"` - VfsComponents []string `protobuf:"bytes,4,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + RecursionDepth uint64 `protobuf:"varint,3,opt,name=recursion_depth,json=recursionDepth,proto3" json:"recursion_depth,omitempty"` + VfsComponents []string `protobuf:"bytes,4,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *VFSListRequest) Reset() { *x = VFSListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vfs_api_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vfs_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VFSListRequest) String() string { @@ -253,7 +245,7 @@ func (*VFSListRequest) ProtoMessage() {} func (x *VFSListRequest) ProtoReflect() protoreflect.Message { mi := &file_vfs_api_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -290,22 +282,19 @@ func (x *VFSListRequest) GetVfsComponents() []string { } type VFSListRequestState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Components []string `protobuf:"bytes,4,rep,name=components,proto3" json:"components,omitempty"` + Accessor string `protobuf:"bytes,3,opt,name=accessor,proto3" json:"accessor,omitempty"` + Current *proto.VQLResponse `protobuf:"bytes,2,opt,name=current,proto3" json:"current,omitempty"` unknownFields protoimpl.UnknownFields - - Components []string `protobuf:"bytes,4,rep,name=components,proto3" json:"components,omitempty"` - Accessor string `protobuf:"bytes,3,opt,name=accessor,proto3" json:"accessor,omitempty"` - Current *proto.VQLResponse `protobuf:"bytes,2,opt,name=current,proto3" json:"current,omitempty"` + sizeCache protoimpl.SizeCache } func (x *VFSListRequestState) Reset() { *x = VFSListRequestState{} - if protoimpl.UnsafeEnabled { - mi := &file_vfs_api_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vfs_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VFSListRequestState) String() string { @@ -316,7 +305,7 @@ func (*VFSListRequestState) ProtoMessage() {} func (x *VFSListRequestState) ProtoReflect() protoreflect.Message { mi := &file_vfs_api_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -353,21 +342,18 @@ func (x *VFSListRequestState) GetCurrent() *proto.VQLResponse { } type VFSDownloadFileRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + VfsComponents []string `protobuf:"bytes,2,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` unknownFields protoimpl.UnknownFields - - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - VfsComponents []string `protobuf:"bytes,2,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` + sizeCache protoimpl.SizeCache } func (x *VFSDownloadFileRequest) Reset() { *x = VFSDownloadFileRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vfs_api_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vfs_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VFSDownloadFileRequest) String() string { @@ -378,7 +364,7 @@ func (*VFSDownloadFileRequest) ProtoMessage() {} func (x *VFSDownloadFileRequest) ProtoReflect() protoreflect.Message { mi := &file_vfs_api_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -408,11 +394,8 @@ func (x *VFSDownloadFileRequest) GetVfsComponents() []string { } type SearchFileRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - VfsComponents []string `protobuf:"bytes,2,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + VfsComponents []string `protobuf:"bytes,2,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` // If true pad sparse files. Padding bool `protobuf:"varint,7,opt,name=padding,proto3" json:"padding,omitempty"` // The term to search for @@ -423,16 +406,16 @@ type SearchFileRequest struct { Offset uint64 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"` // If true we search forward otherwise we search backwards from // the offset - Forward bool `protobuf:"varint,6,opt,name=forward,proto3" json:"forward,omitempty"` + Forward bool `protobuf:"varint,6,opt,name=forward,proto3" json:"forward,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SearchFileRequest) Reset() { *x = SearchFileRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vfs_api_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vfs_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchFileRequest) String() string { @@ -443,7 +426,7 @@ func (*SearchFileRequest) ProtoMessage() {} func (x *SearchFileRequest) ProtoReflect() protoreflect.Message { mi := &file_vfs_api_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -501,21 +484,18 @@ func (x *SearchFileRequest) GetForward() bool { } type SearchFileResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + VfsComponents []string `protobuf:"bytes,2,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` + Hit uint64 `protobuf:"varint,3,opt,name=hit,proto3" json:"hit,omitempty"` unknownFields protoimpl.UnknownFields - - VfsComponents []string `protobuf:"bytes,2,rep,name=vfs_components,json=vfsComponents,proto3" json:"vfs_components,omitempty"` - Hit uint64 `protobuf:"varint,3,opt,name=hit,proto3" json:"hit,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SearchFileResponse) Reset() { *x = SearchFileResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vfs_api_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vfs_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SearchFileResponse) String() string { @@ -526,7 +506,7 @@ func (*SearchFileResponse) ProtoMessage() {} func (x *SearchFileResponse) ProtoReflect() protoreflect.Message { mi := &file_vfs_api_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -557,100 +537,68 @@ func (x *SearchFileResponse) GetHit() uint64 { var File_vfs_api_proto protoreflect.FileDescriptor -var file_vfs_api_proto_rawDesc = []byte{ - 0x0a, 0x0d, 0x76, 0x66, 0x73, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x71, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0x89, 0x03, 0x0a, 0x0f, 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x05, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x56, 0x51, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x12, - 0x27, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, - 0x70, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x49, 0x64, 0x78, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x69, - 0x64, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x78, - 0x12, 0x29, 0x0a, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x64, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0x0a, 0x16, 0x56, - 0x46, 0x53, 0x53, 0x74, 0x61, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x7d, - 0x0a, 0x0e, 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, - 0x0f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x66, 0x73, 0x5f, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, - 0x76, 0x66, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x7f, 0x0a, - 0x13, 0x56, 0x46, 0x53, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x5c, - 0x0a, 0x16, 0x56, 0x46, 0x53, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x66, 0x73, 0x5f, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x76, - 0x66, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xae, 0x01, 0x0a, - 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x66, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x66, 0x73, 0x43, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4d, 0x0a, - 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x66, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x66, 0x73, - 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x69, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x68, 0x69, 0x74, 0x42, 0x31, 0x5a, 0x2f, - 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, - 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_vfs_api_proto_rawDesc = "" + + "\n" + + "\rvfs_api.proto\x12\x05proto\x1a\x17actions/proto/vql.proto\"\x89\x03\n" + + "\x0fVFSListResponse\x12\x1a\n" + + "\bResponse\x18\x01 \x01(\tR\bResponse\x12\x18\n" + + "\aColumns\x18\x02 \x03(\tR\aColumns\x12'\n" + + "\x05Query\x18\x03 \x01(\v2\x11.proto.VQLRequestR\x05Query\x12\x1c\n" + + "\ttimestamp\x18\x04 \x01(\x04R\ttimestamp\x12\x1d\n" + + "\n" + + "total_rows\x18\a \x01(\x04R\ttotalRows\x12'\n" + + "\x05types\x18\b \x03(\v2\x11.proto.VQLTypeMapR\x05types\x12\x1b\n" + + "\tclient_id\x18\t \x01(\tR\bclientId\x12\x17\n" + + "\aflow_id\x18\n" + + " \x01(\tR\x06flowId\x12\x1a\n" + + "\bartifact\x18\r \x01(\tR\bartifact\x12\x1b\n" + + "\tstart_idx\x18\v \x01(\x04R\bstartIdx\x12\x17\n" + + "\aend_idx\x18\f \x01(\x04R\x06endIdx\x12)\n" + + "\x10download_version\x18\x0e \x01(\x04R\x0fdownloadVersion\"q\n" + + "\x16VFSStatDownloadRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12\x1a\n" + + "\baccessor\x18\x04 \x01(\tR\baccessor\x12\x1e\n" + + "\n" + + "components\x18\x06 \x03(\tR\n" + + "components\"}\n" + + "\x0eVFSListRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12'\n" + + "\x0frecursion_depth\x18\x03 \x01(\x04R\x0erecursionDepth\x12%\n" + + "\x0evfs_components\x18\x04 \x03(\tR\rvfsComponents\"\x7f\n" + + "\x13VFSListRequestState\x12\x1e\n" + + "\n" + + "components\x18\x04 \x03(\tR\n" + + "components\x12\x1a\n" + + "\baccessor\x18\x03 \x01(\tR\baccessor\x12,\n" + + "\acurrent\x18\x02 \x01(\v2\x12.proto.VQLResponseR\acurrent\"\\\n" + + "\x16VFSDownloadFileRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12%\n" + + "\x0evfs_components\x18\x02 \x03(\tR\rvfsComponents\"\xae\x01\n" + + "\x11SearchFileRequest\x12%\n" + + "\x0evfs_components\x18\x02 \x03(\tR\rvfsComponents\x12\x18\n" + + "\apadding\x18\a \x01(\bR\apadding\x12\x12\n" + + "\x04term\x18\x03 \x01(\tR\x04term\x12\x12\n" + + "\x04type\x18\x04 \x01(\tR\x04type\x12\x16\n" + + "\x06offset\x18\x05 \x01(\x04R\x06offset\x12\x18\n" + + "\aforward\x18\x06 \x01(\bR\aforward\"M\n" + + "\x12SearchFileResponse\x12%\n" + + "\x0evfs_components\x18\x02 \x03(\tR\rvfsComponents\x12\x10\n" + + "\x03hit\x18\x03 \x01(\x04R\x03hitB1Z/www.velocidex.com/golang/velociraptor/api/protob\x06proto3" var ( file_vfs_api_proto_rawDescOnce sync.Once - file_vfs_api_proto_rawDescData = file_vfs_api_proto_rawDesc + file_vfs_api_proto_rawDescData []byte ) func file_vfs_api_proto_rawDescGZIP() []byte { file_vfs_api_proto_rawDescOnce.Do(func() { - file_vfs_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_vfs_api_proto_rawDescData) + file_vfs_api_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_vfs_api_proto_rawDesc), len(file_vfs_api_proto_rawDesc))) }) return file_vfs_api_proto_rawDescData } var file_vfs_api_proto_msgTypes = make([]protoimpl.MessageInfo, 7) -var file_vfs_api_proto_goTypes = []interface{}{ +var file_vfs_api_proto_goTypes = []any{ (*VFSListResponse)(nil), // 0: proto.VFSListResponse (*VFSStatDownloadRequest)(nil), // 1: proto.VFSStatDownloadRequest (*VFSListRequest)(nil), // 2: proto.VFSListRequest @@ -678,97 +626,11 @@ func file_vfs_api_proto_init() { if File_vfs_api_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vfs_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VFSListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vfs_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VFSStatDownloadRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vfs_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VFSListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vfs_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VFSListRequestState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vfs_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VFSDownloadFileRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vfs_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchFileRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vfs_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchFileResponse); 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_vfs_api_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_vfs_api_proto_rawDesc), len(file_vfs_api_proto_rawDesc)), NumEnums: 0, NumMessages: 7, NumExtensions: 0, @@ -779,7 +641,6 @@ func file_vfs_api_proto_init() { MessageInfos: file_vfs_api_proto_msgTypes, }.Build() File_vfs_api_proto = out.File - file_vfs_api_proto_rawDesc = nil file_vfs_api_proto_goTypes = nil file_vfs_api_proto_depIdxs = nil } diff --git a/api/replication.go b/api/replication.go index 0d95a23a2..b7dde8545 100644 --- a/api/replication.go +++ b/api/replication.go @@ -207,11 +207,13 @@ func (self *replicationTracker) Debug() []*ordereddict.Dict { sort.Strings(keys) for _, k := range keys { - v, _ := self.currentReplications[k] - result = append(result, ordereddict.NewDict(). - Set("Type", "Replication"). - Set("Name", k). - Set("Stats", v)) + v, ok := self.currentReplications[k] + if ok { + result = append(result, ordereddict.NewDict(). + Set("Type", "Replication"). + Set("Name", k). + Set("Stats", v)) + } } return result } diff --git a/api/tables/table.go b/api/tables/table.go index 3581ebd86..c0d4f1a0c 100644 --- a/api/tables/table.go +++ b/api/tables/table.go @@ -403,7 +403,7 @@ func ConvertRowsToTableResponse( json_out := make([]interface{}, 0, len(result.Columns)) for _, k := range result.Columns { - value, _ := data[k] + value := data[k] json_out = append(json_out, value) } serialized, err := json.MarshalWithOptions(json_out, opts) diff --git a/api/tables/timelines.go b/api/tables/timelines.go index 9733906f3..2df211f41 100644 --- a/api/tables/timelines.go +++ b/api/tables/timelines.go @@ -92,7 +92,7 @@ func ConvertTimelineRowsToTableResponse( json_out := make([]interface{}, 0, len(result.Columns)) for _, k := range result.Columns { - value, _ := data[k] + value := data[k] json_out = append(json_out, value) } serialized, err := json.MarshalWithOptions(json_out, opts) diff --git a/api/vql.go b/api/vql.go index 9afd86b14..363259580 100644 --- a/api/vql.go +++ b/api/vql.go @@ -24,7 +24,6 @@ import ( api_proto "www.velocidex.com/golang/velociraptor/api/proto" config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/json" - vjson "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/vql/acl_managers" @@ -74,7 +73,7 @@ func RunVQL( new_row = append(new_row, value) } - opts := vjson.DefaultEncOpts() + opts := json.DefaultEncOpts() serialized, err := json.MarshalWithOptions(new_row, opts) if err != nil { continue diff --git a/artifacts/proto/artifact.pb.go b/artifacts/proto/artifact.pb.go index 8560cce31..a8885db56 100644 --- a/artifacts/proto/artifact.pb.go +++ b/artifacts/proto/artifact.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" _ "www.velocidex.com/golang/velociraptor/proto" ) @@ -19,21 +20,18 @@ const ( ) type ArtifactEnv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ArtifactEnv) Reset() { *x = ArtifactEnv{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactEnv) String() string { @@ -44,7 +42,7 @@ func (*ArtifactEnv) ProtoMessage() {} func (x *ArtifactEnv) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -74,22 +72,19 @@ func (x *ArtifactEnv) GetValue() string { } type ColumnType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ColumnType) Reset() { *x = ColumnType{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ColumnType) String() string { @@ -100,7 +95,7 @@ func (*ColumnType) ProtoMessage() {} func (x *ColumnType) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -137,14 +132,11 @@ func (x *ColumnType) GetDescription() string { } type ArtifactParameter struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Default string `protobuf:"bytes,2,opt,name=default,proto3" json:"default,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Default string `protobuf:"bytes,2,opt,name=default,proto3" json:"default,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` // For type = choice Choices []string `protobuf:"bytes,6,rep,name=choices,proto3" json:"choices,omitempty"` FriendlyName string `protobuf:"bytes,5,opt,name=friendly_name,json=friendlyName,proto3" json:"friendly_name,omitempty"` @@ -153,16 +145,16 @@ type ArtifactParameter struct { // For type = artifactset ArtifactType string `protobuf:"bytes,8,opt,name=artifact_type,json=artifactType,proto3" json:"artifact_type,omitempty"` // For type = artifactset; - Sources bool `protobuf:"varint,9,opt,name=sources,proto3" json:"sources,omitempty"` + Sources bool `protobuf:"varint,9,opt,name=sources,proto3" json:"sources,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ArtifactParameter) Reset() { *x = ArtifactParameter{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactParameter) String() string { @@ -173,7 +165,7 @@ func (*ArtifactParameter) ProtoMessage() {} func (x *ArtifactParameter) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -252,24 +244,21 @@ func (x *ArtifactParameter) GetSources() bool { } type NotebookSourceCell struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Template string `protobuf:"bytes,1,opt,name=template,proto3" json:"template,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Output string `protobuf:"bytes,5,opt,name=output,proto3" json:"output,omitempty"` + Env []*ArtifactEnv `protobuf:"bytes,3,rep,name=env,proto3" json:"env,omitempty"` unknownFields protoimpl.UnknownFields - - Template string `protobuf:"bytes,1,opt,name=template,proto3" json:"template,omitempty"` - Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - Output string `protobuf:"bytes,5,opt,name=output,proto3" json:"output,omitempty"` - Env []*ArtifactEnv `protobuf:"bytes,3,rep,name=env,proto3" json:"env,omitempty"` + sizeCache protoimpl.SizeCache } func (x *NotebookSourceCell) Reset() { *x = NotebookSourceCell{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotebookSourceCell) String() string { @@ -280,7 +269,7 @@ func (*NotebookSourceCell) ProtoMessage() {} func (x *NotebookSourceCell) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -331,27 +320,24 @@ func (x *NotebookSourceCell) GetEnv() []*ArtifactEnv { } type ArtifactSource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` - Precondition string `protobuf:"bytes,1,opt,name=precondition,proto3" json:"precondition,omitempty"` - Query string `protobuf:"bytes,6,opt,name=query,proto3" json:"query,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + Precondition string `protobuf:"bytes,1,opt,name=precondition,proto3" json:"precondition,omitempty"` + Query string `protobuf:"bytes,6,opt,name=query,proto3" json:"query,omitempty"` // Deprecated - use query above for new artifacts. Queries []string `protobuf:"bytes,2,rep,name=queries,proto3" json:"queries,omitempty"` // Notebook cells that will be added as part of the source. - Notebook []*NotebookSourceCell `protobuf:"bytes,5,rep,name=notebook,proto3" json:"notebook,omitempty"` + Notebook []*NotebookSourceCell `protobuf:"bytes,5,rep,name=notebook,proto3" json:"notebook,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ArtifactSource) Reset() { *x = ArtifactSource{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactSource) String() string { @@ -362,7 +348,7 @@ func (*ArtifactSource) ProtoMessage() {} func (x *ArtifactSource) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -421,27 +407,24 @@ func (x *ArtifactSource) GetNotebook() []*NotebookSourceCell { // Deprecated - Reports have been replaced by notebooks. type Report struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Each report type will be handled differently. Read about the // different types in reporting.go Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // If specified we only allow the report to take this long. - Timeout uint64 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"` - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - Template string `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"` - Parameters []*ArtifactParameter `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty"` + Timeout uint64 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + Template string `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"` + Parameters []*ArtifactParameter `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Report) Reset() { *x = Report{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Report) String() string { @@ -452,7 +435,7 @@ func (*Report) ProtoMessage() {} func (x *Report) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -503,11 +486,8 @@ func (x *Report) GetParameters() []*ArtifactParameter { } type Artifact struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Aliases are other names by which the same artifact is known Aliases []string `protobuf:"bytes,21,rep,name=aliases,proto3" json:"aliases,omitempty"` Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` @@ -528,7 +508,7 @@ type Artifact struct { // permission (because there is no ACL enforcement on the client). // // Therefore we say this artifact implies the user has EXECVE - - // this is safe if the artifact takes steps to ensure the user + // this is safe if the aritfact takes steps to ensure the user // does not have arbitrary control over what to execute (for // example, if the artifact launches a tool with restricted // command line args). @@ -577,16 +557,16 @@ type Artifact struct { IsInherited bool `protobuf:"varint,26,opt,name=is_inherited,json=isInherited,proto3" json:"is_inherited,omitempty"` // Not read from the artifact definition but it is managed by the // repository. - Metadata *ArtifactMetadata `protobuf:"bytes,25,opt,name=metadata,proto3" json:"metadata,omitempty"` + Metadata *ArtifactMetadata `protobuf:"bytes,25,opt,name=metadata,proto3" json:"metadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Artifact) Reset() { *x = Artifact{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Artifact) String() string { @@ -597,7 +577,7 @@ func (*Artifact) ProtoMessage() {} func (x *Artifact) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -795,21 +775,18 @@ func (x *Artifact) GetMetadata() *ArtifactMetadata { } type ArtifactDescriptors struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*Artifact `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Tags []string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*Artifact `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` - Tags []string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ArtifactDescriptors) Reset() { *x = ArtifactDescriptors{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactDescriptors) String() string { @@ -820,7 +797,7 @@ func (*ArtifactDescriptors) ProtoMessage() {} func (x *ArtifactDescriptors) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -852,23 +829,20 @@ func (x *ArtifactDescriptors) GetTags() []string { // Artifact can have metadata associated with them. The metadata can // be manipulated by the user, even for built in artifacts. type ArtifactMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Do not show this artifact in the GUI search screen. - Hidden bool `protobuf:"varint,1,opt,name=hidden,proto3" json:"hidden,omitempty"` - Basic bool `protobuf:"varint,2,opt,name=basic,proto3" json:"basic,omitempty"` - Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"` + Hidden bool `protobuf:"varint,1,opt,name=hidden,proto3" json:"hidden,omitempty"` + Basic bool `protobuf:"varint,2,opt,name=basic,proto3" json:"basic,omitempty"` + Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ArtifactMetadata) Reset() { *x = ArtifactMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactMetadata) String() string { @@ -879,7 +853,7 @@ func (*ArtifactMetadata) ProtoMessage() {} func (x *ArtifactMetadata) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -916,20 +890,17 @@ func (x *ArtifactMetadata) GetTags() []string { } type ArtifactMetadataStorage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Metadata map[string]*ArtifactMetadata `protobuf:"bytes,1,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Metadata map[string]*ArtifactMetadata `protobuf:"bytes,1,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ArtifactMetadataStorage) Reset() { *x = ArtifactMetadataStorage{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactMetadataStorage) String() string { @@ -940,7 +911,7 @@ func (*ArtifactMetadataStorage) ProtoMessage() {} func (x *ArtifactMetadataStorage) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -963,11 +934,8 @@ func (x *ArtifactMetadataStorage) GetMetadata() map[string]*ArtifactMetadata { } type Tool struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The URL to fetch the tool from when we upload it the first // time, or when we update. Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` @@ -1028,16 +996,16 @@ type Tool struct { // copy it into the expected hash and clear this hash. InvalidHash string `protobuf:"bytes,17,opt,name=invalid_hash,json=invalidHash,proto3" json:"invalid_hash,omitempty"` // Additional versions of this tool. - Versions []*Tool `protobuf:"bytes,14,rep,name=versions,proto3" json:"versions,omitempty"` + Versions []*Tool `protobuf:"bytes,14,rep,name=versions,proto3" json:"versions,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Tool) Reset() { *x = Tool{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Tool) String() string { @@ -1048,7 +1016,7 @@ func (*Tool) ProtoMessage() {} func (x *Tool) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1191,21 +1159,18 @@ func (x *Tool) GetVersions() []*Tool { // Keep track of all the third party tools we know about. type ThirdParty struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Tools []*Tool `protobuf:"bytes,1,rep,name=tools,proto3" json:"tools,omitempty"` + Version uint64 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` unknownFields protoimpl.UnknownFields - - Tools []*Tool `protobuf:"bytes,1,rep,name=tools,proto3" json:"tools,omitempty"` - Version uint64 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ThirdParty) Reset() { *x = ThirdParty{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ThirdParty) String() string { @@ -1216,7 +1181,7 @@ func (*ThirdParty) ProtoMessage() {} func (x *ThirdParty) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1246,10 +1211,7 @@ func (x *ThirdParty) GetVersion() uint64 { } type Resources struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Default timeout for this artifact Timeout uint64 `protobuf:"varint,1,opt,name=timeout,proto3" json:"timeout,omitempty"` OpsPerSecond float32 `protobuf:"fixed32,4,opt,name=ops_per_second,json=opsPerSecond,proto3" json:"ops_per_second,omitempty"` @@ -1262,15 +1224,15 @@ type Resources struct { MaxBatchWait uint64 `protobuf:"varint,7,opt,name=max_batch_wait,json=maxBatchWait,proto3" json:"max_batch_wait,omitempty"` MaxBatchRows uint64 `protobuf:"varint,8,opt,name=max_batch_rows,json=maxBatchRows,proto3" json:"max_batch_rows,omitempty"` MaxBatchRowsBuffer uint64 `protobuf:"varint,9,opt,name=max_batch_rows_buffer,json=maxBatchRowsBuffer,proto3" json:"max_batch_rows_buffer,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Resources) Reset() { *x = Resources{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Resources) String() string { @@ -1281,7 +1243,7 @@ func (*Resources) ProtoMessage() {} func (x *Resources) ProtoReflect() protoreflect.Message { mi := &file_artifact_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1361,357 +1323,148 @@ func (x *Resources) GetMaxBatchRowsBuffer() uint64 { var File_artifact_proto protoreflect.FileDescriptor -var file_artifact_proto_rawDesc = []byte{ - 0x0a, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, - 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x35, 0x0a, - 0x0b, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x45, 0x6e, 0x76, 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, 0x22, 0x56, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x04, 0x0a, - 0x11, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x73, - 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x67, 0x65, 0x78, - 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x3a, - 0xe0, 0x01, 0xda, 0xfc, 0xe3, 0xc4, 0x01, 0xd9, 0x01, 0x0a, 0xd6, 0x01, 0x41, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, - 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x77, 0x68, 0x69, 0x63, - 0x68, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x20, 0x74, - 0x6f, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x4e, 0x4f, 0x54, - 0x45, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x2d, 0x20, - 0x69, 0x66, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x73, 0x6f, 0x6d, 0x65, - 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x50, 0x61, 0x72, - 0x73, 0x65, 0x28, 0x29, 0x20, 0x56, 0x51, 0x4c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x22, 0x96, 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x24, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x45, 0x6e, 0x76, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x22, 0xca, 0x05, 0x0a, 0x0e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0xaf, - 0x01, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x9a, 0x01, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x93, 0x01, 0x12, 0x90, 0x01, 0x54, 0x68, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, - 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x2e, 0x20, 0x54, - 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x69, 0x6c, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x20, 0x61, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x8d, 0x01, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x6b, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x65, 0x12, 0x63, - 0x41, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x20, 0x69, 0x74, 0x20, 0x63, 0x61, - 0x6e, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x68, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x44, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3e, 0x12, 0x3c, - 0x41, 0x20, 0x56, 0x51, 0x4c, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x0c, 0x70, 0x72, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x05, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x18, 0x12, 0x16, 0x41, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x20, - 0x56, 0x51, 0x4c, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x12, 0x74, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x42, 0x5a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x54, 0x12, 0x52, 0x51, 0x75, 0x65, 0x72, 0x69, - 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x72, 0x75, 0x6e, - 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x6c, 0x61, 0x73, 0x74, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, - 0x62, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, 0x52, 0x07, 0x71, - 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x65, 0x6c, 0x6c, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x29, 0xda, - 0xfc, 0xe3, 0xc4, 0x01, 0x23, 0x0a, 0x21, 0x57, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x67, 0x65, 0x74, 0x73, 0x20, 0x69, - 0x74, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x22, 0xd8, 0x02, 0x0a, 0x06, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x26, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x54, 0x79, 0x70, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x20, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x2c, 0x20, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x3a, 0x8d, 0x01, 0xda, 0xfc, 0xe3, 0xc4, 0x01, 0x86, 0x01, 0x0a, 0x83, 0x01, - 0x41, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, - 0x20, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x2e, 0x22, 0xc5, 0x0f, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x12, 0xb1, 0x01, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x9c, 0x01, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x95, 0x01, 0x12, 0x92, 0x01, 0x54, 0x68, 0x65, 0x20, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x2e, 0x20, 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x64, 0x6f, 0x74, 0x73, 0x2e, 0x20, 0x41, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x20, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x69, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x64, 0x6f, 0x74, 0x20, 0x65, 0x2e, 0x67, - 0x2e, 0x20, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x73, - 0x2e, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, - 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x51, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x29, 0x12, 0x27, 0x57, 0x68, 0x61, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x74, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x2e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x37, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x1f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x19, 0x12, 0x17, 0x41, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x2e, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x09, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x26, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x41, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x2e, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x46, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x17, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x26, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x41, 0x20, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x52, 0x0a, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x73, 0x0a, 0x14, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x42, 0x40, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3a, 0x12, 0x38, - 0x41, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, - 0x6f, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, - 0x13, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6d, 0x70, 0x6c, - 0x69, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, - 0x0a, 0x0b, 0x69, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x18, 0x1b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, - 0x12, 0x2e, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x12, 0x21, 0x0a, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x74, 0x6f, - 0x6f, 0x6c, 0x73, 0x12, 0x68, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x44, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x3e, 0x12, 0x3c, 0x41, 0x20, 0x56, 0x51, 0x4c, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, - 0x0c, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6c, 0x0a, - 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x32, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x2c, 0x12, 0x2a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x52, - 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x6e, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x5a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x54, 0x12, 0x52, 0x54, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x20, 0x43, 0x61, 0x6e, 0x20, 0x62, 0x65, - 0x20, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x2c, 0x20, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x2c, 0x20, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x2c, 0x20, 0x53, - 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x2c, 0x20, 0x49, 0x4e, 0x54, - 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x5a, 0x0a, 0x07, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x42, 0x29, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x23, 0x12, 0x21, 0x57, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, - 0x67, 0x65, 0x74, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x07, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x6a, 0x0a, 0x07, 0x69, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x42, 0x50, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x4a, - 0x12, 0x48, 0x41, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x27, 0x20, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x20, 0x56, 0x51, 0x4c, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x6c, 0x6f, - 0x61, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x52, 0x07, 0x69, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x12, 0x7b, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x63, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x5d, 0x12, 0x5b, 0x56, 0x51, 0x4c, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x20, 0x49, 0x74, 0x20, - 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x20, - 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x6d, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x44, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3e, 0x12, 0x3c, 0x41, 0x20, 0x6c, 0x69, 0x73, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, - 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x20, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, - 0x34, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, - 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x26, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x54, 0x68, 0x65, 0x20, - 0x72, 0x61, 0x77, 0x20, 0x59, 0x41, 0x4d, 0x4c, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x52, 0x03, 0x72, 0x61, 0x77, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, - 0x75, 0x69, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x62, - 0x75, 0x69, 0x6c, 0x74, 0x49, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, - 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, 0x6d, - 0x70, 0x69, 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x6c, 0x69, - 0x61, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, - 0x65, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x68, 0x65, - 0x72, 0x69, 0x74, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x7f, 0xda, 0xfc, 0xe3, 0xc4, - 0x01, 0x79, 0x0a, 0x77, 0x41, 0x6e, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, - 0x77, 0x72, 0x61, 0x70, 0x73, 0x20, 0x61, 0x20, 0x56, 0x51, 0x4c, 0x20, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x2c, 0x20, 0x64, - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x77, 0x61, 0x79, 0x2e, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6c, 0x20, - 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6e, 0x61, 0x6c, - 0x79, 0x7a, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x2e, 0x22, 0x50, 0x0a, 0x13, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x54, 0x0a, - 0x10, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x61, 0x73, - 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x61, 0x67, 0x73, 0x22, 0xb9, 0x01, 0x0a, 0x17, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, - 0x48, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 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, 0x54, 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, 0x2d, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0xc8, 0x04, 0x0a, 0x04, 0x54, 0x6f, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x25, - 0x0a, 0x0e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, - 0x67, 0x65, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, - 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x0e, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x55, 0x72, 0x6c, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x12, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, - 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x21, - 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x27, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, - 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x4a, 0x0a, 0x0b, 0x74, 0x68, - 0x69, 0x72, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x05, 0x74, 0x6f, 0x6f, - 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xcb, 0x02, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x24, - 0x0a, 0x0e, 0x6f, 0x70, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6f, 0x70, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x63, 0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x69, 0x6f, 0x70, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, - 0x61, 0x78, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, - 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, - 0x61, 0x78, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x77, - 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, - 0x6f, 0x77, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x12, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x77, 0x73, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x42, 0x37, 0x5a, 0x35, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, - 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, - 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_artifact_proto_rawDesc = "" + + "\n" + + "\x0eartifact.proto\x12\x05proto\x1a\x14proto/semantic.proto\"5\n" + + "\vArtifactEnv\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\"V\n" + + "\n" + + "ColumnType\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\"\x83\x04\n" + + "\x11ArtifactParameter\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" + + "\adefault\x18\x02 \x01(\tR\adefault\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\x12\x12\n" + + "\x04type\x18\x04 \x01(\tR\x04type\x12\x18\n" + + "\achoices\x18\x06 \x03(\tR\achoices\x12#\n" + + "\rfriendly_name\x18\x05 \x01(\tR\ffriendlyName\x12)\n" + + "\x10validating_regex\x18\a \x01(\tR\x0fvalidatingRegex\x12#\n" + + "\rartifact_type\x18\b \x01(\tR\fartifactType\x12\x18\n" + + "\asources\x18\t \x01(\bR\asources:\xe0\x01\xda\xfc\xe3\xc4\x01\xd9\x01\n" + + "\xd6\x01Artifacts may accept parameters which are added to the scope prior to execution. NOTE: all parameters are strings - if you need something else the query can unpack e.g. from JSON using the JSONParse() VQL function.\"\x96\x01\n" + + "\x12NotebookSourceCell\x12\x1a\n" + + "\btemplate\x18\x01 \x01(\tR\btemplate\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12\x12\n" + + "\x04name\x18\x04 \x01(\tR\x04name\x12\x16\n" + + "\x06output\x18\x05 \x01(\tR\x06output\x12$\n" + + "\x03env\x18\x03 \x03(\v2\x12.proto.ArtifactEnvR\x03env\"\xca\x05\n" + + "\x0eArtifactSource\x12\xaf\x01\n" + + "\x04name\x18\x03 \x01(\tB\x9a\x01\xe2\xfc\xe3\xc4\x01\x93\x01\x12\x90\x01The name of this artifact source. If not set we use the same of the artifact itself. The artifact compiler will generate a query with this name.R\x04name\x12\x8d\x01\n" + + "\vdescription\x18\x04 \x01(\tBk\xe2\xfc\xe3\xc4\x01e\x12cA description string for this source. Note it can be interpolated with other artifact descriptions.R\vdescription\x12h\n" + + "\fprecondition\x18\x01 \x01(\tBD\xe2\xfc\xe3\xc4\x01>\x12\x12\x12Timeout Error: Collection timed out after %v", - time.Now().Sub(start)) + time.Since(start)) // Cancel the main context. cancel() timed_cancel() @@ -432,7 +431,7 @@ func doQuery() error { start_time := time.Now() defer func() { - scope.Log("Completed query in %v", time.Now().Sub(start_time)) + scope.Log("Completed query in %v", time.Since(start_time)) }() if *trace_vql_flag { diff --git a/bin/reformat.go b/bin/reformat.go index 0b496ab85..fb4b9ffb5 100644 --- a/bin/reformat.go +++ b/bin/reformat.go @@ -34,11 +34,10 @@ func doReformat() error { defer cancel() sm, err := startup.StartToolServices(ctx, config_obj) - defer sm.Close() - if err != nil { return err } + defer sm.Close() logger := logging.GetLogger(config_obj, &logging.ToolComponent) @@ -75,7 +74,7 @@ func doReformat() error { AND copy(accessor="data", dest=_value, filename=Result.Artifact)) AND FALSE ` - err = runQueryWithEnv(query, builder, "json") + err = runQueryWithEnv(ctx, query, builder, "json") if err != nil { logger.Error("reformat: error running query: %v", query) } diff --git a/bin/repack.go b/bin/repack.go index 9d6e4c656..6c9a23552 100644 --- a/bin/repack.go +++ b/bin/repack.go @@ -115,11 +115,10 @@ func doRepack() error { defer cancel() sm, err := startup.StartToolServices(ctx, config_obj) - defer sm.Close() - if err != nil { return err } + defer sm.Close() output_path, err := filepath.Abs(*repack_command_output) if err != nil { diff --git a/bin/rpm.go b/bin/rpm.go index ec1ddf126..1d820f677 100644 --- a/bin/rpm.go +++ b/bin/rpm.go @@ -73,11 +73,10 @@ func doClientRPM() error { defer cancel() sm, err := startup.StartToolServices(ctx, blank_config) - defer sm.Close() - if err != nil { return err } + defer sm.Close() if *client_rpm_command_binary == "" { *client_rpm_command_binary, err = os.Executable() @@ -123,7 +122,7 @@ func doClientRPM() error { release=Release) ` - err = runQueryWithEnv(query, builder, "json") + err = runQueryWithEnv(ctx, query, builder, "json") if err != nil { return err } @@ -160,11 +159,10 @@ func doServerRPM() error { defer cancel() sm, err := startup.StartToolServices(ctx, blank_config) - defer sm.Close() - if err != nil { return err } + defer sm.Close() if *server_rpm_command_binary == "" { *server_rpm_command_binary, err = os.Executable() @@ -210,7 +208,7 @@ func doServerRPM() error { release=Release) ` - err = runQueryWithEnv(query, builder, "json") + err = runQueryWithEnv(ctx, query, builder, "json") if err != nil { return err } diff --git a/bin/tools.go b/bin/tools.go index 67464306d..2a1f0508e 100644 --- a/bin/tools.go +++ b/bin/tools.go @@ -68,11 +68,10 @@ func doThirdPartyShow() error { config_obj.Services = services.GenericToolServices() sm, err := startup.StartToolServices(ctx, config_obj) - defer sm.Close() - if err != nil { return err } + defer sm.Close() inventory_manager, err := services.GetInventory(config_obj) if err != nil { @@ -117,11 +116,10 @@ func doThirdPartyRm() error { config_obj.Services = services.GenericToolServices() sm, err := startup.StartToolServices(ctx, config_obj) - defer sm.Close() - if err != nil { return err } + defer sm.Close() inventory_manager, err := services.GetInventory(config_obj) if err != nil { @@ -146,11 +144,10 @@ func doThirdPartyUpload() error { config_obj.Services = services.GenericToolServices() sm, err := startup.StartToolServices(ctx, config_obj) - defer sm.Close() - if err != nil { return err } + defer sm.Close() filename := *third_party_upload_filename if filename == "" { diff --git a/bin/transforms.go b/bin/transforms.go index 80bb2b40f..d38de06ed 100644 --- a/bin/transforms.go +++ b/bin/transforms.go @@ -4,15 +4,13 @@ import ( "fmt" "strings" - errors "github.com/go-errors/errors" "www.velocidex.com/golang/velociraptor/utils" ) var ( + //lint:file-ignore U1000 This flag is handled especially. run_flag = app.Flag("run", "Run an artifact as a CLI tool."). - Short('r').String() - - stopError = errors.New("Stop") + Short('r').String() ) type STATE int @@ -158,9 +156,11 @@ func transformArgv(argv []string) ([]string, error) { runmode_args = append(runmode_args, arg) state.Pop() - // Something went horrible wrong! + // Something went horribly wrong! default: - break + return nil, fmt.Errorf( + "Parsing command line failed at arg %v with state %v", + arg, state) } } diff --git a/bin/unzip.go b/bin/unzip.go index 00e752b27..5b497601a 100644 --- a/bin/unzip.go +++ b/bin/unzip.go @@ -1,6 +1,7 @@ package main import ( + "context" "fmt" "log" "os" @@ -56,11 +57,10 @@ func doUnzip() error { config_obj.Services = services.GenericToolServices() sm, err := startup.StartToolServices(ctx, config_obj) - defer sm.Close() - if err != nil { return err } + defer sm.Close() filename, err := filepath.Abs(*unzip_cmd_file) if err != nil { @@ -86,13 +86,13 @@ func doUnzip() error { } if *unzip_cmd_list { - err = runUnzipList(builder) + err = runUnzipList(ctx, builder) } else if *unzip_cmd_print { - err = runUnzipPrint(builder) + err = runUnzipPrint(ctx, builder) } else { - err = runUnzipFiles(builder) + err = runUnzipFiles(ctx, builder) } if err != nil { return err @@ -101,7 +101,9 @@ func doUnzip() error { return logger.Error } -func runUnzipList(builder services.ScopeBuilder) error { +func runUnzipList( + ctx context.Context, + builder services.ScopeBuilder) error { query := ` SELECT OSPath.Path AS Filename, Size @@ -114,10 +116,12 @@ func runUnzipList(builder services.ScopeBuilder) error { query += " AND " + *unzip_cmd_filter } - return runQueryWithEnv(query, builder, *unzip_format) + return runQueryWithEnv(ctx, query, builder, *unzip_format) } -func runUnzipFiles(builder services.ScopeBuilder) error { +func runUnzipFiles( + ctx context.Context, + builder services.ScopeBuilder) error { builder.Uploader = &uploads.FileBasedUploader{ UploadDir: *unzip_path, } @@ -135,10 +139,12 @@ func runUnzipFiles(builder services.ScopeBuilder) error { query += " AND " + *unzip_cmd_filter } - return runQueryWithEnv(query, builder, *unzip_format) + return runQueryWithEnv(ctx, query, builder, *unzip_format) } -func runUnzipPrint(builder services.ScopeBuilder) error { +func runUnzipPrint( + ctx context.Context, + builder services.ScopeBuilder) error { query := ` SELECT * FROM foreach( row={ @@ -157,11 +163,12 @@ func runUnzipPrint(builder services.ScopeBuilder) error { query += " WHERE " + *unzip_cmd_filter } - return runQueryWithEnv(query, builder, *unzip_format) + return runQueryWithEnv(ctx, query, builder, *unzip_format) } func runQueryWithEnv( - query string, builder services.ScopeBuilder, format string) error { + ctx context.Context, query string, + builder services.ScopeBuilder, format string) error { manager, err := services.GetRepositoryManager(builder.Config) if err != nil { return err @@ -175,9 +182,6 @@ func runQueryWithEnv( return fmt.Errorf("Unable to parse VQL Query: %w", err) } - ctx, cancel := InstallSignalHandler(nil, scope) - defer cancel() - for _, vql := range vqls { scope.Log("Running query %v", vfilter.FormatToString(scope, vql)) diff --git a/bin/verify.go b/bin/verify.go index 12ae536c1..985470363 100644 --- a/bin/verify.go +++ b/bin/verify.go @@ -38,11 +38,10 @@ func doVerify() error { defer cancel() sm, err := startup.StartToolServices(ctx, config_obj) - defer sm.Close() - if err != nil { return err } + defer sm.Close() manager, err := services.GetRepositoryManager(config_obj) if err != nil { diff --git a/bin/vql.go b/bin/vql.go index eca742135..50e582fea 100644 --- a/bin/vql.go +++ b/bin/vql.go @@ -29,8 +29,7 @@ import ( "www.velocidex.com/golang/velociraptor/config" "www.velocidex.com/golang/velociraptor/constants" logging "www.velocidex.com/golang/velociraptor/logging" - "www.velocidex.com/golang/velociraptor/utils" - vutils "www.velocidex.com/golang/velociraptor/utils" + utils "www.velocidex.com/golang/velociraptor/utils" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter/types" ) @@ -231,7 +230,7 @@ func exportAccessors(old_data []*api_proto.Completion) []*api_proto.Completion { new_item.Metadata = metadata } - if !vutils.InString(new_item.Platforms, platform) { + if !utils.InString(new_item.Platforms, platform) { new_item.Platforms = append(new_item.Platforms, platform) sort.Strings(new_item.Platforms) } @@ -340,7 +339,7 @@ func doVQLExport() error { new_item.FreeFormArgs = item.FreeFormArgs } - if !vutils.InString(new_item.Platforms, platform) { + if !utils.InString(new_item.Platforms, platform) { new_item.Platforms = append(new_item.Platforms, platform) sort.Strings(new_item.Platforms) } @@ -388,7 +387,7 @@ func doVQLExport() error { new_item.FreeFormArgs = item.FreeFormArgs } - if !vutils.InString(new_item.Platforms, platform) { + if !utils.InString(new_item.Platforms, platform) { new_item.Platforms = append(new_item.Platforms, platform) sort.Strings(new_item.Platforms) } diff --git a/config/loader.go b/config/loader.go index e3b85d2aa..6acc9e606 100644 --- a/config/loader.go +++ b/config/loader.go @@ -541,7 +541,5 @@ func read_api_config_from_file(filename string) (*config_proto.Config, error) { } func debug(message string, args ...interface{}) { - return - // logging.Prelog(message, args...) } diff --git a/config/migration.go b/config/migration.go index 917ae4bfa..15073fcfd 100644 --- a/config/migration.go +++ b/config/migration.go @@ -10,6 +10,7 @@ import ( "www.velocidex.com/golang/velociraptor/logging" ) +//lint:file-ignore U1000 func deprecated is unused func deprecated(config_obj *config_proto.Config, name string) { logging.Prelog("Config contains deprecated field %v", name) } diff --git a/config/proto/config.pb.go b/config/proto/config.pb.go index 4d45690c4..542fb06d0 100644 --- a/config/proto/config.pb.go +++ b/config/proto/config.pb.go @@ -10,6 +10,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto "www.velocidex.com/golang/velociraptor/actions/proto" proto1 "www.velocidex.com/golang/velociraptor/artifacts/proto" _ "www.velocidex.com/golang/velociraptor/proto" @@ -27,30 +28,27 @@ const ( // queries. It will be written to config files as metadata about the // version that produced the config file. type Version struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` - Commit string `protobuf:"bytes,4,opt,name=commit,proto3" json:"commit,omitempty"` - BuildTime string `protobuf:"bytes,5,opt,name=build_time,json=buildTime,proto3" json:"build_time,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + Commit string `protobuf:"bytes,4,opt,name=commit,proto3" json:"commit,omitempty"` + BuildTime string `protobuf:"bytes,5,opt,name=build_time,json=buildTime,proto3" json:"build_time,omitempty"` // Populated by reading the writeback file. - InstallTime uint64 `protobuf:"varint,8,opt,name=install_time,json=installTime,proto3" json:"install_time,omitempty"` - CiBuildUrl string `protobuf:"bytes,6,opt,name=ci_build_url,json=ciBuildUrl,proto3" json:"ci_build_url,omitempty"` - Compiler string `protobuf:"bytes,7,opt,name=compiler,proto3" json:"compiler,omitempty"` - System string `protobuf:"bytes,9,opt,name=system,proto3" json:"system,omitempty"` - Architecture string `protobuf:"bytes,10,opt,name=architecture,proto3" json:"architecture,omitempty"` + InstallTime uint64 `protobuf:"varint,8,opt,name=install_time,json=installTime,proto3" json:"install_time,omitempty"` + CiBuildUrl string `protobuf:"bytes,6,opt,name=ci_build_url,json=ciBuildUrl,proto3" json:"ci_build_url,omitempty"` + Compiler string `protobuf:"bytes,7,opt,name=compiler,proto3" json:"compiler,omitempty"` + System string `protobuf:"bytes,9,opt,name=system,proto3" json:"system,omitempty"` + Architecture string `protobuf:"bytes,10,opt,name=architecture,proto3" json:"architecture,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Version) Reset() { *x = Version{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Version) String() string { @@ -61,7 +59,7 @@ func (*Version) ProtoMessage() {} func (x *Version) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -146,23 +144,20 @@ func (x *Version) GetArchitecture() string { return "" } -// A pointer to currently executing flows. +// A pointer to cuurently executing flows. type FlowCheckPoint struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` unknownFields protoimpl.UnknownFields - - FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` - Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + sizeCache protoimpl.SizeCache } func (x *FlowCheckPoint) Reset() { *x = FlowCheckPoint{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FlowCheckPoint) String() string { @@ -173,7 +168,7 @@ func (*FlowCheckPoint) ProtoMessage() {} func (x *FlowCheckPoint) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -204,10 +199,7 @@ func (x *FlowCheckPoint) GetPath() string { // The client's state which are persisted in the writeback file. type Writeback struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // When the client was installed (basically the timestamp of the // writeback file). InstallTime uint64 `protobuf:"varint,16,opt,name=install_time,json=installTime,proto3" json:"install_time,omitempty"` @@ -222,15 +214,15 @@ type Writeback struct { LastServerPem string `protobuf:"bytes,18,opt,name=last_server_pem,json=lastServerPem,proto3" json:"last_server_pem,omitempty"` EventQueries *proto.VQLEventTable `protobuf:"bytes,1,opt,name=event_queries,json=eventQueries,proto3" json:"event_queries,omitempty"` Checkpoints []*FlowCheckPoint `protobuf:"bytes,17,rep,name=checkpoints,proto3" json:"checkpoints,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Writeback) Reset() { *x = Writeback{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Writeback) String() string { @@ -241,7 +233,7 @@ func (*Writeback) ProtoMessage() {} func (x *Writeback) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -314,23 +306,20 @@ func (x *Writeback) GetCheckpoints() []*FlowCheckPoint { // TODO - refactor from api/orgs.proto type InitialOrgRecord struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // If this is empty we use the org id - Nonce string `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"` + Nonce string `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *InitialOrgRecord) Reset() { *x = InitialOrgRecord{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InitialOrgRecord) String() string { @@ -341,7 +330,7 @@ func (*InitialOrgRecord) ProtoMessage() {} func (x *InitialOrgRecord) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -382,22 +371,19 @@ func (x *InitialOrgRecord) GetNonce() string { // install`. We typically use an MSI to deploy (see the docs/wix/ // directory). type WindowsInstallerConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` - InstallPath string `protobuf:"bytes,2,opt,name=install_path,json=installPath,proto3" json:"install_path,omitempty"` - ServiceDescription string `protobuf:"bytes,3,opt,name=service_description,json=serviceDescription,proto3" json:"service_description,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + InstallPath string `protobuf:"bytes,2,opt,name=install_path,json=installPath,proto3" json:"install_path,omitempty"` + ServiceDescription string `protobuf:"bytes,3,opt,name=service_description,json=serviceDescription,proto3" json:"service_description,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *WindowsInstallerConfig) Reset() { *x = WindowsInstallerConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WindowsInstallerConfig) String() string { @@ -408,7 +394,7 @@ func (*WindowsInstallerConfig) ProtoMessage() {} func (x *WindowsInstallerConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -445,21 +431,18 @@ func (x *WindowsInstallerConfig) GetServiceDescription() string { } type DarwinInstallerConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + InstallPath string `protobuf:"bytes,2,opt,name=install_path,json=installPath,proto3" json:"install_path,omitempty"` unknownFields protoimpl.UnknownFields - - ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` - InstallPath string `protobuf:"bytes,2,opt,name=install_path,json=installPath,proto3" json:"install_path,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DarwinInstallerConfig) Reset() { *x = DarwinInstallerConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DarwinInstallerConfig) String() string { @@ -470,7 +453,7 @@ func (*DarwinInstallerConfig) ProtoMessage() {} func (x *DarwinInstallerConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -500,24 +483,21 @@ func (x *DarwinInstallerConfig) GetInstallPath() string { } type RingBufferConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MemorySize uint64 `protobuf:"varint,1,opt,name=memory_size,json=memorySize,proto3" json:"memory_size,omitempty"` - DiskSize uint64 `protobuf:"varint,2,opt,name=disk_size,json=diskSize,proto3" json:"disk_size,omitempty"` - FilenameLinux string `protobuf:"bytes,4,opt,name=filename_linux,json=filenameLinux,proto3" json:"filename_linux,omitempty"` - FilenameWindows string `protobuf:"bytes,5,opt,name=filename_windows,json=filenameWindows,proto3" json:"filename_windows,omitempty"` - FilenameDarwin string `protobuf:"bytes,6,opt,name=filename_darwin,json=filenameDarwin,proto3" json:"filename_darwin,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + MemorySize uint64 `protobuf:"varint,1,opt,name=memory_size,json=memorySize,proto3" json:"memory_size,omitempty"` + DiskSize uint64 `protobuf:"varint,2,opt,name=disk_size,json=diskSize,proto3" json:"disk_size,omitempty"` + FilenameLinux string `protobuf:"bytes,4,opt,name=filename_linux,json=filenameLinux,proto3" json:"filename_linux,omitempty"` + FilenameWindows string `protobuf:"bytes,5,opt,name=filename_windows,json=filenameWindows,proto3" json:"filename_windows,omitempty"` + FilenameDarwin string `protobuf:"bytes,6,opt,name=filename_darwin,json=filenameDarwin,proto3" json:"filename_darwin,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RingBufferConfig) Reset() { *x = RingBufferConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RingBufferConfig) String() string { @@ -528,7 +508,7 @@ func (*RingBufferConfig) ProtoMessage() {} func (x *RingBufferConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -579,12 +559,9 @@ func (x *RingBufferConfig) GetFilenameDarwin() string { } type ClientConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Labels []string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty"` - ServerUrls []string `protobuf:"bytes,8,rep,name=server_urls,json=serverUrls,proto3" json:"server_urls,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Labels []string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty"` + ServerUrls []string `protobuf:"bytes,8,rep,name=server_urls,json=serverUrls,proto3" json:"server_urls,omitempty"` // A proxy setting to use. Proxy string `protobuf:"bytes,32,opt,name=proxy,proto3" json:"proxy,omitempty"` // For more complex proxy configurations use this setting @@ -674,7 +651,7 @@ type ClientConfig struct { // reachable (for example if DNS is not available due to a network // isolation because of an ongoing incident), 123.123.123.123:443 // will be used as a fallback. - FallbackAddresses map[string]string `protobuf:"bytes,41,rep,name=fallback_addresses,json=fallbackAddresses,proto3" json:"fallback_addresses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + FallbackAddresses map[string]string `protobuf:"bytes,41,rep,name=fallback_addresses,json=fallbackAddresses,proto3" json:"fallback_addresses,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // If greater than 0 we install a local DNS cache. This is usually // not needed as most operating systems already have local DNS // caching resolvers. This DNS cache will be refreshed @@ -707,17 +684,17 @@ type ClientConfig struct { LowResourceMaxCpu uint64 `protobuf:"varint,52,opt,name=low_resource_max_cpu,json=lowResourceMaxCpu,proto3" json:"low_resource_max_cpu,omitempty"` // We determine we are running on a low resource machine if the // system has less than 2 cores. This allows to increase the - // threshold. Set to a large number to disable. + // threadhold. Set to a large number to disable. LowResourceCpuCount uint64 `protobuf:"varint,53,opt,name=low_resource_cpu_count,json=lowResourceCpuCount,proto3" json:"low_resource_cpu_count,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ClientConfig) Reset() { *x = ClientConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClientConfig) String() string { @@ -728,7 +705,7 @@ func (*ClientConfig) ProtoMessage() {} func (x *ClientConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1059,25 +1036,22 @@ func (x *ClientConfig) GetLowResourceCpuCount() uint64 { } type APIConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Publicly accessible hostname. - Hostname string `protobuf:"bytes,5,opt,name=hostname,proto3" json:"hostname,omitempty"` - BindAddress string `protobuf:"bytes,1,opt,name=bind_address,json=bindAddress,proto3" json:"bind_address,omitempty"` - BindPort uint32 `protobuf:"varint,2,opt,name=bind_port,json=bindPort,proto3" json:"bind_port,omitempty"` - BindScheme string `protobuf:"bytes,3,opt,name=bind_scheme,json=bindScheme,proto3" json:"bind_scheme,omitempty"` - PinnedGwName string `protobuf:"bytes,4,opt,name=pinned_gw_name,json=pinnedGwName,proto3" json:"pinned_gw_name,omitempty"` + Hostname string `protobuf:"bytes,5,opt,name=hostname,proto3" json:"hostname,omitempty"` + BindAddress string `protobuf:"bytes,1,opt,name=bind_address,json=bindAddress,proto3" json:"bind_address,omitempty"` + BindPort uint32 `protobuf:"varint,2,opt,name=bind_port,json=bindPort,proto3" json:"bind_port,omitempty"` + BindScheme string `protobuf:"bytes,3,opt,name=bind_scheme,json=bindScheme,proto3" json:"bind_scheme,omitempty"` + PinnedGwName string `protobuf:"bytes,4,opt,name=pinned_gw_name,json=pinnedGwName,proto3" json:"pinned_gw_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *APIConfig) Reset() { *x = APIConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *APIConfig) String() string { @@ -1088,7 +1062,7 @@ func (*APIConfig) ProtoMessage() {} func (x *APIConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1140,27 +1114,24 @@ func (x *APIConfig) GetPinnedGwName() string { // Configuration to be consumed by api clients. type ApiClientConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CaCertificate string `protobuf:"bytes,1,opt,name=ca_certificate,json=caCertificate,proto3" json:"ca_certificate,omitempty"` - ClientCert string `protobuf:"bytes,2,opt,name=client_cert,json=clientCert,proto3" json:"client_cert,omitempty"` - ClientPrivateKey string `protobuf:"bytes,3,opt,name=client_private_key,json=clientPrivateKey,proto3" json:"client_private_key,omitempty"` - ApiConnectionString string `protobuf:"bytes,4,opt,name=api_connection_string,json=apiConnectionString,proto3" json:"api_connection_string,omitempty"` - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - PinnedServerName string `protobuf:"bytes,6,opt,name=pinned_server_name,json=pinnedServerName,proto3" json:"pinned_server_name,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + CaCertificate string `protobuf:"bytes,1,opt,name=ca_certificate,json=caCertificate,proto3" json:"ca_certificate,omitempty"` + ClientCert string `protobuf:"bytes,2,opt,name=client_cert,json=clientCert,proto3" json:"client_cert,omitempty"` + ClientPrivateKey string `protobuf:"bytes,3,opt,name=client_private_key,json=clientPrivateKey,proto3" json:"client_private_key,omitempty"` + ApiConnectionString string `protobuf:"bytes,4,opt,name=api_connection_string,json=apiConnectionString,proto3" json:"api_connection_string,omitempty"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + PinnedServerName string `protobuf:"bytes,6,opt,name=pinned_server_name,json=pinnedServerName,proto3" json:"pinned_server_name,omitempty"` // This is 4mb by default but you can increase it if you like. MaxGrpcRecvSize uint64 `protobuf:"varint,7,opt,name=max_grpc_recv_size,json=maxGrpcRecvSize,proto3" json:"max_grpc_recv_size,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ApiClientConfig) Reset() { *x = ApiClientConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApiClientConfig) String() string { @@ -1171,7 +1142,7 @@ func (*ApiClientConfig) ProtoMessage() {} func (x *ApiClientConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1237,32 +1208,29 @@ func (x *ApiClientConfig) GetMaxGrpcRecvSize() uint64 { // Fine grained configuration of proxies for http connections. type ProxyConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Https string `protobuf:"bytes,1,opt,name=https,proto3" json:"https,omitempty"` - Http string `protobuf:"bytes,2,opt,name=http,proto3" json:"http,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Https string `protobuf:"bytes,1,opt,name=https,proto3" json:"https,omitempty"` + Http string `protobuf:"bytes,2,opt,name=http,proto3" json:"http,omitempty"` // A list of url regexp to match the url and connect to the // target. Use and empty string to denote direct connection. For // example: {"^https://localhost/": "", // // "^https://www.example.com/": "http://localhost:3182"} - ProxyUrlRegexp map[string]string `protobuf:"bytes,3,rep,name=proxy_url_regexp,json=proxyUrlRegexp,proto3" json:"proxy_url_regexp,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ProxyUrlRegexp map[string]string `protobuf:"bytes,3,rep,name=proxy_url_regexp,json=proxyUrlRegexp,proto3" json:"proxy_url_regexp,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Location of a PAC file (overrides the above settings). Pac string `protobuf:"bytes,4,opt,name=pac,proto3" json:"pac,omitempty"` // If this is set we ignore the HTTP_PROXY and HTTPS_PROXY // environment variables. IgnoreEnvironment bool `protobuf:"varint,5,opt,name=ignore_environment,json=ignoreEnvironment,proto3" json:"ignore_environment,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ProxyConfig) Reset() { *x = ProxyConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProxyConfig) String() string { @@ -1273,7 +1241,7 @@ func (*ProxyConfig) ProtoMessage() {} func (x *ProxyConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1324,13 +1292,10 @@ func (x *ProxyConfig) GetIgnoreEnvironment() bool { } type GUILink struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` - IconUrl string `protobuf:"bytes,3,opt,name=icon_url,json=iconUrl,proto3" json:"icon_url,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + IconUrl string `protobuf:"bytes,3,opt,name=icon_url,json=iconUrl,proto3" json:"icon_url,omitempty"` // This can be "sidebar" (default), "context" Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` // If set we open in new tab @@ -1341,16 +1306,16 @@ type GUILink struct { // Can be GET (default) or POST Method string `protobuf:"bytes,8,opt,name=method,proto3" json:"method,omitempty"` // If set we ignore this entry completely - Disabled bool `protobuf:"varint,9,opt,name=disabled,proto3" json:"disabled,omitempty"` + Disabled bool `protobuf:"varint,9,opt,name=disabled,proto3" json:"disabled,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GUILink) Reset() { *x = GUILink{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GUILink) String() string { @@ -1361,7 +1326,7 @@ func (*GUILink) ProtoMessage() {} func (x *GUILink) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1440,21 +1405,18 @@ func (x *GUILink) GetDisabled() bool { } type OIDCACL struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` + Permissions []string `protobuf:"bytes,2,rep,name=permissions,proto3" json:"permissions,omitempty"` unknownFields protoimpl.UnknownFields - - Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` - Permissions []string `protobuf:"bytes,2,rep,name=permissions,proto3" json:"permissions,omitempty"` + sizeCache protoimpl.SizeCache } func (x *OIDCACL) Reset() { *x = OIDCACL{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OIDCACL) String() string { @@ -1465,7 +1427,7 @@ func (*OIDCACL) ProtoMessage() {} func (x *OIDCACL) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1496,10 +1458,7 @@ func (x *OIDCACL) GetPermissions() []string { // Allow flexible claims in OIDC response - only set if you need to. type OIDCClaims struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the claim that represents the username (by default // this is 'email'). Be careful that this MUST be unique across // the domain! It is vulnerability to allow something like 'name' @@ -1516,7 +1475,7 @@ type OIDCClaims struct { // Velociraptor.Reader: // roles: // - reader - RoleMap map[string]*OIDCACL `protobuf:"bytes,3,rep,name=role_map,json=roleMap,proto3" json:"role_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + RoleMap map[string]*OIDCACL `protobuf:"bytes,3,rep,name=role_map,json=roleMap,proto3" json:"role_map,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Velociraptor usually requires the email_verified claim before // we can trust the email claim and use it as the // username. However, some IDP (e.g. Azure) do not set this. If @@ -1526,16 +1485,16 @@ type OIDCClaims struct { // velociraptor roles. The default behavior is to ensure the // user's ACL contains at least the OIDC roles. This is needed if // you want to be able to **remove** access from the IDP. - OverrideAcls bool `protobuf:"varint,5,opt,name=override_acls,json=overrideAcls,proto3" json:"override_acls,omitempty"` + OverrideAcls bool `protobuf:"varint,5,opt,name=override_acls,json=overrideAcls,proto3" json:"override_acls,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *OIDCClaims) Reset() { *x = OIDCClaims{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OIDCClaims) String() string { @@ -1546,7 +1505,7 @@ func (*OIDCClaims) ProtoMessage() {} func (x *OIDCClaims) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1597,15 +1556,12 @@ func (x *OIDCClaims) GetOverrideAcls() bool { } type Authenticator struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // OIDC/OAuth2 Authenticator (Google, Github, Azure etc). OidcIssuer string `protobuf:"bytes,4,opt,name=oidc_issuer,json=oidcIssuer,proto3" json:"oidc_issuer,omitempty"` OidcName string `protobuf:"bytes,18,opt,name=oidc_name,json=oidcName,proto3" json:"oidc_name,omitempty"` - OidcAuthUrlParams map[string]string `protobuf:"bytes,24,rep,name=oidc_auth_url_params,json=oidcAuthUrlParams,proto3" json:"oidc_auth_url_params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + OidcAuthUrlParams map[string]string `protobuf:"bytes,24,rep,name=oidc_auth_url_params,json=oidcAuthUrlParams,proto3" json:"oidc_auth_url_params,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Can be an img src for the avatar Avatar string `protobuf:"bytes,19,opt,name=avatar,proto3" json:"avatar,omitempty"` OauthClientId string `protobuf:"bytes,5,opt,name=oauth_client_id,json=oauthClientId,proto3" json:"oauth_client_id,omitempty"` @@ -1633,15 +1589,15 @@ type Authenticator struct { // How long to keep the session alive between auth flows - default // 24 hours DefaultSessionExpiryMin uint64 `protobuf:"varint,20,opt,name=default_session_expiry_min,json=defaultSessionExpiryMin,proto3" json:"default_session_expiry_min,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Authenticator) Reset() { *x = Authenticator{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Authenticator) String() string { @@ -1652,7 +1608,7 @@ func (*Authenticator) ProtoMessage() {} func (x *Authenticator) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1815,12 +1771,9 @@ func (x *Authenticator) GetDefaultSessionExpiryMin() uint64 { } type GUIConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - BindAddress string `protobuf:"bytes,1,opt,name=bind_address,json=bindAddress,proto3" json:"bind_address,omitempty"` - BindPort uint32 `protobuf:"varint,2,opt,name=bind_port,json=bindPort,proto3" json:"bind_port,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + BindAddress string `protobuf:"bytes,1,opt,name=bind_address,json=bindAddress,proto3" json:"bind_address,omitempty"` + BindPort uint32 `protobuf:"varint,2,opt,name=bind_port,json=bindPort,proto3" json:"bind_port,omitempty"` // A list of CIDR addresses from permitted networks. If this is // not set, permit all connections to the GUI from anywhere. AllowedCidr []string `protobuf:"bytes,23,rep,name=allowed_cidr,json=allowedCidr,proto3" json:"allowed_cidr,omitempty"` @@ -1828,7 +1781,7 @@ type GUIConfig struct { // header will be used in the allowed_cidr matching if specified. // NOTE: Only use this if you do have a reverse proxy in front of // the server. Otherwise an attacker can simply send this header - // to pretend to come from any IP address. If this setting is + // to pretent to come from any IP address. If this setting is // specified we take the src address from the header, otherwise // from the remote IP address. ForwardedProxyHeader string `protobuf:"bytes,24,opt,name=forwarded_proxy_header,json=forwardedProxyHeader,proto3" json:"forwarded_proxy_header,omitempty"` @@ -1860,15 +1813,15 @@ type GUIConfig struct { // token. Use this only when serving the JS from a different // domain than the API server. TrustedOrigins []string `protobuf:"bytes,25,rep,name=trusted_origins,json=trustedOrigins,proto3" json:"trusted_origins,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GUIConfig) Reset() { *x = GUIConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GUIConfig) String() string { @@ -1879,7 +1832,7 @@ func (*GUIConfig) ProtoMessage() {} func (x *GUIConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2007,22 +1960,19 @@ func (x *GUIConfig) GetTrustedOrigins() []string { } type GUIUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + PasswordHash string `protobuf:"bytes,2,opt,name=password_hash,json=passwordHash,proto3" json:"password_hash,omitempty"` + PasswordSalt string `protobuf:"bytes,3,opt,name=password_salt,json=passwordSalt,proto3" json:"password_salt,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - PasswordHash string `protobuf:"bytes,2,opt,name=password_hash,json=passwordHash,proto3" json:"password_hash,omitempty"` - PasswordSalt string `protobuf:"bytes,3,opt,name=password_salt,json=passwordSalt,proto3" json:"password_salt,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GUIUser) Reset() { *x = GUIUser{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GUIUser) String() string { @@ -2033,7 +1983,7 @@ func (*GUIUser) ProtoMessage() {} func (x *GUIUser) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2070,20 +2020,17 @@ func (x *GUIUser) GetPasswordSalt() string { } type CAConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + PrivateKey string `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` unknownFields protoimpl.UnknownFields - - PrivateKey string `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CAConfig) Reset() { *x = CAConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CAConfig) String() string { @@ -2094,7 +2041,7 @@ func (*CAConfig) ProtoMessage() {} func (x *CAConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2117,22 +2064,19 @@ func (x *CAConfig) GetPrivateKey() string { } type ReverseProxyConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Route string `protobuf:"bytes,1,opt,name=route,proto3" json:"route,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + RequireAuth bool `protobuf:"varint,3,opt,name=require_auth,json=requireAuth,proto3" json:"require_auth,omitempty"` unknownFields protoimpl.UnknownFields - - Route string `protobuf:"bytes,1,opt,name=route,proto3" json:"route,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` - RequireAuth bool `protobuf:"varint,3,opt,name=require_auth,json=requireAuth,proto3" json:"require_auth,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReverseProxyConfig) Reset() { *x = ReverseProxyConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReverseProxyConfig) String() string { @@ -2143,7 +2087,7 @@ func (*ReverseProxyConfig) ProtoMessage() {} func (x *ReverseProxyConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2180,10 +2124,7 @@ func (x *ReverseProxyConfig) GetRequireAuth() bool { } type DynDNSConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Type of DynDNS server. Currently supported: // * empty string or dyndns // * cloudflare @@ -2204,17 +2145,17 @@ type DynDNSConfig struct { // DNS server we query for our own hostname/ip mapping (default 8.8.8.8:53) DnsServer string `protobuf:"bytes,7,opt,name=dns_server,json=dnsServer,proto3" json:"dns_server,omitempty"` // cloudflare settings - required - ApiToken string `protobuf:"bytes,9,opt,name=api_token,json=apiToken,proto3" json:"api_token,omitempty"` - ZoneName string `protobuf:"bytes,10,opt,name=zone_name,json=zoneName,proto3" json:"zone_name,omitempty"` + ApiToken string `protobuf:"bytes,9,opt,name=api_token,json=apiToken,proto3" json:"api_token,omitempty"` + ZoneName string `protobuf:"bytes,10,opt,name=zone_name,json=zoneName,proto3" json:"zone_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DynDNSConfig) Reset() { *x = DynDNSConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DynDNSConfig) String() string { @@ -2225,7 +2166,7 @@ func (*DynDNSConfig) ProtoMessage() {} func (x *DynDNSConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2311,10 +2252,7 @@ func (x *DynDNSConfig) GetZoneName() string { } type FrontendResourceControl struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Connections are limited to this rate - faster client // connections will result in 500 errors which will in turn cause // the clients to back off. This mechanism allows the server to @@ -2384,22 +2322,22 @@ type FrontendResourceControl struct { // The maximum time in seconds the client will batch log messages // before forwarding them to the server (default 1 second). DefaultLogBatchTime uint64 `protobuf:"varint,31,opt,name=default_log_batch_time,json=defaultLogBatchTime,proto3" json:"default_log_batch_time,omitempty"` - // The maximum time in seconds the client will batch monitoring + // The maximum time in seconds the client will batch minitoring // log messages before forwarding them to the server (default 600 // second). DefaultMonitoringLogBatchTime uint64 `protobuf:"varint,32,opt,name=default_monitoring_log_batch_time,json=defaultMonitoringLogBatchTime,proto3" json:"default_monitoring_log_batch_time,omitempty"` // Disables file buffering for event queues. This may result in // poor performance under load. DisableFileBuffering bool `protobuf:"varint,33,opt,name=disable_file_buffering,json=disableFileBuffering,proto3" json:"disable_file_buffering,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FrontendResourceControl) Reset() { *x = FrontendResourceControl{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FrontendResourceControl) String() string { @@ -2410,7 +2348,7 @@ func (*FrontendResourceControl) ProtoMessage() {} func (x *FrontendResourceControl) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2566,10 +2504,7 @@ func (x *FrontendResourceControl) GetDisableFileBuffering() bool { } type FrontendConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Publicly accessible hostname for this frontend. Hostname string `protobuf:"bytes,19,opt,name=hostname,proto3" json:"hostname,omitempty"` // Address to bind frontend endpoint. Clients connect to this @@ -2580,7 +2515,7 @@ type FrontendConfig struct { // Serve the GUI from this base path instead of "/" BasePath string `protobuf:"bytes,25,opt,name=base_path,json=basePath,proto3" json:"base_path,omitempty"` // This allows the frontends to listen on plain HTTP - It is - // useful if you have SSL offloading (e.g. nginx). This is not + // useful if you have SSL offloading (e.g. ngix). This is not // configured by the wizard - you will need to manually configure // it. You better know what you are doing here! UsePlainHttp bool `protobuf:"varint,24,opt,name=use_plain_http,json=usePlainHttp,proto3" json:"use_plain_http,omitempty"` @@ -2591,15 +2526,15 @@ type FrontendConfig struct { RequireClientCertificates bool `protobuf:"varint,36,opt,name=require_client_certificates,json=requireClientCertificates,proto3" json:"require_client_certificates,omitempty"` // A proxy setting to use - Velociraptor needs to connect to // download tools. This setting will force it to go out over this - // proxy. NOTE- If you don't want your server to allow outbound - // connections, just set this to an non-existent setting. + // proxy. NOTE- If you dont want your server to allow outbound + // connections, just set this to an non existant setting. Proxy string `protobuf:"bytes,33,opt,name=proxy,proto3" json:"proxy,omitempty"` // For more complex proxy configurations use this setting // (overrides the `proxy` configuration above). ProxyConfig *ProxyConfig `protobuf:"bytes,37,opt,name=proxy_config,json=proxyConfig,proto3" json:"proxy_config,omitempty"` // These are used to secure the client/server communications - // Even when using external TLS certificates! This certificate - // must be signed by the Velociraptor root CA in all cases. If + // must be signed by the Velociraptor rooot CA in all cases. If // using an external TLS configuration this layer of encryption // happens **in addition** to the external TLS certificates. Certificate string `protobuf:"bytes,3,opt,name=certificate,proto3" json:"certificate,omitempty"` @@ -2627,7 +2562,7 @@ type FrontendConfig struct { // Below options are DEPRECATED - moved to resources by migration code. Concurrency uint64 `protobuf:"varint,9,opt,name=concurrency,proto3" json:"concurrency,omitempty"` MaxUploadSize uint64 `protobuf:"varint,11,opt,name=max_upload_size,json=maxUploadSize,proto3" json:"max_upload_size,omitempty"` - // Various performance related tweaks. + // Various performoance related tweaks. ExpectedClients int64 `protobuf:"varint,15,opt,name=expected_clients,json=expectedClients,proto3" json:"expected_clients,omitempty"` // Per client rate in bytes/sec PerClientUploadRate int64 `protobuf:"varint,21,opt,name=per_client_upload_rate,json=perClientUploadRate,proto3" json:"per_client_upload_rate,omitempty"` @@ -2643,15 +2578,15 @@ type FrontendConfig struct { CollectionErrorRegex string `protobuf:"bytes,35,opt,name=collection_error_regex,json=collectionErrorRegex,proto3" json:"collection_error_regex,omitempty"` // DEPRECATED - ignored. DoNotRedirect bool `protobuf:"varint,26,opt,name=do_not_redirect,json=doNotRedirect,proto3" json:"do_not_redirect,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FrontendConfig) Reset() { *x = FrontendConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FrontendConfig) String() string { @@ -2662,7 +2597,7 @@ func (*FrontendConfig) ProtoMessage() {} func (x *FrontendConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2909,10 +2844,7 @@ func (x *FrontendConfig) GetDoNotRedirect() bool { } type DatastoreConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // 4. FileBasedWithRPC - Large files are written to disk (File // store) but small files are accessed via RPC to a local // memcache server. This configuration is suitable for the @@ -2972,15 +2904,15 @@ type DatastoreConfig struct { // Experimental - do not set in configs yet! MinionImplementation string `protobuf:"bytes,7,opt,name=minion_implementation,json=minionImplementation,proto3" json:"minion_implementation,omitempty"` MasterImplementation string `protobuf:"bytes,8,opt,name=master_implementation,json=masterImplementation,proto3" json:"master_implementation,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DatastoreConfig) Reset() { *x = DatastoreConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DatastoreConfig) String() string { @@ -2991,7 +2923,7 @@ func (*DatastoreConfig) ProtoMessage() {} func (x *DatastoreConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3142,22 +3074,19 @@ func (x *DatastoreConfig) GetMasterImplementation() string { // This override occurs at config load times so you can see the final configuration using // velociraptor --minion --config server.config.yaml config show type MinionConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Used to override Defaults.notebook_number_of_local_workers NotebookNumberOfLocalWorkers int64 `protobuf:"varint,1,opt,name=notebook_number_of_local_workers,json=notebookNumberOfLocalWorkers,proto3" json:"notebook_number_of_local_workers,omitempty"` NotebookWorkerPriority int64 `protobuf:"varint,2,opt,name=notebook_worker_priority,json=notebookWorkerPriority,proto3" json:"notebook_worker_priority,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MinionConfig) Reset() { *x = MinionConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MinionConfig) String() string { @@ -3168,7 +3097,7 @@ func (*MinionConfig) ProtoMessage() {} func (x *MinionConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3199,25 +3128,22 @@ func (x *MinionConfig) GetNotebookWorkerPriority() int64 { // Configuration for the mail server. type MailConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + Server string `protobuf:"bytes,2,opt,name=server,proto3" json:"server,omitempty"` + ServerPort uint64 `protobuf:"varint,3,opt,name=server_port,json=serverPort,proto3" json:"server_port,omitempty"` + AuthUsername string `protobuf:"bytes,4,opt,name=auth_username,json=authUsername,proto3" json:"auth_username,omitempty"` + AuthPassword string `protobuf:"bytes,5,opt,name=auth_password,json=authPassword,proto3" json:"auth_password,omitempty"` + SkipVerify bool `protobuf:"varint,6,opt,name=skip_verify,json=skipVerify,proto3" json:"skip_verify,omitempty"` unknownFields protoimpl.UnknownFields - - From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` - Server string `protobuf:"bytes,2,opt,name=server,proto3" json:"server,omitempty"` - ServerPort uint64 `protobuf:"varint,3,opt,name=server_port,json=serverPort,proto3" json:"server_port,omitempty"` - AuthUsername string `protobuf:"bytes,4,opt,name=auth_username,json=authUsername,proto3" json:"auth_username,omitempty"` - AuthPassword string `protobuf:"bytes,5,opt,name=auth_password,json=authPassword,proto3" json:"auth_password,omitempty"` - SkipVerify bool `protobuf:"varint,6,opt,name=skip_verify,json=skipVerify,proto3" json:"skip_verify,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MailConfig) Reset() { *x = MailConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MailConfig) String() string { @@ -3228,7 +3154,7 @@ func (*MailConfig) ProtoMessage() {} func (x *MailConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3286,25 +3212,22 @@ func (x *MailConfig) GetSkipVerify() bool { } type LoggingRetentionConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // How often to rotate the files in seconds. RotationTime uint64 `protobuf:"varint,3,opt,name=rotation_time,json=rotationTime,proto3" json:"rotation_time,omitempty"` // Maximum age of each file (File will be deleted after this time (1 year). MaxAge uint64 `protobuf:"varint,4,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"` // If this is true this log source is disabled. - Disabled bool `protobuf:"varint,5,opt,name=disabled,proto3" json:"disabled,omitempty"` + Disabled bool `protobuf:"varint,5,opt,name=disabled,proto3" json:"disabled,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LoggingRetentionConfig) Reset() { *x = LoggingRetentionConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LoggingRetentionConfig) String() string { @@ -3315,7 +3238,7 @@ func (*LoggingRetentionConfig) ProtoMessage() {} func (x *LoggingRetentionConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3352,10 +3275,7 @@ func (x *LoggingRetentionConfig) GetDisabled() bool { } type LoggingConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` OutputDirectory string `protobuf:"bytes,1,opt,name=output_directory,json=outputDirectory,proto3" json:"output_directory,omitempty"` SeparateLogsPerComponent bool `protobuf:"varint,2,opt,name=separate_logs_per_component,json=separateLogsPerComponent,proto3" json:"separate_logs_per_component,omitempty"` RotationTime uint64 `protobuf:"varint,3,opt,name=rotation_time,json=rotationTime,proto3" json:"rotation_time,omitempty"` @@ -3366,15 +3286,15 @@ type LoggingConfig struct { RemoteSyslogServer string `protobuf:"bytes,8,opt,name=remote_syslog_server,json=remoteSyslogServer,proto3" json:"remote_syslog_server,omitempty"` RemoteSyslogProtocol string `protobuf:"bytes,9,opt,name=remote_syslog_protocol,json=remoteSyslogProtocol,proto3" json:"remote_syslog_protocol,omitempty"` RemoteSyslogComponents []string `protobuf:"bytes,10,rep,name=remote_syslog_components,json=remoteSyslogComponents,proto3" json:"remote_syslog_components,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LoggingConfig) Reset() { *x = LoggingConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LoggingConfig) String() string { @@ -3385,7 +3305,7 @@ func (*LoggingConfig) ProtoMessage() {} func (x *LoggingConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3471,24 +3391,21 @@ func (x *LoggingConfig) GetRemoteSyslogComponents() []string { } type MonitoringConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - BindAddress string `protobuf:"bytes,1,opt,name=bind_address,json=bindAddress,proto3" json:"bind_address,omitempty"` - BindPort uint32 `protobuf:"varint,2,opt,name=bind_port,json=bindPort,proto3" json:"bind_port,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + BindAddress string `protobuf:"bytes,1,opt,name=bind_address,json=bindAddress,proto3" json:"bind_address,omitempty"` + BindPort uint32 `protobuf:"varint,2,opt,name=bind_port,json=bindPort,proto3" json:"bind_port,omitempty"` // If set we use this in links etc, otherwise we take a guess // based on bind_address and bind_port above. - MetricsUrl string `protobuf:"bytes,3,opt,name=metrics_url,json=metricsUrl,proto3" json:"metrics_url,omitempty"` + MetricsUrl string `protobuf:"bytes,3,opt,name=metrics_url,json=metricsUrl,proto3" json:"metrics_url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MonitoringConfig) Reset() { *x = MonitoringConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MonitoringConfig) String() string { @@ -3499,7 +3416,7 @@ func (*MonitoringConfig) ProtoMessage() {} func (x *MonitoringConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3536,21 +3453,18 @@ func (x *MonitoringConfig) GetMetricsUrl() string { } type AutoExecConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Argv []string `protobuf:"bytes,1,rep,name=argv,proto3" json:"argv,omitempty"` - ArtifactDefinitions []*proto1.Artifact `protobuf:"bytes,2,rep,name=artifact_definitions,json=artifactDefinitions,proto3" json:"artifact_definitions,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Argv []string `protobuf:"bytes,1,rep,name=argv,proto3" json:"argv,omitempty"` + ArtifactDefinitions []*proto1.Artifact `protobuf:"bytes,2,rep,name=artifact_definitions,json=artifactDefinitions,proto3" json:"artifact_definitions,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AutoExecConfig) Reset() { *x = AutoExecConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AutoExecConfig) String() string { @@ -3561,7 +3475,7 @@ func (*AutoExecConfig) ProtoMessage() {} func (x *AutoExecConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3592,50 +3506,47 @@ func (x *AutoExecConfig) GetArtifactDefinitions() []*proto1.Artifact { // Do not set these in the configuration file - they are used internally. type ServerServicesConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - HuntManager bool `protobuf:"varint,1,opt,name=hunt_manager,json=huntManager,proto3" json:"hunt_manager,omitempty"` - HuntDispatcher bool `protobuf:"varint,2,opt,name=hunt_dispatcher,json=huntDispatcher,proto3" json:"hunt_dispatcher,omitempty"` - StatsCollector bool `protobuf:"varint,3,opt,name=stats_collector,json=statsCollector,proto3" json:"stats_collector,omitempty"` - ServerMonitoring bool `protobuf:"varint,4,opt,name=server_monitoring,json=serverMonitoring,proto3" json:"server_monitoring,omitempty"` - ServerArtifacts bool `protobuf:"varint,5,opt,name=server_artifacts,json=serverArtifacts,proto3" json:"server_artifacts,omitempty"` - DynDns bool `protobuf:"varint,6,opt,name=dyn_dns,json=dynDns,proto3" json:"dyn_dns,omitempty"` - Interrogation bool `protobuf:"varint,7,opt,name=interrogation,proto3" json:"interrogation,omitempty"` - SanityChecker bool `protobuf:"varint,8,opt,name=sanity_checker,json=sanityChecker,proto3" json:"sanity_checker,omitempty"` - VfsService bool `protobuf:"varint,9,opt,name=vfs_service,json=vfsService,proto3" json:"vfs_service,omitempty"` - UserManager bool `protobuf:"varint,10,opt,name=user_manager,json=userManager,proto3" json:"user_manager,omitempty"` - ClientMonitoring bool `protobuf:"varint,11,opt,name=client_monitoring,json=clientMonitoring,proto3" json:"client_monitoring,omitempty"` - MonitoringService bool `protobuf:"varint,12,opt,name=monitoring_service,json=monitoringService,proto3" json:"monitoring_service,omitempty"` - ApiServer bool `protobuf:"varint,13,opt,name=api_server,json=apiServer,proto3" json:"api_server,omitempty"` - FrontendServer bool `protobuf:"varint,14,opt,name=frontend_server,json=frontendServer,proto3" json:"frontend_server,omitempty"` - GuiServer bool `protobuf:"varint,15,opt,name=gui_server,json=guiServer,proto3" json:"gui_server,omitempty"` - IndexServer bool `protobuf:"varint,16,opt,name=index_server,json=indexServer,proto3" json:"index_server,omitempty"` - JournalService bool `protobuf:"varint,17,opt,name=journal_service,json=journalService,proto3" json:"journal_service,omitempty"` - ReplicationService bool `protobuf:"varint,26,opt,name=replication_service,json=replicationService,proto3" json:"replication_service,omitempty"` - NotificationService bool `protobuf:"varint,18,opt,name=notification_service,json=notificationService,proto3" json:"notification_service,omitempty"` - RepositoryManager bool `protobuf:"varint,19,opt,name=repository_manager,json=repositoryManager,proto3" json:"repository_manager,omitempty"` - TestRepositoryManager bool `protobuf:"varint,25,opt,name=test_repository_manager,json=testRepositoryManager,proto3" json:"test_repository_manager,omitempty"` - InventoryService bool `protobuf:"varint,20,opt,name=inventory_service,json=inventoryService,proto3" json:"inventory_service,omitempty"` - ClientInfo bool `protobuf:"varint,21,opt,name=client_info,json=clientInfo,proto3" json:"client_info,omitempty"` - Label bool `protobuf:"varint,22,opt,name=label,proto3" json:"label,omitempty"` - Launcher bool `protobuf:"varint,23,opt,name=launcher,proto3" json:"launcher,omitempty"` - NotebookService bool `protobuf:"varint,24,opt,name=notebook_service,json=notebookService,proto3" json:"notebook_service,omitempty"` - SchedulerService bool `protobuf:"varint,29,opt,name=scheduler_service,json=schedulerService,proto3" json:"scheduler_service,omitempty"` - BackupService bool `protobuf:"varint,30,opt,name=backup_service,json=backupService,proto3" json:"backup_service,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + HuntManager bool `protobuf:"varint,1,opt,name=hunt_manager,json=huntManager,proto3" json:"hunt_manager,omitempty"` + HuntDispatcher bool `protobuf:"varint,2,opt,name=hunt_dispatcher,json=huntDispatcher,proto3" json:"hunt_dispatcher,omitempty"` + StatsCollector bool `protobuf:"varint,3,opt,name=stats_collector,json=statsCollector,proto3" json:"stats_collector,omitempty"` + ServerMonitoring bool `protobuf:"varint,4,opt,name=server_monitoring,json=serverMonitoring,proto3" json:"server_monitoring,omitempty"` + ServerArtifacts bool `protobuf:"varint,5,opt,name=server_artifacts,json=serverArtifacts,proto3" json:"server_artifacts,omitempty"` + DynDns bool `protobuf:"varint,6,opt,name=dyn_dns,json=dynDns,proto3" json:"dyn_dns,omitempty"` + Interrogation bool `protobuf:"varint,7,opt,name=interrogation,proto3" json:"interrogation,omitempty"` + SanityChecker bool `protobuf:"varint,8,opt,name=sanity_checker,json=sanityChecker,proto3" json:"sanity_checker,omitempty"` + VfsService bool `protobuf:"varint,9,opt,name=vfs_service,json=vfsService,proto3" json:"vfs_service,omitempty"` + UserManager bool `protobuf:"varint,10,opt,name=user_manager,json=userManager,proto3" json:"user_manager,omitempty"` + ClientMonitoring bool `protobuf:"varint,11,opt,name=client_monitoring,json=clientMonitoring,proto3" json:"client_monitoring,omitempty"` + MonitoringService bool `protobuf:"varint,12,opt,name=monitoring_service,json=monitoringService,proto3" json:"monitoring_service,omitempty"` + ApiServer bool `protobuf:"varint,13,opt,name=api_server,json=apiServer,proto3" json:"api_server,omitempty"` + FrontendServer bool `protobuf:"varint,14,opt,name=frontend_server,json=frontendServer,proto3" json:"frontend_server,omitempty"` + GuiServer bool `protobuf:"varint,15,opt,name=gui_server,json=guiServer,proto3" json:"gui_server,omitempty"` + IndexServer bool `protobuf:"varint,16,opt,name=index_server,json=indexServer,proto3" json:"index_server,omitempty"` + JournalService bool `protobuf:"varint,17,opt,name=journal_service,json=journalService,proto3" json:"journal_service,omitempty"` + ReplicationService bool `protobuf:"varint,26,opt,name=replication_service,json=replicationService,proto3" json:"replication_service,omitempty"` + NotificationService bool `protobuf:"varint,18,opt,name=notification_service,json=notificationService,proto3" json:"notification_service,omitempty"` + RepositoryManager bool `protobuf:"varint,19,opt,name=repository_manager,json=repositoryManager,proto3" json:"repository_manager,omitempty"` + TestRepositoryManager bool `protobuf:"varint,25,opt,name=test_repository_manager,json=testRepositoryManager,proto3" json:"test_repository_manager,omitempty"` + InventoryService bool `protobuf:"varint,20,opt,name=inventory_service,json=inventoryService,proto3" json:"inventory_service,omitempty"` + ClientInfo bool `protobuf:"varint,21,opt,name=client_info,json=clientInfo,proto3" json:"client_info,omitempty"` + Label bool `protobuf:"varint,22,opt,name=label,proto3" json:"label,omitempty"` + Launcher bool `protobuf:"varint,23,opt,name=launcher,proto3" json:"launcher,omitempty"` + NotebookService bool `protobuf:"varint,24,opt,name=notebook_service,json=notebookService,proto3" json:"notebook_service,omitempty"` + SchedulerService bool `protobuf:"varint,29,opt,name=scheduler_service,json=schedulerService,proto3" json:"scheduler_service,omitempty"` + BackupService bool `protobuf:"varint,30,opt,name=backup_service,json=backupService,proto3" json:"backup_service,omitempty"` // Client services HttpCommunicator bool `protobuf:"varint,27,opt,name=http_communicator,json=httpCommunicator,proto3" json:"http_communicator,omitempty"` ClientEventTable bool `protobuf:"varint,28,opt,name=client_event_table,json=clientEventTable,proto3" json:"client_event_table,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ServerServicesConfig) Reset() { *x = ServerServicesConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ServerServicesConfig) String() string { @@ -3646,7 +3557,7 @@ func (*ServerServicesConfig) ProtoMessage() {} func (x *ServerServicesConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3872,11 +3783,8 @@ func (x *ServerServicesConfig) GetClientEventTable() bool { } type Defaults struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - HuntExpiryHours int64 `protobuf:"varint,1,opt,name=hunt_expiry_hours,json=huntExpiryHours,proto3" json:"hunt_expiry_hours,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + HuntExpiryHours int64 `protobuf:"varint,1,opt,name=hunt_expiry_hours,json=huntExpiryHours,proto3" json:"hunt_expiry_hours,omitempty"` // How often to refresh the hunt index (default 600 sec) HuntDispatcherRefreshSec int64 `protobuf:"varint,43,opt,name=hunt_dispatcher_refresh_sec,json=huntDispatcherRefreshSec,proto3" json:"hunt_dispatcher_refresh_sec,omitempty"` HuntDispatcherRefreshRate uint64 `protobuf:"varint,60,opt,name=hunt_dispatcher_refresh_rate,json=huntDispatcherRefreshRate,proto3" json:"hunt_dispatcher_refresh_rate,omitempty"` @@ -3945,7 +3853,7 @@ type Defaults struct { MaxLogs uint64 `protobuf:"varint,56,opt,name=max_logs,json=maxLogs,proto3" json:"max_logs,omitempty"` MaxRowBufferSize uint64 `protobuf:"varint,31,opt,name=max_row_buffer_size,json=maxRowBufferSize,proto3" json:"max_row_buffer_size,omitempty"` MaxBatchWait uint64 `protobuf:"varint,35,opt,name=max_batch_wait,json=maxBatchWait,proto3" json:"max_batch_wait,omitempty"` - // Controls how exports work (creating hunt or collection exports + // Controls how exports work (creating hunt or colletion exports // to a zip file). ExportConcurrency int64 `protobuf:"varint,40,opt,name=export_concurrency,json=exportConcurrency,proto3" json:"export_concurrency,omitempty"` ExportMaxTimeoutSec int64 `protobuf:"varint,41,opt,name=export_max_timeout_sec,json=exportMaxTimeoutSec,proto3" json:"export_max_timeout_sec,omitempty"` @@ -3975,7 +3883,7 @@ type Defaults struct { // clients with the key department and value contains accounting // in their client metadata. IndexedClientMetadata []string `protobuf:"bytes,51,rep,name=indexed_client_metadata,json=indexedClientMetadata,proto3" json:"indexed_client_metadata,omitempty"` - // If this is set we do not actively check the status of in-flight + // If this is set we do not actively check the status of inflight // collections. This is a new feature and may need to be disabled // in some large deployments. DisableActiveInflightChecks bool `protobuf:"varint,52,opt,name=disable_active_inflight_checks,json=disableActiveInflightChecks,proto3" json:"disable_active_inflight_checks,omitempty"` @@ -3995,15 +3903,15 @@ type Defaults struct { LockdownDeniedPermissions []string `protobuf:"bytes,32,rep,name=lockdown_denied_permissions,json=lockdownDeniedPermissions,proto3" json:"lockdown_denied_permissions,omitempty"` CertificateValidityDays int64 `protobuf:"varint,33,opt,name=certificate_validity_days,json=certificateValidityDays,proto3" json:"certificate_validity_days,omitempty"` DisableInventoryServiceExternalAccess bool `protobuf:"varint,34,opt,name=disable_inventory_service_external_access,json=disableInventoryServiceExternalAccess,proto3" json:"disable_inventory_service_external_access,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Defaults) Reset() { *x = Defaults{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Defaults) String() string { @@ -4014,7 +3922,7 @@ func (*Defaults) ProtoMessage() {} func (x *Defaults) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4381,10 +4289,7 @@ func (x *Defaults) GetDisableInventoryServiceExternalAccess() bool { // Configures crypto preferences type CryptoConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Include these root CA's to verify certificates (in addition to // built in CA's). Certs should be concatenated in PEM format. RootCerts string `protobuf:"bytes,1,opt,name=root_certs,json=rootCerts,proto3" json:"root_certs,omitempty"` @@ -4427,15 +4332,15 @@ type CryptoConfig struct { // requires mTLS authentication. ClientCertificate string `protobuf:"bytes,5,opt,name=client_certificate,json=clientCertificate,proto3" json:"client_certificate,omitempty"` ClientCertificatePrivateKey string `protobuf:"bytes,6,opt,name=client_certificate_private_key,json=clientCertificatePrivateKey,proto3" json:"client_certificate_private_key,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CryptoConfig) Reset() { *x = CryptoConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CryptoConfig) String() string { @@ -4446,7 +4351,7 @@ func (*CryptoConfig) ProtoMessage() {} func (x *CryptoConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4504,22 +4409,19 @@ func (x *CryptoConfig) GetClientCertificatePrivateKey() string { } type MountPoint struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Accessor string `protobuf:"bytes,1,opt,name=accessor,proto3" json:"accessor,omitempty"` + Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"` + PathType string `protobuf:"bytes,3,opt,name=path_type,json=pathType,proto3" json:"path_type,omitempty"` unknownFields protoimpl.UnknownFields - - Accessor string `protobuf:"bytes,1,opt,name=accessor,proto3" json:"accessor,omitempty"` - Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"` - PathType string `protobuf:"bytes,3,opt,name=path_type,json=pathType,proto3" json:"path_type,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MountPoint) Reset() { *x = MountPoint{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MountPoint) String() string { @@ -4530,7 +4432,7 @@ func (*MountPoint) ProtoMessage() {} func (x *MountPoint) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4567,10 +4469,7 @@ func (x *MountPoint) GetPathType() string { } type RemappingConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Operation: Currently mount, identify Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // Human readable description of what this mapping rule should @@ -4593,15 +4492,15 @@ type RemappingConfig struct { // things that make no sense on an image). DisabledFunctions []string `protobuf:"bytes,8,rep,name=disabled_functions,json=disabledFunctions,proto3" json:"disabled_functions,omitempty"` DisabledPlugins []string `protobuf:"bytes,9,rep,name=disabled_plugins,json=disabledPlugins,proto3" json:"disabled_plugins,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RemappingConfig) Reset() { *x = RemappingConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemappingConfig) String() string { @@ -4612,7 +4511,7 @@ func (*RemappingConfig) ProtoMessage() {} func (x *RemappingConfig) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4706,14 +4605,11 @@ func (x *RemappingConfig) GetDisabledPlugins() []string { // Various security related configuration options for the server. type Security struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // A list of path prefixes allowed for the 'file' accessor. If // this is empty the file accessor will work on all // directories. If you want to disable access to the server's - // filesystem you can set this to a non-existent directory, + // filesystem you can set this to a non existent directory, // e.g. /nonexistent/ . AllowedFileAccessorPrefix []string `protobuf:"bytes,1,rep,name=allowed_file_accessor_prefix,json=allowedFileAccessorPrefix,proto3" json:"allowed_file_accessor_prefix,omitempty"` // Deny takes precedent over allow. @@ -4781,15 +4677,15 @@ type Security struct { // This allows communication with very old clients (pre // 0.68). Definitely not recommended. AllowAncientClients bool `protobuf:"varint,61,opt,name=allow_ancient_clients,json=allowAncientClients,proto3" json:"allow_ancient_clients,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Security) Reset() { *x = Security{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Security) String() string { @@ -4800,7 +4696,7 @@ func (*Security) ProtoMessage() {} func (x *Security) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4935,16 +4831,13 @@ func (x *Security) GetAllowAncientClients() bool { } type Config struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Version *Version `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty"` - Client *ClientConfig `protobuf:"bytes,1,opt,name=Client,proto3" json:"Client,omitempty"` - API *APIConfig `protobuf:"bytes,2,opt,name=API,proto3" json:"API,omitempty"` - GUI *GUIConfig `protobuf:"bytes,3,opt,name=GUI,proto3" json:"GUI,omitempty"` - CA *CAConfig `protobuf:"bytes,4,opt,name=CA,proto3" json:"CA,omitempty"` - Frontend *FrontendConfig `protobuf:"bytes,5,opt,name=Frontend,proto3" json:"Frontend,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Version *Version `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty"` + Client *ClientConfig `protobuf:"bytes,1,opt,name=Client,proto3" json:"Client,omitempty"` + API *APIConfig `protobuf:"bytes,2,opt,name=API,proto3" json:"API,omitempty"` + GUI *GUIConfig `protobuf:"bytes,3,opt,name=GUI,proto3" json:"GUI,omitempty"` + CA *CAConfig `protobuf:"bytes,4,opt,name=CA,proto3" json:"CA,omitempty"` + Frontend *FrontendConfig `protobuf:"bytes,5,opt,name=Frontend,proto3" json:"Frontend,omitempty"` // A list of possible frontends to use. When deployed in // multi-frontend configuration we select on those and populate // the Frontend field above. @@ -4953,7 +4846,7 @@ type Config struct { // Deprecated - Should not appear in new configs and will be // ignored. It is only here for backwards compatibility. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in config.proto. Writeback *Writeback `protobuf:"bytes,9,opt,name=Writeback,proto3" json:"Writeback,omitempty"` // Deprecated - Mail plugin setting are now provided by args. Mail *MailConfig `protobuf:"bytes,11,opt,name=Mail,proto3" json:"Mail,omitempty"` @@ -4997,16 +4890,16 @@ type Config struct { // to mitigate the case when a Velociraptor administrator's // account is compromised. The server can be taken out of lockdown // mode by setting lockdown to false and restarting the server. - Lockdown bool `protobuf:"varint,39,opt,name=lockdown,proto3" json:"lockdown,omitempty"` + Lockdown bool `protobuf:"varint,39,opt,name=lockdown,proto3" json:"lockdown,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Config) Reset() { *x = Config{} - if protoimpl.UnsafeEnabled { - mi := &file_config_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_config_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Config) String() string { @@ -5017,7 +4910,7 @@ func (*Config) ProtoMessage() {} func (x *Config) ProtoReflect() protoreflect.Message { mi := &file_config_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5088,7 +4981,7 @@ func (x *Config) GetDatastore() *DatastoreConfig { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in config.proto. func (x *Config) GetWriteback() *Writeback { if x != nil { return x.Writeback @@ -5231,1662 +5124,529 @@ func (x *Config) GetLockdown() bool { var File_config_proto protoreflect.FileDescriptor -var file_config_proto_rawDesc = []byte{ - 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x6d, - 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x71, 0x6c, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x04, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x14, 0x12, 0x12, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x27, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x4e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x26, 0x12, 0x24, 0x54, - 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x27, 0x73, 0x20, 0x6c, 0x6f, 0x6e, 0x67, - 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x61, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x47, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x41, 0x12, 0x3f, 0x54, 0x68, 0x65, 0x20, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x27, 0x73, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x73, - 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, - 0x6e, 0x67, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x2e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x27, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x21, 0x12, 0x1f, 0x54, 0x68, 0x65, - 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x27, 0x73, 0x20, 0x67, 0x69, 0x74, 0x20, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x41, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1c, - 0x12, 0x1a, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x2e, 0x52, 0x09, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x69, - 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x63, 0x69, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, - 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, - 0x74, 0x75, 0x72, 0x65, 0x22, 0x3d, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x22, 0x88, 0x05, 0x0a, 0x09, 0x57, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, - 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x2b, 0x12, 0x29, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x27, 0x73, 0x20, - 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x50, - 0x45, 0x4d, 0x20, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x0a, 0x70, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x60, 0x0a, 0x13, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x61, - 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x30, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2a, 0x12, 0x28, 0x54, 0x68, 0x65, 0x20, - 0x6c, 0x61, 0x73, 0x74, 0x20, 0x68, 0x75, 0x6e, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, - 0x72, 0x61, 0x6e, 0x2e, 0x52, 0x11, 0x68, 0x75, 0x6e, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0xe8, 0x01, 0x0a, 0x19, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x42, 0xac, 0x01, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0xa5, 0x01, 0x12, 0xa2, 0x01, 0x54, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x73, 0x74, - 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x73, 0x65, 0x72, - 0x69, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x77, 0x65, 0x20, 0x73, 0x61, - 0x77, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x20, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x72, 0x65, 0x66, 0x75, 0x73, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x6c, 0x64, - 0x65, 0x72, 0x20, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x20, 0x61, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x16, 0x6c, 0x61, 0x73, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x70, 0x65, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x73, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, 0x6d, 0x12, 0x39, 0x0a, 0x0d, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x51, 0x75, - 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x53, - 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4f, 0x72, 0x67, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, - 0x6e, 0x63, 0x65, 0x22, 0xea, 0x02, 0x0a, 0x16, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4d, - 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x24, 0x12, 0x22, 0x54, 0x68, - 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2e, - 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0xa1, 0x01, - 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x7e, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x78, 0x12, 0x76, 0x57, 0x68, - 0x65, 0x72, 0x65, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, - 0x65, 0x64, 0x3f, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x20, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x5d, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x26, 0x12, 0x24, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x12, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x8a, 0x02, 0x0a, 0x15, 0x44, 0x61, 0x72, 0x77, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4d, 0x0a, 0x0c, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x2a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x24, 0x12, 0x22, 0x54, 0x68, 0x65, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x0b, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0xa1, 0x01, 0x0a, 0x0c, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x7e, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x78, 0x12, 0x76, 0x57, 0x68, 0x65, 0x72, 0x65, 0x20, - 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, - 0x79, 0x20, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x3f, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, - 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x22, 0xd6, 0x04, - 0x0a, 0x10, 0x52, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x5e, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x3d, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x37, 0x12, - 0x35, 0x48, 0x6f, 0x77, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2e, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x6e, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x51, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x4b, 0x12, 0x49, 0x48, - 0x6f, 0x77, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x6f, 0x6e, 0x20, 0x64, 0x69, 0x73, - 0x6b, 0x20, 0x28, 0x30, 0x20, 0x6d, 0x65, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x20, 0x64, 0x69, 0x73, - 0x6b, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2e, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x78, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, - 0x69, 0x6e, 0x75, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x51, 0xe2, 0xfc, 0xe3, 0xc4, - 0x01, 0x4b, 0x12, 0x49, 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x28, 0x69, 0x66, - 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x77, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2e, 0x52, 0x0d, 0x66, - 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x12, 0x7c, 0x0a, 0x10, - 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x51, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x4b, 0x12, 0x49, - 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x28, 0x69, 0x66, 0x20, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0x20, 0x77, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, - 0x20, 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2e, 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x6e, - 0x61, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x12, 0x7a, 0x0a, 0x0f, 0x66, 0x69, - 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x72, 0x77, 0x69, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x51, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x4b, 0x12, 0x49, 0x4e, 0x61, 0x6d, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x28, 0x69, 0x66, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x20, - 0x77, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x29, 0x2e, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, - 0x44, 0x61, 0x72, 0x77, 0x69, 0x6e, 0x22, 0xc1, 0x1c, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x68, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x62, - 0x12, 0x60, 0x41, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x68, 0x61, - 0x73, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x68, 0x75, 0x6e, 0x74, - 0x73, 0x2e, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x61, 0x0a, 0x0b, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x40, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3a, 0x12, 0x38, 0x41, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, - 0x6f, 0x66, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x55, 0x52, 0x4c, 0x73, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x74, - 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, - 0x2e, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x12, 0x35, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x89, 0x01, 0x0a, 0x0e, 0x63, - 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x62, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x5c, 0x12, 0x5a, 0x54, 0x68, 0x65, - 0x20, 0x43, 0x41, 0x27, 0x73, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x50, 0x45, 0x4d, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x43, 0x41, 0x2e, 0x52, 0x0d, 0x63, 0x61, 0x43, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0xbb, 0x01, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0xa4, 0x01, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x9d, 0x01, - 0x12, 0x9a, 0x01, 0x41, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x63, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x6a, 0x65, 0x63, - 0x74, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x73, 0x6f, 0x20, 0x69, 0x74, 0x20, 0x6d, 0x75, - 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x20, 0x69, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x27, 0x73, 0x20, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x05, 0x6e, - 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x10, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, - 0x6b, 0x5f, 0x64, 0x61, 0x72, 0x77, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3b, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x35, 0x12, 0x33, 0x41, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x77, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x64, 0x61, 0x72, 0x77, 0x69, 0x6e, 0x20, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x0f, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x72, 0x77, 0x69, 0x6e, 0x12, 0x63, 0x0a, 0x0f, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x34, 0x12, 0x32, 0x41, - 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x75, - 0x78, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x2e, 0x52, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x6e, 0x75, - 0x78, 0x12, 0x69, 0x0a, 0x11, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x36, 0x12, 0x34, 0x41, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x10, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x62, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x12, 0x36, 0x0a, 0x17, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, - 0x5f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x32, 0x57, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x75, - 0x66, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x5f, - 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x6d, - 0x70, 0x64, 0x69, 0x72, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x65, 0x6d, - 0x70, 0x64, 0x69, 0x72, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x5f, 0x64, 0x61, - 0x72, 0x77, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x6d, 0x70, - 0x64, 0x69, 0x72, 0x44, 0x61, 0x72, 0x77, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, - 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x69, 0x6e, - 0x50, 0x6f, 0x6c, 0x6c, 0x12, 0x5b, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x42, 0x40, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3a, 0x12, 0x33, - 0x54, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x20, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x70, 0x6f, 0x6c, - 0x6c, 0x73, 0x2e, 0x32, 0x03, 0x36, 0x30, 0x30, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x50, 0x6f, 0x6c, - 0x6c, 0x12, 0x53, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x74, - 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x31, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2b, 0x12, - 0x25, 0x54, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x64, 0x65, - 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, - 0x70, 0x6f, 0x6c, 0x6c, 0x73, 0x2e, 0x32, 0x02, 0x33, 0x30, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x50, - 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x64, 0x12, 0x27, 0x0a, 0x10, 0x77, 0x73, 0x5f, 0x70, 0x69, 0x6e, - 0x67, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0d, 0x77, 0x73, 0x50, 0x69, 0x6e, 0x67, 0x57, 0x61, 0x69, 0x74, 0x53, 0x65, 0x63, 0x12, - 0x3b, 0x0a, 0x1a, 0x6e, 0x61, 0x6e, 0x6e, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x24, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x17, 0x6e, 0x61, 0x6e, 0x6e, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x7b, 0x0a, 0x11, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, - 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x2f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x29, 0x12, 0x27, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x52, 0x10, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x78, 0x0a, 0x10, 0x64, 0x61, 0x72, - 0x77, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x61, 0x72, 0x77, - 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x42, 0x2f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x29, 0x12, 0x27, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, - 0x72, 0x2e, 0x52, 0x0f, 0x64, 0x61, 0x72, 0x77, 0x69, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x65, - 0x78, 0x65, 0x63, 0x76, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x72, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x65, 0x63, 0x76, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x72, 0x0a, 0x10, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x04, 0x42, 0x48, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x42, 0x12, 0x40, 0x54, - 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x74, - 0x69, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x61, 0x69, 0x74, 0x20, 0x62, 0x65, 0x66, 0x6f, - 0x72, 0x65, 0x20, 0x77, 0x65, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x61, 0x6c, 0x20, 0x56, 0x51, 0x4c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x52, - 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x61, 0x78, 0x57, 0x61, 0x69, 0x74, 0x12, - 0xeb, 0x01, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x73, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x42, 0xbb, 0x01, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0xb4, 0x01, 0x12, 0xb1, 0x01, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x69, 0x73, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x20, 0x61, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4e, 0x4f, 0x54, 0x45, 0x3a, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x6d, 0x75, 0x73, - 0x74, 0x20, 0x62, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x20, - 0x43, 0x41, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x65, 0x6d, 0x62, 0x65, - 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x2e, 0x52, 0x10, 0x75, 0x73, 0x65, - 0x53, 0x65, 0x6c, 0x66, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x53, 0x73, 0x6c, 0x12, 0xc0, 0x01, - 0x0a, 0x12, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x91, 0x01, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x8a, 0x01, 0x12, 0x87, 0x01, 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x27, 0x73, 0x20, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x77, 0x65, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x20, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x70, 0x69, - 0x6e, 0x6e, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x56, 0x65, 0x6c, 0x6f, 0x63, - 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x29, 0x52, 0x10, - 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x6e, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x42, 0x46, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x40, 0x12, 0x3e, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x77, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x35, 0x6d, 0x62, - 0x29, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x64, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, - 0x69, 0x6e, 0x67, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, - 0x28, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x22, 0x12, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x2e, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x1d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x48, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x43, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x06, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x25, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x20, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x27, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x1c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x35, 0x0a, 0x17, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0xce, 0x01, 0x0a, 0x12, 0x66, 0x61, 0x6c, 0x6c, - 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x29, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x42, 0x73, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x6d, 0x12, 0x6b, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6d, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, 0x20, - 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, - 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x61, 0x79, 0x20, - 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x2e, 0x52, 0x11, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x64, 0x6e, 0x73, 0x5f, - 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x6d, 0x69, - 0x6e, 0x18, 0x36, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x64, 0x6e, 0x73, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4d, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x1a, - 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x18, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, - 0x67, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x6c, 0x6f, 0x67, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x30, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x31, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x65, 0x12, - 0x3d, 0x0a, 0x1b, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x33, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2f, - 0x0a, 0x14, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, - 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x18, 0x34, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6c, 0x6f, - 0x77, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x12, - 0x33, 0x0a, 0x16, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x63, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x35, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x13, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x70, 0x75, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x44, 0x0a, 0x16, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 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, 0xad, 0x04, 0x0a, 0x09, 0x41, - 0x50, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x99, 0x01, 0x0a, 0x0c, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x76, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x70, 0x12, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x69, 0x6e, 0x64, 0x20, 0x67, 0x52, 0x50, 0x43, 0x20, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, - 0x75, 0x73, 0x75, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, - 0x31, 0x32, 0x37, 0x2e, 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, - 0x77, 0x69, 0x73, 0x65, 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x6c, 0x79, 0x20, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, - 0x69, 0x74, 0x2e, 0x52, 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x35, 0x0a, 0x09, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x42, 0x18, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x12, 0x12, 0x10, 0x50, 0x6f, 0x72, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x2e, 0x52, 0x08, 0x62, - 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x62, 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x5f, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x3b, 0x12, 0x33, 0x41, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, - 0x20, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x74, 0x63, - 0x70, 0x2c, 0x20, 0x75, 0x6e, 0x69, 0x78, 0x29, 0x2e, 0x32, 0x04, 0x75, 0x6e, 0x69, 0x78, 0x52, - 0x0a, 0x62, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0xcc, 0x01, 0x0a, 0x0e, - 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x67, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x42, 0xa5, 0x01, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x9e, 0x01, 0x12, 0x9b, - 0x01, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x61, 0x72, 0x72, 0x79, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x20, 0x62, 0x65, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x73, 0x20, 0x61, 0x75, 0x74, 0x68, 0x20, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x2e, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x20, 0x28, 0x47, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x57, 0x29, 0x52, 0x0c, 0x70, 0x69, - 0x6e, 0x6e, 0x65, 0x64, 0x47, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf9, 0x04, 0x0a, 0x0f, 0x41, - 0x70, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x61, - 0x0a, 0x0e, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x34, 0x12, 0x32, - 0x54, 0x68, 0x65, 0x20, 0x43, 0x41, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x20, 0x41, 0x50, 0x49, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x52, 0x0d, 0x63, 0x61, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x12, 0x97, 0x01, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x72, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x76, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x70, 0x12, - 0x6e, 0x41, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, - 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x2e, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x27, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, - 0x74, 0x6f, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x61, 0x70, 0x69, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x27, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x52, - 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x12, 0x5d, 0x0a, 0x12, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x29, 0x12, - 0x27, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x74, 0x6f, 0x20, - 0x67, 0x6f, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x52, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x6e, 0x0a, 0x15, 0x61, 0x70, - 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x34, 0x12, 0x32, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x65, 0x72, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x70, 0x69, 0x20, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x52, 0x13, 0x61, 0x70, 0x69, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x25, - 0x12, 0x23, 0x54, 0x68, 0x65, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x20, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, - 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x6d, 0x61, 0x78, - 0x5f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x47, 0x72, 0x70, 0x63, 0x52, 0x65, - 0x63, 0x76, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x8d, 0x02, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x74, 0x74, 0x70, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x68, 0x74, 0x74, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, - 0x12, 0x50, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x72, 0x65, - 0x67, 0x65, 0x78, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, - 0x72, 0x6f, 0x78, 0x79, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x67, 0x65, 0x78, 0x70, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x67, 0x65, - 0x78, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x70, 0x61, 0x63, 0x12, 0x2d, 0x0a, 0x12, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x11, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x1a, 0x41, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x72, 0x6c, 0x52, - 0x65, 0x67, 0x65, 0x78, 0x70, 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, 0xe1, 0x01, 0x0a, 0x07, 0x47, 0x55, 0x49, 0x4c, 0x69, - 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x63, 0x6f, 0x6e, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x63, 0x6f, 0x6e, - 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x74, - 0x61, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x54, 0x61, 0x62, - 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x41, 0x0a, 0x07, 0x4f, 0x49, - 0x44, 0x43, 0x41, 0x43, 0x4c, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa0, 0x02, - 0x0a, 0x0a, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x39, - 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x5f, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x65, 0x6d, - 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x55, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, - 0x23, 0x0a, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x61, 0x63, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, - 0x41, 0x63, 0x6c, 0x73, 0x1a, 0x4a, 0x0a, 0x0c, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x49, - 0x44, 0x43, 0x41, 0x43, 0x4c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0xae, 0x0d, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x0b, 0x6f, 0x69, 0x64, 0x63, 0x5f, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x97, 0x01, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x90, 0x01, 0x12, 0x8d, 0x01, 0x55, 0x52, 0x4c, 0x20, 0x74, 0x6f, 0x20, - 0x4f, 0x49, 0x44, 0x43, 0x20, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, - 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x27, 0x6f, 0x69, 0x64, 0x63, 0x5f, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x20, 0x2b, 0x20, 0x2f, 0x2e, 0x77, 0x65, 0x6c, 0x6c, 0x2d, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x64, 0x2d, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x20, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x20, 0x52, 0x0a, 0x6f, 0x69, 0x64, 0x63, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x69, 0x64, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x5c, 0x0a, 0x14, 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x75, 0x72, 0x6c, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x4f, 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x55, 0x72, 0x6c, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6f, 0x69, 0x64, 0x63, - 0x41, 0x75, 0x74, 0x68, 0x55, 0x72, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, - 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x58, 0x0a, 0x0f, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2a, 0x12, 0x28, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x20, 0x61, 0x75, 0x74, 0x68, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6c, 0x6f, 0x77, 0x2e, - 0x52, 0x0d, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x60, 0x0a, 0x13, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x2a, 0x12, 0x28, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x52, 0x11, - 0x6f, 0x61, 0x75, 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x6f, 0x69, 0x64, 0x63, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x6f, 0x69, 0x64, 0x63, 0x44, 0x65, 0x62, 0x75, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x74, - 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x6e, - 0x61, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x61, 0x6d, 0x6c, 0x5f, 0x63, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x13, 0x12, 0x11, 0x53, 0x41, 0x4d, 0x4c, 0x20, 0x63, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x6c, 0x43, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x10, 0x73, 0x61, 0x6d, - 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x19, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x13, 0x12, 0x11, 0x53, 0x41, 0x4d, - 0x4c, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x2e, 0x52, 0x0e, - 0x73, 0x61, 0x6d, 0x6c, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x5f, - 0x0a, 0x15, 0x73, 0x61, 0x6d, 0x6c, 0x5f, 0x69, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x26, 0x12, 0x24, 0x53, 0x41, 0x4d, 0x4c, 0x20, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x20, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x55, 0x52, 0x4c, 0x2e, 0x52, 0x12, 0x73, 0x61, 0x6d, - 0x6c, 0x49, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x72, 0x6c, 0x12, - 0x3a, 0x0a, 0x0d, 0x73, 0x61, 0x6d, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x10, 0x12, 0x0e, - 0x53, 0x41, 0x4d, 0x4c, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x55, 0x52, 0x4c, 0x2e, 0x52, 0x0b, - 0x73, 0x61, 0x6d, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x70, 0x0a, 0x13, 0x73, - 0x61, 0x6d, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x40, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3a, - 0x12, 0x38, 0x53, 0x41, 0x4d, 0x4c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x11, 0x73, 0x61, 0x6d, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0xa9, 0x01, - 0x0a, 0x0f, 0x73, 0x61, 0x6d, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x65, - 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x42, 0x80, 0x01, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x7a, - 0x12, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x4c, 0x20, 0x75, 0x73, 0x65, - 0x72, 0x73, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x68, - 0x65, 0x6e, 0x20, 0x6e, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x72, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x62, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x2e, 0x52, 0x0d, 0x73, 0x61, 0x6d, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x18, 0x73, 0x61, 0x6d, - 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x70, 0x5f, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x74, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x26, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x20, 0x49, 0x64, 0x50, 0x2d, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x53, 0x41, 0x4d, 0x4c, 0x20, 0x66, 0x6c, - 0x6f, 0x77, 0x2e, 0x52, 0x15, 0x73, 0x61, 0x6d, 0x6c, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x64, - 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x12, 0x43, 0x0a, 0x12, 0x73, 0x75, - 0x62, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x11, 0x73, 0x75, - 0x62, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, - 0x69, 0x0a, 0x16, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x33, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2d, 0x12, 0x2b, 0x55, 0x52, 0x4c, 0x20, 0x74, 0x6f, 0x20, - 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x6e, 0x20, 0x55, - 0x6e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x41, 0x50, 0x49, 0x20, - 0x63, 0x61, 0x6c, 0x6c, 0x52, 0x14, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x1e, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x5f, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x16, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x1a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, - 0x46, 0x6f, 0x72, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x3b, - 0x0a, 0x1a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x1a, 0x44, 0x0a, 0x16, 0x4f, - 0x69, 0x64, 0x63, 0x41, 0x75, 0x74, 0x68, 0x55, 0x72, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 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, 0x09, 0x0a, 0x09, 0x47, 0x55, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x98, 0x01, 0x0a, 0x0c, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x75, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x6f, 0x12, 0x6d, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x20, - 0x47, 0x55, 0x49, 0x20, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x75, 0x73, 0x75, 0x61, 0x6c, 0x6c, - 0x79, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x31, 0x32, 0x37, 0x2e, 0x30, 0x2e, - 0x30, 0x2e, 0x31, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x62, - 0x65, 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x6c, 0x79, 0x20, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x69, 0x74, 0x2e, 0x52, 0x0b, 0x62, - 0x69, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x62, 0x69, - 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x18, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x12, 0x12, 0x10, 0x50, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x69, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x2e, 0x52, 0x08, 0x62, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x63, 0x69, 0x64, - 0x72, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x43, 0x69, 0x64, 0x72, 0x12, 0x34, 0x0a, 0x16, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x50, - 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, - 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x48, 0x74, 0x74, 0x70, - 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0xc3, 0x01, - 0x0a, 0x0e, 0x67, 0x77, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x9b, 0x01, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x94, 0x01, - 0x12, 0x91, 0x01, 0x54, 0x68, 0x65, 0x20, 0x47, 0x55, 0x49, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x73, - 0x65, 0x73, 0x20, 0x61, 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x52, 0x50, 0x43, 0x20, - 0x65, 0x6e, 0x64, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x6b, 0x65, - 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x52, 0x50, 0x43, 0x20, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x0d, 0x67, 0x77, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x12, 0x6b, 0x0a, 0x0e, 0x67, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x45, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x3f, 0x12, 0x3d, 0x54, 0x68, 0x65, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x65, 0x6e, 0x63, 0x6f, - 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x50, 0x45, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x2e, 0x52, 0x0c, 0x67, 0x77, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, - 0x12, 0x45, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x54, 0x68, - 0x65, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x09, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x12, 0x63, 0x0a, 0x0d, 0x72, 0x65, 0x76, 0x65, 0x72, - 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, - 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x23, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x1d, 0x12, 0x1b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x65, - 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x2e, 0x52, 0x0c, - 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x55, 0x0a, 0x05, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x55, 0x49, 0x4c, 0x69, 0x6e, 0x6b, 0x42, 0x2f, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x29, 0x12, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x55, 0x49, 0x2e, 0x52, 0x05, 0x6c, 0x69, - 0x6e, 0x6b, 0x73, 0x12, 0x33, 0x0a, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x47, 0x55, 0x49, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4f, 0x72, - 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, - 0x4f, 0x72, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x34, 0x0a, 0x16, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x14, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, - 0x64, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x22, - 0x67, 0x0a, 0x07, 0x47, 0x55, 0x49, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, - 0x73, 0x61, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x53, 0x61, 0x6c, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x08, 0x43, 0x41, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x96, 0x01, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x75, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x6f, 0x12, 0x6d, 0x54, 0x68, 0x65, 0x20, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x41, 0x20, 0x65, - 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x50, 0x45, 0x4d, 0x2e, 0x20, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x2e, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x2e, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x5f, - 0x0a, 0x12, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x22, - 0xc8, 0x02, 0x0a, 0x0c, 0x44, 0x79, 0x6e, 0x44, 0x4e, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x64, 0x6e, 0x73, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x64, 0x6e, - 0x73, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x64, 0x6e, - 0x73, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x64, 0x64, 0x6e, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x23, - 0x0a, 0x0d, 0x64, 0x64, 0x6e, 0x73, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x64, 0x6e, 0x73, 0x48, 0x6f, 0x73, 0x74, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, - 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x70, 0x55, 0x72, - 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x70, 0x69, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x70, 0x69, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, - 0x09, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x7a, 0x6f, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9d, 0x09, 0x0a, 0x17, 0x46, - 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x18, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x65, 0x72, - 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x28, - 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x48, 0x65, 0x61, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, - 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x63, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x60, 0x0a, 0x0f, 0x6d, 0x61, 0x78, - 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x38, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x32, 0x12, 0x30, 0x4d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x20, 0x77, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, - 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x52, 0x0d, 0x6d, 0x61, - 0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x70, 0x0a, 0x10, 0x65, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x03, 0x42, 0x45, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3f, 0x12, 0x3d, 0x45, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, - 0x66, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x28, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x31, 0x30, 0x30, 0x30, 0x30, 0x29, 0x52, 0x0f, 0x65, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, - 0x16, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x70, - 0x65, 0x72, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61, - 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x75, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, - 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x31, 0x0a, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x57, - 0x61, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x73, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x57, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x12, 0x38, 0x0a, - 0x18, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, - 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x16, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x6c, 0x72, 0x75, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x1b, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x4c, 0x72, 0x75, 0x54, 0x74, 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x1d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, - 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x5f, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x14, 0x6d, 0x61, 0x78, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x42, 0x75, 0x66, 0x66, 0x65, - 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x1f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4c, 0x6f, - 0x67, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x21, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, - 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x20, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x67, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x21, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, - 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x22, 0xa1, 0x13, 0x0a, 0x0e, 0x46, - 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x69, 0x6e, - 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x62, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x73, - 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, - 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x6c, - 0x61, 0x69, 0x6e, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x75, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x48, 0x74, 0x74, 0x70, 0x12, 0x3e, 0x0a, 0x1b, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x19, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x12, 0x35, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4e, 0x0a, 0x0b, 0x63, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x26, 0x12, 0x24, 0x58, 0x35, 0x30, 0x39, 0x20, 0x43, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x72, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x0b, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x70, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x45, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3f, 0x12, 0x3d, 0x54, 0x68, 0x65, 0x20, 0x70, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x65, - 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x50, 0x45, 0x4d, 0x20, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x16, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x74, - 0x6c, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, - 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, - 0x6c, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x64, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1f, 0x12, 0x1d, - 0x54, 0x68, 0x65, 0x20, 0x44, 0x4e, 0x53, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x2e, 0x52, 0x07, 0x64, - 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0xbb, 0x02, 0x0a, 0x19, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, - 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0xff, 0x01, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0xf8, 0x01, 0x12, 0xf5, 0x01, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x20, - 0x77, 0x65, 0x20, 0x64, 0x6f, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x3a, 0x20, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x65, 0x6e, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x6c, 0x69, 0x6b, 0x65, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6d, 0x61, 0x79, 0x20, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x69, 0x73, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, - 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x75, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x2e, 0x52, 0x16, 0x64, 0x6f, - 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x07, 0x64, 0x79, 0x6e, 0x5f, 0x64, 0x6e, 0x73, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x79, - 0x6e, 0x44, 0x4e, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x2c, 0xe2, 0xfc, 0xe3, 0xc4, - 0x01, 0x26, 0x12, 0x24, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x65, 0x20, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x79, 0x6e, 0x20, 0x64, 0x6e, 0x73, 0x20, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x06, 0x64, 0x79, 0x6e, 0x44, 0x6e, 0x73, - 0x12, 0x64, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3b, 0x12, 0x39, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x86, 0x01, 0x0a, 0x23, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x0e, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x37, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x31, 0x12, 0x2f, 0x54, 0x68, - 0x65, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2e, 0x52, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, - 0x8d, 0x01, 0x0a, 0x23, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09, 0x42, 0x3e, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x38, 0x12, 0x36, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, - 0x6e, 0x67, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2e, 0x52, 0x20, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, - 0x38, 0x0a, 0x18, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x16, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x7e, 0x0a, 0x0b, 0x72, 0x75, 0x6e, - 0x5f, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x5e, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x58, 0x12, 0x56, 0x54, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x64, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x73, - 0x2e, 0x20, 0x49, 0x66, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x65, 0x20, 0x72, 0x65, 0x66, 0x75, - 0x73, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x09, - 0x72, 0x75, 0x6e, 0x41, 0x73, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x12, 0x47, 0x52, 0x50, - 0x43, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x47, 0x52, 0x50, 0x43, 0x50, 0x6f, 0x6f, 0x6c, 0x4d, - 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x47, 0x52, 0x50, 0x43, 0x5f, 0x70, - 0x6f, 0x6f, 0x6c, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0f, 0x47, 0x52, 0x50, 0x43, 0x50, 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x78, 0x57, - 0x61, 0x69, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, - 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x12, 0x60, - 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x04, 0x42, 0x3e, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x38, 0x12, 0x36, 0x54, 0x68, 0x65, - 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x6c, 0x79, 0x2e, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, - 0x12, 0x60, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x42, 0x38, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x32, 0x12, 0x30, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, - 0x69, 0x6e, 0x20, 0x42, 0x79, 0x74, 0x65, 0x73, 0x20, 0x77, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, - 0x20, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x70, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x42, 0x45, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x3f, 0x12, 0x3d, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x28, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x31, 0x30, 0x30, - 0x30, 0x30, 0x29, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x70, 0x65, 0x72, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x55, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x67, 0x6c, 0x6f, - 0x62, 0x61, 0x6c, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x61, 0x69, 0x74, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x57, 0x61, 0x69, 0x74, 0x12, 0x44, 0x0a, 0x1e, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x20, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x1c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x14, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, - 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x22, 0xc2, - 0x08, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x12, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x69, 0x6e, - 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x6d, 0x62, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x69, - 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x4d, 0x62, 0x12, 0x37, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x0c, - 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, - 0x0a, 0x17, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x15, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x12, 0x43, 0x0a, 0x1e, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, - 0x68, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, - 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x75, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x1f, 0x6d, - 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x75, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x1c, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x44, 0x0a, - 0x1f, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, - 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x67, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, - 0x41, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x1f, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, - 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x6d, 0x65, - 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x6d, 0x65, 0x6d, - 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, - 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, - 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x46, 0x0a, 0x20, 0x6d, 0x65, 0x6d, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6d, - 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x1c, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x44, 0x0a, 0x1f, 0x6d, 0x65, 0x6d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x72, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x6d, 0x65, 0x6d, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x44, - 0x69, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x5f, 0x64, - 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x70, - 0x63, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x33, 0x0a, 0x15, 0x6d, 0x69, 0x6e, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x6e, - 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, - 0x0a, 0x15, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x4d, 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x20, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1c, - 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x18, - 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, - 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xaa, 0x03, 0x0a, 0x0a, 0x4d, 0x61, 0x69, 0x6c, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x65, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x51, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x4b, 0x12, 0x49, 0x57, 0x68, 0x65, - 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x20, 0x73, 0x68, 0x6f, - 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x2e, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x2e, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x3b, 0x0a, 0x06, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x1d, 0x12, 0x1b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x54, 0x50, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x1f, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x19, 0x12, 0x17, 0x50, 0x6f, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x53, 0x4d, 0x54, 0x50, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, - 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x0d, 0x61, - 0x75, 0x74, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x23, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1d, 0x12, 0x1b, 0x4e, 0x61, 0x6d, 0x65, - 0x20, 0x74, 0x6f, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x55, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x77, - 0x69, 0x74, 0x68, 0x2e, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x22, 0x72, 0x0a, 0x16, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, - 0x0d, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xfb, 0x05, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x75, 0x0a, 0x10, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x4a, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x44, 0x12, 0x42, 0x54, 0x68, 0x65, - 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x20, 0x49, 0x66, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x65, 0x20, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x20, 0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, - 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x12, 0x7a, 0x0a, 0x1b, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x67, - 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x3b, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x35, 0x12, 0x33, 0x49, - 0x66, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6c, 0x6f, 0x67, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x20, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x2e, 0x52, 0x18, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x73, - 0x50, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0d, - 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x42, 0x26, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x48, 0x6f, 0x77, - 0x20, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x0c, 0x72, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x6b, 0x0a, 0x07, 0x6d, 0x61, 0x78, - 0x5f, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x52, 0xe2, 0xfc, 0xe3, 0xc4, - 0x01, 0x4c, 0x12, 0x40, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x61, 0x67, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x46, 0x69, - 0x6c, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x69, - 0x6d, 0x65, 0x29, 0x2e, 0x32, 0x08, 0x33, 0x31, 0x35, 0x33, 0x36, 0x30, 0x30, 0x30, 0x52, 0x06, - 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x12, 0x31, 0x0a, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x33, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x74, - 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x79, - 0x73, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x73, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x73, - 0x6c, 0x6f, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x38, 0x0a, 0x18, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x5f, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x99, 0x02, 0x0a, 0x10, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x9f, 0x01, 0x0a, 0x0c, 0x62, - 0x69, 0x6e, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x7c, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x76, 0x12, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x75, 0x73, 0x75, 0x61, - 0x6c, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x31, 0x32, 0x37, 0x2e, - 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x2c, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, - 0x20, 0x62, 0x65, 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x6c, 0x79, 0x20, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x69, 0x74, 0x2e, 0x52, - 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x42, 0x0a, 0x09, - 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, - 0x25, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x1f, 0x12, 0x1d, 0x50, 0x6f, 0x72, 0x74, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x69, 0x6e, 0x64, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, - 0x20, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x52, 0x08, 0x62, 0x69, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x55, 0x72, - 0x6c, 0x22, 0x68, 0x0a, 0x0e, 0x41, 0x75, 0x74, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x76, 0x12, 0x42, 0x0a, 0x14, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x13, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc1, 0x09, 0x0a, 0x14, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68, 0x75, 0x6e, 0x74, - 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x68, 0x75, 0x6e, 0x74, 0x5f, - 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x68, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, - 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x73, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x79, 0x6e, 0x5f, 0x64, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x64, 0x79, 0x6e, 0x44, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x61, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x61, 0x6e, 0x69, 0x74, 0x79, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x66, 0x73, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x76, 0x66, - 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x75, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2d, 0x0a, 0x12, 0x6d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x70, 0x69, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, - 0x1d, 0x0a, 0x0a, 0x67, 0x75, 0x69, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x67, 0x75, 0x69, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x21, - 0x0a, 0x0c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6a, 0x6f, 0x75, 0x72, - 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2d, - 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x36, 0x0a, - 0x17, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, - 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x10, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x75, - 0x6e, 0x63, 0x68, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6c, 0x61, 0x75, - 0x6e, 0x63, 0x68, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, - 0x6b, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, - 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x68, 0x74, 0x74, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x22, - 0xa4, 0x15, 0x0a, 0x08, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x11, - 0x68, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x68, 0x6f, 0x75, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x68, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x70, - 0x69, 0x72, 0x79, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x68, 0x75, 0x6e, 0x74, - 0x5f, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x68, - 0x75, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x53, 0x65, 0x63, 0x12, 0x3f, 0x0a, 0x1c, 0x68, 0x75, 0x6e, 0x74, 0x5f, - 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x68, - 0x75, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x1e, 0x6e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6e, 0x65, 0x77, - 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x39, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x1a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x4e, 0x65, 0x77, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x39, 0x0a, 0x19, - 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x16, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x65, 0x6c, 0x6c, 0x54, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x1e, 0x6e, 0x6f, 0x74, 0x65, 0x62, - 0x6f, 0x6f, 0x6b, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x77, - 0x61, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x24, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x1a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x4c, - 0x6f, 0x77, 0x57, 0x61, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x44, 0x0a, 0x1f, 0x6e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x68, - 0x69, 0x67, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x25, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x1b, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x48, 0x69, 0x67, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x72, - 0x6b, 0x12, 0x45, 0x0a, 0x20, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x77, 0x61, - 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x77, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x5f, 0x6d, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x6e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x57, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4d, 0x73, 0x12, 0x46, 0x0a, 0x20, 0x6e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x26, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x1c, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x4f, 0x66, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, - 0x12, 0x38, 0x0a, 0x18, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x77, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x27, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x16, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x6e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x2a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x73, 0x76, 0x5f, 0x64, - 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x73, 0x76, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0e, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x57, 0x61, - 0x69, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, - 0x77, 0x61, 0x69, 0x74, 0x5f, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x12, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x57, 0x61, 0x69, 0x74, 0x4a, - 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x61, 0x6c, 0x6c, - 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x79, 0x41, 0x6c, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x6d, - 0x61, 0x78, 0x5f, 0x76, 0x66, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x6d, 0x61, 0x78, - 0x56, 0x66, 0x73, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x48, 0x0a, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1e, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x16, 0x6d, 0x61, - 0x78, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x5f, 0x62, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x49, - 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x2d, - 0x0a, 0x13, 0x61, 0x63, 0x6c, 0x5f, 0x6c, 0x72, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x61, 0x63, 0x6c, - 0x4c, 0x72, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x12, 0x45, 0x0a, - 0x1f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x6c, 0x72, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1c, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x72, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x53, 0x65, 0x63, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x70, 0x61, 0x72, - 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x61, 0x6e, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x34, 0x0a, - 0x16, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x74, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x61, - 0x75, 0x74, 0x68, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, - 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, - 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, - 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x68, 0x65, 0x6d, 0x65, - 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, - 0x68, 0x65, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x73, - 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73, 0x12, - 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x38, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x61, - 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x42, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, - 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x69, 0x74, 0x12, - 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x33, - 0x0a, 0x16, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x29, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x53, 0x65, 0x63, 0x12, 0x34, 0x0a, 0x16, 0x77, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x2c, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x14, 0x77, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x37, 0x0a, 0x18, 0x77, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x77, 0x61, 0x74, - 0x63, 0x68, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x70, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x13, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x45, 0x0a, 0x1f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x6b, 0x65, 0x65, 0x70, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x30, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x1c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x6f, 0x75, 0x73, 0x65, - 0x6b, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x3a, 0x0a, - 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x6f, 0x64, 0x65, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x6f, 0x64, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x72, 0x65, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, - 0x36, 0x0a, 0x17, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x33, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x1e, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, - 0x68, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, - 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x69, 0x6e, 0x66, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x5f, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x36, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x6e, - 0x69, 0x65, 0x64, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, - 0x6e, 0x69, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x37, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0f, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, - 0x12, 0x3e, 0x0a, 0x1b, 0x6c, 0x6f, 0x63, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x65, 0x6e, - 0x69, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x20, 0x20, 0x03, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x6f, 0x63, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x44, - 0x65, 0x6e, 0x69, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x3a, 0x0a, 0x19, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x21, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x17, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x44, 0x61, 0x79, 0x73, 0x12, 0x58, 0x0a, 0x29, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x25, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xad, 0x04, 0x0a, 0x0c, 0x43, 0x72, 0x79, 0x70, 0x74, - 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x6f, 0x74, 0x5f, - 0x63, 0x65, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x6f, 0x6f, - 0x74, 0x43, 0x65, 0x72, 0x74, 0x73, 0x12, 0x7f, 0x0a, 0x17, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x70, 0x72, 0x69, 0x6e, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x46, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x40, 0x12, - 0x3e, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x70, 0x72, 0x69, - 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x52, - 0x16, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x68, 0x75, 0x6d, - 0x62, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, 0x12, 0xd5, 0x01, 0x0a, 0x1d, 0x63, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x90, 0x01, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x89, 0x01, 0x12, 0x86, 0x01, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x61, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x77, - 0x68, 0x69, 0x63, 0x68, 0x20, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, - 0x72, 0x20, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x63, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x20, 0x41, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x3a, 0x20, 0x50, 0x4b, 0x49, - 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x29, 0x2c, 0x20, - 0x50, 0x4b, 0x49, 0x5f, 0x4f, 0x52, 0x5f, 0x54, 0x48, 0x55, 0x4d, 0x42, 0x50, 0x52, 0x49, 0x4e, - 0x54, 0x2c, 0x20, 0x54, 0x48, 0x55, 0x4d, 0x42, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x4e, - 0x4c, 0x59, 0x52, 0x1b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x31, 0x0a, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x74, 0x6c, - 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x57, 0x65, 0x61, 0x6b, 0x54, 0x6c, 0x73, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x12, 0x43, 0x0a, 0x1e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x5d, 0x0a, 0x0a, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, - 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, - 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x21, 0x0a, 0x02, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x02, 0x6f, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, - 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, - 0x03, 0x65, 0x6e, 0x76, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x45, 0x6e, 0x76, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x2d, - 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, - 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x22, 0x8a, 0x07, 0x0a, 0x08, 0x53, 0x65, 0x63, - 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x19, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x3d, 0x0a, 0x1b, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x64, 0x65, 0x6e, - 0x69, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x5f, 0x66, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x46, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x12, 0x39, 0x0a, 0x19, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x5f, 0x66, 0x73, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, - 0x3c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x46, 0x73, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x27, 0x0a, - 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x50, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, - 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x73, 0x18, 0x36, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, - 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x6e, 0x69, 0x65, - 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x37, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0f, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, - 0x6e, 0x69, 0x65, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x3e, 0x0a, - 0x1b, 0x6c, 0x6f, 0x63, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, - 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x20, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x19, 0x6c, 0x6f, 0x63, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x6e, 0x69, - 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, - 0x19, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x17, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x69, 0x74, 0x79, 0x44, 0x61, 0x79, 0x73, 0x12, 0x58, 0x0a, 0x29, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x25, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x5f, 0x64, - 0x65, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x73, 0x44, 0x65, 0x6b, 0x12, 0x2f, 0x0a, 0x14, 0x76, 0x71, 0x6c, 0x5f, 0x6d, 0x75, 0x73, 0x74, - 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x11, 0x76, 0x71, 0x6c, 0x4d, 0x75, 0x73, 0x74, 0x55, 0x73, 0x65, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, - 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0f, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, 0x64, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, - 0x73, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6e, 0x63, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x13, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x96, 0x0d, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x46, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x42, 0x1c, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x16, 0x12, 0x14, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x1d, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x17, 0x12, 0x15, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x06, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x50, 0x49, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x42, 0x2c, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x26, 0x12, 0x24, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, - 0x52, 0x50, 0x43, 0x20, 0x41, 0x50, 0x49, 0x20, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x2e, 0x52, 0x03, 0x41, 0x50, 0x49, 0x12, 0x22, 0x0a, 0x03, 0x47, 0x55, 0x49, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x55, 0x49, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x03, 0x47, 0x55, 0x49, 0x12, 0x1f, 0x0a, 0x02, 0x43, 0x41, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, - 0x41, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x02, 0x43, 0x41, 0x12, 0x31, 0x0a, 0x08, 0x46, - 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x08, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x3d, - 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x73, - 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, - 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x45, - 0x78, 0x74, 0x72, 0x61, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x34, 0x0a, - 0x09, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x57, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x25, 0x0a, 0x04, 0x4d, 0x61, 0x69, 0x6c, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x61, - 0x69, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x2e, - 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x2b, - 0x0a, 0x06, 0x4d, 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x06, 0x4d, 0x69, 0x6e, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x26, 0xe2, 0xfc, - 0xe3, 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x76, 0x65, 0x72, - 0x62, 0x6f, 0x73, 0x65, 0x20, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x2e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x12, 0x5c, 0x0a, - 0x13, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe2, 0xfc, 0xe3, 0xc4, - 0x01, 0x26, 0x12, 0x24, 0x50, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x65, 0x72, 0x74, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x52, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x65, - 0x72, 0x74, 0x43, 0x65, 0x72, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x6e, 0x0a, 0x0a, 0x4d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, - 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x35, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x2f, - 0x12, 0x2d, 0x57, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x69, 0x6e, 0x64, 0x20, - 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, - 0x0a, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x7f, 0x0a, 0x0a, 0x61, - 0x70, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x48, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x42, 0x12, - 0x40, 0x49, 0x66, 0x20, 0x77, 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x61, 0x70, 0x69, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, 0x77, 0x65, 0x20, - 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x52, 0x09, 0x61, 0x70, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x8f, 0x01, 0x0a, - 0x08, 0x61, 0x75, 0x74, 0x6f, 0x65, 0x78, 0x65, 0x63, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x45, 0x78, 0x65, 0x63, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x5c, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x56, 0x12, 0x54, - 0x49, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x20, 0x77, 0x65, 0x20, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x6c, 0x79, 0x2e, 0x52, 0x08, 0x61, 0x75, 0x74, 0x6f, 0x65, 0x78, 0x65, 0x63, 0x12, 0x50, - 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x29, 0x12, 0x27, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x28, 0x6c, 0x69, 0x6e, - 0x75, 0x78, 0x2c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x64, 0x61, 0x72, - 0x77, 0x69, 0x6e, 0x29, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x62, 0x66, 0x75, 0x73, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x62, 0x66, - 0x75, 0x73, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, - 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, - 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x22, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x12, 0x36, 0x0a, 0x0a, 0x72, 0x65, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x52, 0x65, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x0a, 0x72, 0x65, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6f, - 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x25, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x64, 0x65, 0x62, 0x75, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x37, 0x0a, 0x08, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x08, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, - 0x79, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x27, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x42, 0x34, - 0x5a, 0x32, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, - 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_config_proto_rawDesc = "" + + "\n" + + "\fconfig.proto\x12\x05proto\x1a\x14proto/semantic.proto\x1a\x17actions/proto/vql.proto\x1a\x1eartifacts/proto/artifact.proto\"\x8d\x04\n" + + "\aVersion\x12.\n" + + "\x04name\x18\x01 \x01(\tB\x1a\xe2\xfc\xe3\xc4\x01\x14\x12\x12The client's name.R\x04name\x12N\n" + + "\vdescription\x18\x02 \x01(\tB,\xe2\xfc\xe3\xc4\x01&\x12$The client's long description stringR\vdescription\x12a\n" + + "\aversion\x18\x03 \x01(\tBG\xe2\xfc\xe3\xc4\x01A\x12?The client's version string using a semantic versioning scheme.R\aversion\x12?\n" + + "\x06commit\x18\x04 \x01(\tB'\xe2\xfc\xe3\xc4\x01!\x12\x1fThe client's git commit string.R\x06commit\x12A\n" + + "\n" + + "build_time\x18\x05 \x01(\tB\"\xe2\xfc\xe3\xc4\x01\x1c\x12\x1aWhen the client was built.R\tbuildTime\x12!\n" + + "\finstall_time\x18\b \x01(\x04R\vinstallTime\x12 \n" + + "\fci_build_url\x18\x06 \x01(\tR\n" + + "ciBuildUrl\x12\x1a\n" + + "\bcompiler\x18\a \x01(\tR\bcompiler\x12\x16\n" + + "\x06system\x18\t \x01(\tR\x06system\x12\"\n" + + "\farchitecture\x18\n" + + " \x01(\tR\farchitecture\"=\n" + + "\x0eFlowCheckPoint\x12\x17\n" + + "\aflow_id\x18\x01 \x01(\tR\x06flowId\x12\x12\n" + + "\x04path\x18\x02 \x01(\tR\x04path\"\x88\x05\n" + + "\tWriteback\x12!\n" + + "\finstall_time\x18\x10 \x01(\x04R\vinstallTime\x12R\n" + + "\vprivate_key\x18\a \x01(\tB1\xe2\xfc\xe3\xc4\x01+\x12)The client's private key in PEM encoding.R\n" + + "privateKey\x12\x1b\n" + + "\tclient_id\x18\x0f \x01(\tR\bclientId\x12`\n" + + "\x13hunt_last_timestamp\x18\r \x01(\x04B0\xe2\xfc\xe3\xc4\x01*\x12(The last hunt timestamp this client ran.R\x11huntLastTimestamp\x12\xe8\x01\n" + + "\x19last_server_serial_number\x18\x0e \x01(\x04B\xac\x01\xe2\xfc\xe3\xc4\x01\xa5\x01\x12\xa2\x01The last certificate serial number we saw from the server. Clients refuse to connect to servers with older serial numbers as part of server key rotation protocol.R\x16lastServerSerialNumber\x12&\n" + + "\x0flast_server_pem\x18\x12 \x01(\tR\rlastServerPem\x129\n" + + "\revent_queries\x18\x01 \x01(\v2\x14.proto.VQLEventTableR\feventQueries\x127\n" + + "\vcheckpoints\x18\x11 \x03(\v2\x15.proto.FlowCheckPointR\vcheckpoints\"S\n" + + "\x10InitialOrgRecord\x12\x15\n" + + "\x06org_id\x18\x01 \x01(\tR\x05orgId\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x14\n" + + "\x05nonce\x18\x03 \x01(\tR\x05nonce\"\xea\x02\n" + + "\x16WindowsInstallerConfig\x12M\n" + + "\fservice_name\x18\x01 \x01(\tB*\xe2\xfc\xe3\xc4\x01$\x12\"The name of the service to create.R\vserviceName\x12\xa1\x01\n" + + "\finstall_path\x18\x02 \x01(\tB~\xe2\xfc\xe3\xc4\x01x\x12vWhere should the binary be installed? The install command copies the binary to this location and installs the service.R\vinstallPath\x12]\n" + + "\x13service_description\x18\x03 \x01(\tB,\xe2\xfc\xe3\xc4\x01&\x12$Description for the windows service.R\x12serviceDescription\"\x8a\x02\n" + + "\x15DarwinInstallerConfig\x12M\n" + + "\fservice_name\x18\x01 \x01(\tB*\xe2\xfc\xe3\xc4\x01$\x12\"The name of the service to create.R\vserviceName\x12\xa1\x01\n" + + "\finstall_path\x18\x02 \x01(\tB~\xe2\xfc\xe3\xc4\x01x\x12vWhere should the binary be installed? The install command copies the binary to this location and installs the service.R\vinstallPath\"\xd6\x04\n" + + "\x10RingBufferConfig\x12^\n" + + "\vmemory_size\x18\x01 \x01(\x04B=\xe2\xfc\xe3\xc4\x017\x125How many bytes to store in the ring buffer in memory.R\n" + + "memorySize\x12n\n" + + "\tdisk_size\x18\x02 \x01(\x04BQ\xe2\xfc\xe3\xc4\x01K\x12IHow many bytes to store in the ring buffer on disk (0 mean no disk file).R\bdiskSize\x12x\n" + + "\x0efilename_linux\x18\x04 \x01(\tBQ\xe2\xfc\xe3\xc4\x01K\x12IName of file to store the ring buffer in (if empty we do not use a file).R\rfilenameLinux\x12|\n" + + "\x10filename_windows\x18\x05 \x01(\tBQ\xe2\xfc\xe3\xc4\x01K\x12IName of file to store the ring buffer in (if empty we do not use a file).R\x0ffilenameWindows\x12z\n" + + "\x0ffilename_darwin\x18\x06 \x01(\tBQ\xe2\xfc\xe3\xc4\x01K\x12IName of file to store the ring buffer in (if empty we do not use a file).R\x0efilenameDarwin\"\xc1\x1c\n" + + "\fClientConfig\x12\x80\x01\n" + + "\x06labels\x18\x06 \x03(\tBh\xe2\xfc\xe3\xc4\x01b\x12`A list of labels the client has. This allows selected groups of clients to be targeted in hunts.R\x06labels\x12a\n" + + "\vserver_urls\x18\b \x03(\tB@\xe2\xfc\xe3\xc4\x01:\x128A list of server URLs the client will try to connect to.R\n" + + "serverUrls\x12\x14\n" + + "\x05proxy\x18 \x01(\tR\x05proxy\x125\n" + + "\fproxy_config\x18. \x01(\v2\x12.proto.ProxyConfigR\vproxyConfig\x12\x89\x01\n" + + "\x0eca_certificate\x18\v \x01(\tBb\xe2\xfc\xe3\xc4\x01\\\x12ZThe CA's certificate encoded in PEM. The client will trust any server signed with this CA.R\rcaCertificate\x12\xbb\x01\n" + + "\x05nonce\x18\f \x01(\tB\xa4\x01\xe2\xfc\xe3\xc4\x01\x9d\x01\x12\x9a\x01A shared nonce the client will present. The server will reject clients which do not present this key so it must be embedded in the client's configuration.R\x05nonce\x12f\n" + + "\x10writeback_darwin\x18\x14 \x01(\tB;\xe2\xfc\xe3\xc4\x015\x123A path where darwin clients will write local state.R\x0fwritebackDarwin\x12c\n" + + "\x0fwriteback_linux\x18\t \x01(\tB:\xe2\xfc\xe3\xc4\x014\x122A path where linux clients will write local state.R\x0ewritebackLinux\x12i\n" + + "\x11writeback_windows\x18\n" + + " \x01(\tB<\xe2\xfc\xe3\xc4\x016\x124A path where windows clients will write local state.R\x10writebackWindows\x126\n" + + "\x17level2_writeback_suffix\x18, \x01(\tR\x15level2WritebackSuffix\x12#\n" + + "\rtempdir_linux\x18\x01 \x01(\tR\ftempdirLinux\x12'\n" + + "\x0ftempdir_windows\x18\x02 \x01(\tR\x0etempdirWindows\x12%\n" + + "\x0etempdir_darwin\x18\x03 \x01(\tR\rtempdirDarwin\x12\x19\n" + + "\bmin_poll\x18\x0e \x01(\x04R\aminPoll\x12[\n" + + "\bmax_poll\x18\x0f \x01(\x04B@\xe2\xfc\xe3\xc4\x01:\x123The maximum number of seconds between server polls.2\x03600R\amaxPoll\x12S\n" + + "\fmax_poll_std\x18\x1b \x01(\x04B1\xe2\xfc\xe3\xc4\x01+\x12%The standard deviation between polls.2\x0230R\n" + + "maxPollStd\x12'\n" + + "\x10ws_ping_wait_sec\x18- \x01(\x04R\rwsPingWaitSec\x12;\n" + + "\x1ananny_max_connection_delay\x18$ \x01(\x04R\x17nannyMaxConnectionDelay\x12{\n" + + "\x11windows_installer\x18\x10 \x01(\v2\x1d.proto.WindowsInstallerConfigB/\xe2\xfc\xe3\xc4\x01)\x12'Configuration of the windows installer.R\x10windowsInstaller\x12x\n" + + "\x10darwin_installer\x18\x15 \x01(\v2\x1c.proto.DarwinInstallerConfigB/\xe2\xfc\xe3\xc4\x01)\x12'Configuration of the windows installer.R\x0fdarwinInstaller\x12%\n" + + "\x0eprevent_execve\x18\x11 \x01(\bR\rpreventExecve\x12(\n" + + "\aversion\x18\x12 \x01(\v2\x0e.proto.VersionR\aversion\x125\n" + + "\x0eserver_version\x182 \x01(\v2\x0e.proto.VersionR\rserverVersion\x12r\n" + + "\x10default_max_wait\x18\x13 \x01(\x04BH\xe2\xfc\xe3\xc4\x01B\x12@The default max time to wait before we send partial VQL results.R\x0edefaultMaxWait\x12\xeb\x01\n" + + "\x13use_self_signed_ssl\x18\x18 \x01(\bB\xbb\x01\xe2\xfc\xe3\xc4\x01\xb4\x01\x12\xb1\x01If this is set, the client will expect a self signed certificate from the server.NOTE: The self signed certificate must be signed by the Velociraptor CA which is embedded above.R\x10useSelfSignedSsl\x12\xc0\x01\n" + + "\x12pinned_server_name\x18\x1c \x01(\tB\x91\x01\xe2\xfc\xe3\xc4\x01\x8a\x01\x12\x87\x01Name of the frontend's certificate. If we are using self signed SSL the client will be pinned to this name (default VelociraptorServer)R\x10pinnedServerName\x12n\n" + + "\x0fmax_upload_size\x18\x19 \x01(\x04BF\xe2\xfc\xe3\xc4\x01@\x12>Maximum size in Bytes we will create uploads for (default 5mb)R\rmaxUploadSize\x12d\n" + + "\flocal_buffer\x18\x1a \x01(\v2\x17.proto.RingBufferConfigB(\xe2\xfc\xe3\xc4\x01\"\x12 Configure the local ring buffer.R\vlocalBuffer\x121\n" + + "\x15max_memory_hard_limit\x18\x1d \x01(\x04R\x12maxMemoryHardLimit\x12 \n" + + "\vconcurrency\x18\x1f \x01(\x04R\vconcurrency\x12-\n" + + "\x12connection_timeout\x18# \x01(\x04R\x11connectionTimeout\x12+\n" + + "\x06Crypto\x18! \x01(\v2\x13.proto.CryptoConfigR\x06Crypto\x12/\n" + + "\x13disable_compression\x18% \x01(\bR\x12disableCompression\x12F\n" + + " default_server_flow_stats_update\x18' \x01(\x04R\x1cdefaultServerFlowStatsUpdate\x125\n" + + "\x17client_info_update_time\x18( \x01(\x03R\x14clientInfoUpdateTime\x12\xce\x01\n" + + "\x12fallback_addresses\x18) \x03(\v2*.proto.ClientConfig.FallbackAddressesEntryBs\xe2\xfc\xe3\xc4\x01m\x12kThis mapping provides fallback addresses for network targets so that a connection may still be established.R\x11fallbackAddresses\x121\n" + + "\x15dns_cache_refresh_min\x186 \x01(\x04R\x12dnsCacheRefreshMin\x12/\n" + + "\x13disable_checkpoints\x18* \x01(\bR\x12disableCheckpoints\x12<\n" + + "\x1aadditional_event_artifacts\x18+ \x03(\tR\x18additionalEventArtifacts\x12!\n" + + "\flogfile_name\x18/ \x01(\tR\vlogfileName\x12!\n" + + "\flogfile_size\x180 \x01(\x04R\vlogfileSize\x12\x1d\n" + + "\n" + + "panic_file\x181 \x01(\tR\tpanicFile\x12=\n" + + "\x1binsecure_network_trace_file\x183 \x01(\tR\x18insecureNetworkTraceFile\x12/\n" + + "\x14low_resource_max_cpu\x184 \x01(\x04R\x11lowResourceMaxCpu\x123\n" + + "\x16low_resource_cpu_count\x185 \x01(\x04R\x13lowResourceCpuCount\x1aD\n" + + "\x16FallbackAddressesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xad\x04\n" + + "\tAPIConfig\x12\x1a\n" + + "\bhostname\x18\x05 \x01(\tR\bhostname\x12\x99\x01\n" + + "\fbind_address\x18\x01 \x01(\tBv\xe2\xfc\xe3\xc4\x01p\x12nAddress to bind gRPC endpoint. This should usually only be 127.0.0.1, otherwise be sure to properly secure it.R\vbindAddress\x125\n" + + "\tbind_port\x18\x02 \x01(\rB\x18\xe2\xfc\xe3\xc4\x01\x12\x12\x10Port to bind to.R\bbindPort\x12b\n" + + "\vbind_scheme\x18\x03 \x01(\tBA\xe2\xfc\xe3\xc4\x01;\x123A scheme for the listening socket (e.g. tcp, unix).2\x04unixR\n" + + "bindScheme\x12\xcc\x01\n" + + "\x0epinned_gw_name\x18\x04 \x01(\tB\xa5\x01\xe2\xfc\xe3\xc4\x01\x9e\x01\x12\x9b\x01Gateway certificate will carry this common name. Note that this name is special because it allows auth bypass for internal gateway calls. Default (GRPC_GW)R\fpinnedGwName\"\xf9\x04\n" + + "\x0fApiClientConfig\x12a\n" + + "\x0eca_certificate\x18\x01 \x01(\tB:\xe2\xfc\xe3\xc4\x014\x122The CA certificate used to verify API connections.R\rcaCertificate\x12\x97\x01\n" + + "\vclient_cert\x18\x02 \x01(\tBv\xe2\xfc\xe3\xc4\x01p\x12nA client certificate that belongs to this client. Generated from the 'velociraptor config api_client' command.R\n" + + "clientCert\x12]\n" + + "\x12client_private_key\x18\x03 \x01(\tB/\xe2\xfc\xe3\xc4\x01)\x12'Private key to go with the client_cert.R\x10clientPrivateKey\x12n\n" + + "\x15api_connection_string\x18\x04 \x01(\tB:\xe2\xfc\xe3\xc4\x014\x122Location where the api endpoint will be available.R\x13apiConnectionString\x12?\n" + + "\x04name\x18\x05 \x01(\tB+\xe2\xfc\xe3\xc4\x01%\x12#The CommonName for this API client.R\x04name\x12,\n" + + "\x12pinned_server_name\x18\x06 \x01(\tR\x10pinnedServerName\x12+\n" + + "\x12max_grpc_recv_size\x18\a \x01(\x04R\x0fmaxGrpcRecvSize\"\x8d\x02\n" + + "\vProxyConfig\x12\x14\n" + + "\x05https\x18\x01 \x01(\tR\x05https\x12\x12\n" + + "\x04http\x18\x02 \x01(\tR\x04http\x12P\n" + + "\x10proxy_url_regexp\x18\x03 \x03(\v2&.proto.ProxyConfig.ProxyUrlRegexpEntryR\x0eproxyUrlRegexp\x12\x10\n" + + "\x03pac\x18\x04 \x01(\tR\x03pac\x12-\n" + + "\x12ignore_environment\x18\x05 \x01(\bR\x11ignoreEnvironment\x1aA\n" + + "\x13ProxyUrlRegexpEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xe1\x01\n" + + "\aGUILink\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12\x19\n" + + "\bicon_url\x18\x03 \x01(\tR\aiconUrl\x12\x12\n" + + "\x04type\x18\x04 \x01(\tR\x04type\x12\x17\n" + + "\anew_tab\x18\x05 \x01(\bR\x06newTab\x12\x16\n" + + "\x06encode\x18\x06 \x01(\tR\x06encode\x12\x1c\n" + + "\tparameter\x18\a \x01(\tR\tparameter\x12\x16\n" + + "\x06method\x18\b \x01(\tR\x06method\x12\x1a\n" + + "\bdisabled\x18\t \x01(\bR\bdisabled\"A\n" + + "\aOIDCACL\x12\x14\n" + + "\x05roles\x18\x01 \x03(\tR\x05roles\x12 \n" + + "\vpermissions\x18\x02 \x03(\tR\vpermissions\"\xa0\x02\n" + + "\n" + + "OIDCClaims\x12\x1a\n" + + "\busername\x18\x01 \x01(\tR\busername\x12\x14\n" + + "\x05roles\x18\x02 \x01(\tR\x05roles\x129\n" + + "\brole_map\x18\x03 \x03(\v2\x1e.proto.OIDCClaims.RoleMapEntryR\aroleMap\x124\n" + + "\x16allow_unverified_email\x18\x04 \x01(\bR\x14allowUnverifiedEmail\x12#\n" + + "\roverride_acls\x18\x05 \x01(\bR\foverrideAcls\x1aJ\n" + + "\fRoleMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12$\n" + + "\x05value\x18\x02 \x01(\v2\x0e.proto.OIDCACLR\x05value:\x028\x01\"\xae\r\n" + + "\rAuthenticator\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12\xb9\x01\n" + + "\voidc_issuer\x18\x04 \x01(\tB\x97\x01\xe2\xfc\xe3\xc4\x01\x90\x01\x12\x8d\x01URL to OIDC Configuration Document. The configuration should be available in the 'oidc_issuer + /.well-known/openid-configuration' endpoint. R\n" + + "oidcIssuer\x12\x1b\n" + + "\toidc_name\x18\x12 \x01(\tR\boidcName\x12\\\n" + + "\x14oidc_auth_url_params\x18\x18 \x03(\v2+.proto.Authenticator.OidcAuthUrlParamsEntryR\x11oidcAuthUrlParams\x12\x16\n" + + "\x06avatar\x18\x13 \x01(\tR\x06avatar\x12X\n" + + "\x0foauth_client_id\x18\x05 \x01(\tB0\xe2\xfc\xe3\xc4\x01*\x12(If set we use oauth authentication flow.R\roauthClientId\x12`\n" + + "\x13oauth_client_secret\x18\x06 \x01(\tB0\xe2\xfc\xe3\xc4\x01*\x12(If set we use oauth authentication flow.R\x11oauthClientSecret\x12)\n" + + "\x06claims\x18\x19 \x01(\v2\x11.proto.OIDCClaimsR\x06claims\x12\x1d\n" + + "\n" + + "oidc_debug\x18\x1a \x01(\bR\toidcDebug\x12\x16\n" + + "\x06tenant\x18\a \x01(\tR\x06tenant\x12D\n" + + "\x10saml_certificate\x18\f \x01(\tB\x19\xe2\xfc\xe3\xc4\x01\x13\x12\x11SAML certificate.R\x0fsamlCertificate\x12C\n" + + "\x10saml_private_key\x18\r \x01(\tB\x19\xe2\xfc\xe3\xc4\x01\x13\x12\x11SAML private key.R\x0esamlPrivateKey\x12_\n" + + "\x15saml_idp_metadata_url\x18\x0e \x01(\tB,\xe2\xfc\xe3\xc4\x01&\x12$SAML identity provider metadata URL.R\x12samlIdpMetadataUrl\x12:\n" + + "\rsaml_root_url\x18\x0f \x01(\tB\x16\xe2\xfc\xe3\xc4\x01\x10\x12\x0eSAML root URL.R\vsamlRootUrl\x12p\n" + + "\x13saml_user_attribute\x18\x10 \x01(\tB@\xe2\xfc\xe3\xc4\x01:\x128SAML attribute containing value for user identification.R\x11samlUserAttribute\x12\xa9\x01\n" + + "\x0fsaml_user_roles\x18\x17 \x03(\tB\x80\x01\xe2\xfc\xe3\xc4\x01z\x12xList of roles to assign authenticated SAML users. If this option is not set then no users will be created automatically.R\rsamlUserRoles\x12_\n" + + "\x18saml_allow_idp_initiated\x18\x1b \x01(\bB&\xe2\xfc\xe3\xc4\x01 \x12\x1eAllow IdP-initiated SAML flow.R\x15samlAllowIdpInitiated\x12C\n" + + "\x12sub_authenticators\x18\x11 \x03(\v2\x14.proto.AuthenticatorR\x11subAuthenticators\x12i\n" + + "\x16auth_redirect_template\x18\x15 \x01(\tB3\xe2\xfc\xe3\xc4\x01-\x12+URL to redirect to on Unauthorized API callR\x14authRedirectTemplate\x12B\n" + + "\x1edefault_roles_for_unknown_user\x18\x16 \x03(\tR\x1adefaultRolesForUnknownUser\x12;\n" + + "\x1adefault_session_expiry_min\x18\x14 \x01(\x04R\x17defaultSessionExpiryMin\x1aD\n" + + "\x16OidcAuthUrlParamsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xbb\t\n" + + "\tGUIConfig\x12\x98\x01\n" + + "\fbind_address\x18\x01 \x01(\tBu\xe2\xfc\xe3\xc4\x01o\x12mAddress to bind GUI endpoint. This should usually only be 127.0.0.1, otherwise be sure to properly secure it.R\vbindAddress\x125\n" + + "\tbind_port\x18\x02 \x01(\rB\x18\xe2\xfc\xe3\xc4\x01\x12\x12\x10Port to bind to.R\bbindPort\x12!\n" + + "\fallowed_cidr\x18\x17 \x03(\tR\vallowedCidr\x124\n" + + "\x16forwarded_proxy_header\x18\x18 \x01(\tR\x14forwardedProxyHeader\x12$\n" + + "\x0euse_plain_http\x18\x14 \x01(\bR\fusePlainHttp\x12\x1b\n" + + "\tbase_path\x18\x15 \x01(\tR\bbasePath\x12\xc3\x01\n" + + "\x0egw_certificate\x18\n" + + " \x01(\tB\x9b\x01\xe2\xfc\xe3\xc4\x01\x94\x01\x12\x91\x01The GUI exposes a HTTP interface to the gRPC end point.This is the certificate and private key that will be used to connect to the gRPC endpoint.R\rgwCertificate\x12k\n" + + "\x0egw_private_key\x18\v \x01(\tBE\xe2\xfc\xe3\xc4\x01?\x12=The private key of the frontend server encoded in PEM format.R\fgwPrivateKey\x12E\n" + + "\n" + + "public_url\x18\a \x01(\tB&\xe2\xfc\xe3\xc4\x01 \x12\x1eThe public URL of this server.R\tpublicUrl\x12c\n" + + "\rreverse_proxy\x18\b \x03(\v2\x19.proto.ReverseProxyConfigB#\xe2\xfc\xe3\xc4\x01\x1d\x12\x1bRoutes for reverse proxies.R\freverseProxy\x12U\n" + + "\x05links\x18\t \x03(\v2\x0e.proto.GUILinkB/\xe2\xfc\xe3\xc4\x01)\x12'Additional links to present in the GUI.R\x05links\x123\n" + + "\rinitial_users\x18\x11 \x03(\v2\x0e.proto.GUIUserR\finitialUsers\x12:\n" + + "\finitial_orgs\x18\x16 \x03(\v2\x17.proto.InitialOrgRecordR\vinitialOrgs\x12:\n" + + "\rauthenticator\x18\x13 \x01(\v2\x14.proto.AuthenticatorR\rauthenticator\x124\n" + + "\x16artifact_search_filter\x18\x12 \x01(\tR\x14artifactSearchFilter\x12'\n" + + "\x0ftrusted_origins\x18\x19 \x03(\tR\x0etrustedOrigins\"g\n" + + "\aGUIUser\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12#\n" + + "\rpassword_hash\x18\x02 \x01(\tR\fpasswordHash\x12#\n" + + "\rpassword_salt\x18\x03 \x01(\tR\fpasswordSalt\"\xa3\x01\n" + + "\bCAConfig\x12\x96\x01\n" + + "\vprivate_key\x18\x01 \x01(\tBu\xe2\xfc\xe3\xc4\x01o\x12mThe private key of the CA encoded in PEM. This must correspond with the certificate in Client.ca_certificate.R\n" + + "privateKey\"_\n" + + "\x12ReverseProxyConfig\x12\x14\n" + + "\x05route\x18\x01 \x01(\tR\x05route\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12!\n" + + "\frequire_auth\x18\x03 \x01(\bR\vrequireAuth\"\xc8\x02\n" + + "\fDynDNSConfig\x12\x12\n" + + "\x04type\x18\b \x01(\tR\x04type\x12#\n" + + "\rddns_username\x18\x02 \x01(\tR\fddnsUsername\x12#\n" + + "\rddns_password\x18\x03 \x01(\tR\fddnsPassword\x12#\n" + + "\rddns_hostname\x18\v \x01(\tR\fddnsHostname\x12\x1d\n" + + "\n" + + "update_url\x18\x04 \x01(\tR\tupdateUrl\x12\x1c\n" + + "\tfrequency\x18\x05 \x01(\x04R\tfrequency\x12\x1f\n" + + "\vcheckip_url\x18\x06 \x01(\tR\n" + + "checkipUrl\x12\x1d\n" + + "\n" + + "dns_server\x18\a \x01(\tR\tdnsServer\x12\x1b\n" + + "\tapi_token\x18\t \x01(\tR\bapiToken\x12\x1b\n" + + "\tzone_name\x18\n" + + " \x01(\tR\bzoneName\"\x9d\t\n" + + "\x17FrontendResourceControl\x124\n" + + "\x16connections_per_second\x18\x01 \x01(\x04R\x14connectionsPerSecond\x128\n" + + "\x18notifications_per_second\x18\x02 \x01(\x04R\x16notificationsPerSecond\x124\n" + + "\x16enrollments_per_second\x18\x03 \x01(\x03R\x14enrollmentsPerSecond\x12 \n" + + "\vconcurrency\x18\t \x01(\x04R\vconcurrency\x12(\n" + + "\x10target_heap_size\x18\n" + + " \x01(\x04R\x0etargetHeapSize\x12/\n" + + "\x13concurrency_timeout\x18\x18 \x01(\x04R\x12concurrencyTimeout\x12`\n" + + "\x0fmax_upload_size\x18\v \x01(\x04B8\xe2\xfc\xe3\xc4\x012\x120Maximum size in Bytes we will accept uploads forR\rmaxUploadSize\x12p\n" + + "\x10expected_clients\x18\x0f \x01(\x03BE\xe2\xfc\xe3\xc4\x01?\x12=Expected number of clients in this deployment (default 10000)R\x0fexpectedClients\x123\n" + + "\x16per_client_upload_rate\x18\x15 \x01(\x03R\x13perClientUploadRate\x12,\n" + + "\x12global_upload_rate\x18\x16 \x01(\x03R\x10globalUploadRate\x121\n" + + "\x15client_event_max_wait\x18\x17 \x01(\x04R\x12clientEventMaxWait\x128\n" + + "\x19minion_batch_wait_time_ms\x18\x19 \x01(\x04R\x15minionBatchWaitTimeMs\x128\n" + + "\x18index_snapshot_frequency\x18\x1a \x01(\x04R\x16indexSnapshotFrequency\x12-\n" + + "\x13client_info_lru_ttl\x18\x1b \x01(\x04R\x10clientInfoLruTtl\x121\n" + + "\x15client_info_sync_time\x18\x1d \x01(\x04R\x12clientInfoSyncTime\x123\n" + + "\x16client_info_write_time\x18\x1e \x01(\x04R\x13clientInfoWriteTime\x125\n" + + "\x17max_journal_buffer_size\x18\x1c \x01(\x03R\x14maxJournalBufferSize\x123\n" + + "\x16default_log_batch_time\x18\x1f \x01(\x04R\x13defaultLogBatchTime\x12H\n" + + "!default_monitoring_log_batch_time\x18 \x01(\x04R\x1ddefaultMonitoringLogBatchTime\x124\n" + + "\x16disable_file_buffering\x18! \x01(\bR\x14disableFileBuffering\"\xa1\x13\n" + + "\x0eFrontendConfig\x12\x1a\n" + + "\bhostname\x18\x13 \x01(\tR\bhostname\x12!\n" + + "\fbind_address\x18\x01 \x01(\tR\vbindAddress\x12\x1b\n" + + "\tbind_port\x18\x02 \x01(\rR\bbindPort\x12\x1b\n" + + "\tbase_path\x18\x19 \x01(\tR\bbasePath\x12$\n" + + "\x0euse_plain_http\x18\x18 \x01(\bR\fusePlainHttp\x12>\n" + + "\x1brequire_client_certificates\x18$ \x01(\bR\x19requireClientCertificates\x12\x14\n" + + "\x05proxy\x18! \x01(\tR\x05proxy\x125\n" + + "\fproxy_config\x18% \x01(\v2\x12.proto.ProxyConfigR\vproxyConfig\x12N\n" + + "\vcertificate\x18\x03 \x01(\tB,\xe2\xfc\xe3\xc4\x01&\x12$X509 Certificate of frontend server.R\vcertificate\x12f\n" + + "\vprivate_key\x18\x04 \x01(\tBE\xe2\xfc\xe3\xc4\x01?\x12=The private key of the frontend server encoded in PEM format.R\n" + + "privateKey\x128\n" + + "\x18tls_certificate_filename\x18\x1c \x01(\tR\x16tlsCertificateFilename\x127\n" + + "\x18tls_private_key_filename\x18\x1d \x01(\tR\x15tlsPrivateKeyFilename\x12@\n" + + "\bdns_name\x18\x06 \x01(\tB%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dThe DNS name of the frontend.R\adnsName\x12\xbb\x02\n" + + "\x19do_not_compress_artifacts\x18\n" + + " \x01(\bB\xff\x01\xe2\xfc\xe3\xc4\x01\xf8\x01\x12\xf5\x01When set we do not compress artifacts sent to the client. This is only useful for debugging. Note: Setting this will send the client artifact fields like name and description which may result in information disclosure if the client is untrusted.R\x16doNotCompressArtifacts\x12Z\n" + + "\adyn_dns\x18\f \x01(\v2\x13.proto.DynDNSConfigB,\xe2\xfc\xe3\xc4\x01&\x12$If set we start the dyn dns service.R\x06dynDns\x12d\n" + + "\fproxy_header\x18\r \x01(\tBA\xe2\xfc\xe3\xc4\x01;\x129Header defined by the proxy containing the remote addressR\vproxyHeader\x12\x86\x01\n" + + "#default_client_monitoring_artifacts\x18\x0e \x03(\tB7\xe2\xfc\xe3\xc4\x011\x12/The initial set of client monitoring artifacts.R defaultClientMonitoringArtifacts\x12\x8d\x01\n" + + "#default_server_monitoring_artifacts\x18\x1f \x03(\tB>\xe2\xfc\xe3\xc4\x018\x126Additional initial set of server monitoring artifacts.R defaultServerMonitoringArtifacts\x128\n" + + "\x18initial_server_artifacts\x18\" \x03(\tR\x16initialServerArtifacts\x12~\n" + + "\vrun_as_user\x18\x10 \x01(\tB^\xe2\xfc\xe3\xc4\x01X\x12VThe user that the frontend should run as. If set we refuse to run as a different user.R\trunAsUser\x12+\n" + + "\x12GRPC_pool_max_size\x18\x11 \x01(\x03R\x0fGRPCPoolMaxSize\x12+\n" + + "\x12GRPC_pool_max_wait\x18\x12 \x01(\x03R\x0fGRPCPoolMaxWait\x12<\n" + + "\tresources\x18\x1b \x01(\v2\x1e.proto.FrontendResourceControlR\tresources\x12\x1b\n" + + "\tis_minion\x18\x1e \x01(\bR\bisMinion\x12`\n" + + "\vconcurrency\x18\t \x01(\x04B>\xe2\xfc\xe3\xc4\x018\x126The number of client messages to process concurrently.R\vconcurrency\x12`\n" + + "\x0fmax_upload_size\x18\v \x01(\x04B8\xe2\xfc\xe3\xc4\x012\x120Maximum size in Bytes we will accept uploads forR\rmaxUploadSize\x12p\n" + + "\x10expected_clients\x18\x0f \x01(\x03BE\xe2\xfc\xe3\xc4\x01?\x12=Expected number of clients in this deployment (default 10000)R\x0fexpectedClients\x123\n" + + "\x16per_client_upload_rate\x18\x15 \x01(\x03R\x13perClientUploadRate\x12,\n" + + "\x12global_upload_rate\x18\x16 \x01(\x03R\x10globalUploadRate\x121\n" + + "\x15client_event_max_wait\x18\x17 \x01(\x04R\x12clientEventMaxWait\x12D\n" + + "\x1eartifact_definitions_directory\x18 \x01(\tR\x1cartifactDefinitionsDirectory\x124\n" + + "\x16collection_error_regex\x18# \x01(\tR\x14collectionErrorRegex\x12&\n" + + "\x0fdo_not_redirect\x18\x1a \x01(\bR\rdoNotRedirect\"\xc2\b\n" + + "\x0fDatastoreConfig\x12&\n" + + "\x0eimplementation\x18\x01 \x01(\tR\x0eimplementation\x12\x1a\n" + + "\blocation\x18\x02 \x01(\tR\blocation\x12/\n" + + "\x13filestore_directory\x18\x03 \x01(\tR\x12filestoreDirectory\x12 \n" + + "\vcompression\x18\x13 \x01(\tR\vcompression\x128\n" + + "\x19min_allowed_file_space_mb\x18\x0f \x01(\x03R\x15minAllowedFileSpaceMb\x127\n" + + "\x18disk_check_frequency_sec\x18\x10 \x01(\x03R\x15diskCheckFrequencySec\x12 \n" + + "\fmax_dir_size\x18\r \x01(\x04R\n" + + "maxDirSize\x126\n" + + "\x17memcache_expiration_sec\x18\x04 \x01(\x04R\x15memcacheExpirationSec\x12C\n" + + "\x1ememcache_write_mutation_buffer\x18\x05 \x01(\x03R\x1bmemcacheWriteMutationBuffer\x12E\n" + + "\x1fmemcache_write_mutation_writers\x18\x06 \x01(\x03R\x1cmemcacheWriteMutationWriters\x129\n" + + "\x19memcache_write_max_memory\x18\x11 \x01(\x03R\x16memcacheWriteMaxMemory\x12D\n" + + "\x1fmemcache_write_mutation_min_age\x18\x0e \x01(\x03R\x1bmemcacheWriteMutationMinAge\x12D\n" + + "\x1fmemcache_write_mutation_max_age\x18\t \x01(\x03R\x1bmemcacheWriteMutationMaxAge\x12=\n" + + "\x1bmemcache_datastore_max_size\x18\n" + + " \x01(\x03R\x18memcacheDatastoreMaxSize\x12F\n" + + " memcache_datastore_max_item_size\x18\v \x01(\x03R\x1cmemcacheDatastoreMaxItemSize\x12D\n" + + "\x1fmemcache_datastore_max_dir_size\x18\f \x01(\x03R\x1bmemcacheDatastoreMaxDirSize\x12A\n" + + "\x1dremote_datastore_rpc_deadline\x18\x12 \x01(\x03R\x1aremoteDatastoreRpcDeadline\x123\n" + + "\x15minion_implementation\x18\a \x01(\tR\x14minionImplementation\x123\n" + + "\x15master_implementation\x18\b \x01(\tR\x14masterImplementation\"\x90\x01\n" + + "\fMinionConfig\x12F\n" + + " notebook_number_of_local_workers\x18\x01 \x01(\x03R\x1cnotebookNumberOfLocalWorkers\x128\n" + + "\x18notebook_worker_priority\x18\x02 \x01(\x03R\x16notebookWorkerPriority\"\xaa\x03\n" + + "\n" + + "MailConfig\x12e\n" + + "\x04from\x18\x01 \x01(\tBQ\xe2\xfc\xe3\xc4\x01K\x12IWhere the email should be sent from. If not set we use the auth_username.R\x04from\x12;\n" + + "\x06server\x18\x02 \x01(\tB#\xe2\xfc\xe3\xc4\x01\x1d\x12\x1bAddress of the SMTP server.R\x06server\x12@\n" + + "\vserver_port\x18\x03 \x01(\x04B\x1f\xe2\xfc\xe3\xc4\x01\x19\x12\x17Port of the SMTP serverR\n" + + "serverPort\x12H\n" + + "\rauth_username\x18\x04 \x01(\tB#\xe2\xfc\xe3\xc4\x01\x1d\x12\x1bName to authenticate under.R\fauthUsername\x12K\n" + + "\rauth_password\x18\x05 \x01(\tB&\xe2\xfc\xe3\xc4\x01 \x12\x1epassword to authenticate with.R\fauthPassword\x12\x1f\n" + + "\vskip_verify\x18\x06 \x01(\bR\n" + + "skipVerify\"r\n" + + "\x16LoggingRetentionConfig\x12#\n" + + "\rrotation_time\x18\x03 \x01(\x04R\frotationTime\x12\x17\n" + + "\amax_age\x18\x04 \x01(\x04R\x06maxAge\x12\x1a\n" + + "\bdisabled\x18\x05 \x01(\bR\bdisabled\"\xfb\x05\n" + + "\rLoggingConfig\x12u\n" + + "\x10output_directory\x18\x01 \x01(\tBJ\xe2\xfc\xe3\xc4\x01D\x12BThe location to write log files. If not set we write no log files.R\x0foutputDirectory\x12z\n" + + "\x1bseparate_logs_per_component\x18\x02 \x01(\bB;\xe2\xfc\xe3\xc4\x015\x123If set, each component will log to a separate file.R\x18separateLogsPerComponent\x12K\n" + + "\rrotation_time\x18\x03 \x01(\x04B&\xe2\xfc\xe3\xc4\x01 \x12\x1eHow often to rotate the files.R\frotationTime\x12k\n" + + "\amax_age\x18\x04 \x01(\x04BR\xe2\xfc\xe3\xc4\x01L\x12@Maximum age of each file (File will be deleted after this time).2\b31536000R\x06maxAge\x123\n" + + "\x05debug\x18\x05 \x01(\v2\x1d.proto.LoggingRetentionConfigR\x05debug\x121\n" + + "\x04info\x18\x06 \x01(\v2\x1d.proto.LoggingRetentionConfigR\x04info\x123\n" + + "\x05error\x18\a \x01(\v2\x1d.proto.LoggingRetentionConfigR\x05error\x120\n" + + "\x14remote_syslog_server\x18\b \x01(\tR\x12remoteSyslogServer\x124\n" + + "\x16remote_syslog_protocol\x18\t \x01(\tR\x14remoteSyslogProtocol\x128\n" + + "\x18remote_syslog_components\x18\n" + + " \x03(\tR\x16remoteSyslogComponents\"\x99\x02\n" + + "\x10MonitoringConfig\x12\x9f\x01\n" + + "\fbind_address\x18\x01 \x01(\tB|\xe2\xfc\xe3\xc4\x01v\x12tAddress to bind monitoring endpoint. This should usually only be 127.0.0.1, otherwise be sure to properly secure it.R\vbindAddress\x12B\n" + + "\tbind_port\x18\x02 \x01(\rB%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dPort to bind monitoring port.R\bbindPort\x12\x1f\n" + + "\vmetrics_url\x18\x03 \x01(\tR\n" + + "metricsUrl\"h\n" + + "\x0eAutoExecConfig\x12\x12\n" + + "\x04argv\x18\x01 \x03(\tR\x04argv\x12B\n" + + "\x14artifact_definitions\x18\x02 \x03(\v2\x0f.proto.ArtifactR\x13artifactDefinitions\"\xc1\t\n" + + "\x14ServerServicesConfig\x12!\n" + + "\fhunt_manager\x18\x01 \x01(\bR\vhuntManager\x12'\n" + + "\x0fhunt_dispatcher\x18\x02 \x01(\bR\x0ehuntDispatcher\x12'\n" + + "\x0fstats_collector\x18\x03 \x01(\bR\x0estatsCollector\x12+\n" + + "\x11server_monitoring\x18\x04 \x01(\bR\x10serverMonitoring\x12)\n" + + "\x10server_artifacts\x18\x05 \x01(\bR\x0fserverArtifacts\x12\x17\n" + + "\adyn_dns\x18\x06 \x01(\bR\x06dynDns\x12$\n" + + "\rinterrogation\x18\a \x01(\bR\rinterrogation\x12%\n" + + "\x0esanity_checker\x18\b \x01(\bR\rsanityChecker\x12\x1f\n" + + "\vvfs_service\x18\t \x01(\bR\n" + + "vfsService\x12!\n" + + "\fuser_manager\x18\n" + + " \x01(\bR\vuserManager\x12+\n" + + "\x11client_monitoring\x18\v \x01(\bR\x10clientMonitoring\x12-\n" + + "\x12monitoring_service\x18\f \x01(\bR\x11monitoringService\x12\x1d\n" + + "\n" + + "api_server\x18\r \x01(\bR\tapiServer\x12'\n" + + "\x0ffrontend_server\x18\x0e \x01(\bR\x0efrontendServer\x12\x1d\n" + + "\n" + + "gui_server\x18\x0f \x01(\bR\tguiServer\x12!\n" + + "\findex_server\x18\x10 \x01(\bR\vindexServer\x12'\n" + + "\x0fjournal_service\x18\x11 \x01(\bR\x0ejournalService\x12/\n" + + "\x13replication_service\x18\x1a \x01(\bR\x12replicationService\x121\n" + + "\x14notification_service\x18\x12 \x01(\bR\x13notificationService\x12-\n" + + "\x12repository_manager\x18\x13 \x01(\bR\x11repositoryManager\x126\n" + + "\x17test_repository_manager\x18\x19 \x01(\bR\x15testRepositoryManager\x12+\n" + + "\x11inventory_service\x18\x14 \x01(\bR\x10inventoryService\x12\x1f\n" + + "\vclient_info\x18\x15 \x01(\bR\n" + + "clientInfo\x12\x14\n" + + "\x05label\x18\x16 \x01(\bR\x05label\x12\x1a\n" + + "\blauncher\x18\x17 \x01(\bR\blauncher\x12)\n" + + "\x10notebook_service\x18\x18 \x01(\bR\x0fnotebookService\x12+\n" + + "\x11scheduler_service\x18\x1d \x01(\bR\x10schedulerService\x12%\n" + + "\x0ebackup_service\x18\x1e \x01(\bR\rbackupService\x12+\n" + + "\x11http_communicator\x18\x1b \x01(\bR\x10httpCommunicator\x12,\n" + + "\x12client_event_table\x18\x1c \x01(\bR\x10clientEventTable\"\xa4\x15\n" + + "\bDefaults\x12*\n" + + "\x11hunt_expiry_hours\x18\x01 \x01(\x03R\x0fhuntExpiryHours\x12=\n" + + "\x1bhunt_dispatcher_refresh_sec\x18+ \x01(\x03R\x18huntDispatcherRefreshSec\x12?\n" + + "\x1chunt_dispatcher_refresh_rate\x18< \x01(\x04R\x19huntDispatcherRefreshRate\x12B\n" + + "\x1enotebook_default_new_cell_rows\x189 \x01(\x03R\x1anotebookDefaultNewCellRows\x129\n" + + "\x19notebook_cell_timeout_min\x18\x02 \x01(\x03R\x16notebookCellTimeoutMin\x12B\n" + + "\x1enotebook_memory_low_water_mark\x18$ \x01(\x04R\x1anotebookMemoryLowWaterMark\x12D\n" + + "\x1fnotebook_memory_high_water_mark\x18% \x01(\x04R\x1bnotebookMemoryHighWaterMark\x12E\n" + + " notebook_wait_time_for_worker_ms\x18. \x01(\x03R\x1bnotebookWaitTimeForWorkerMs\x12F\n" + + " notebook_number_of_local_workers\x18& \x01(\x03R\x1cnotebookNumberOfLocalWorkers\x128\n" + + "\x18notebook_worker_priority\x18' \x01(\x03R\x16notebookWorkerPriority\x12+\n" + + "\x11notebook_versions\x18* \x01(\x03R\x10notebookVersions\x12#\n" + + "\rcsv_delimiter\x18\x03 \x01(\tR\fcsvDelimiter\x12$\n" + + "\x0eevent_max_wait\x18\x04 \x01(\x04R\feventMaxWait\x121\n" + + "\x15event_max_wait_jitter\x18\x05 \x01(\x04R\x12eventMaxWaitJitter\x12D\n" + + "\x1fevent_change_notify_all_clients\x18\x06 \x01(\bR\x1beventChangeNotifyAllClients\x123\n" + + "\x16max_vfs_directory_size\x18\a \x01(\x04R\x13maxVfsDirectorySize\x12H\n" + + " artifact_definitions_directories\x18\b \x03(\tR\x1eartifactDefinitionsDirectories\x122\n" + + "\x16max_in_memory_group_by\x18\t \x01(\x04R\x12maxInMemoryGroupBy\x12-\n" + + "\x13acl_lru_timeout_sec\x18\r \x01(\x04R\x10aclLruTimeoutSec\x12E\n" + + "\x1funauthenticated_lru_timeout_sec\x18\x0e \x01(\x03R\x1cunauthenticatedLruTimeoutSec\x123\n" + + "\x16max_sparse_expand_size\x18\x0f \x01(\x04R\x13maxSparseExpandSize\x122\n" + + "\x15disable_server_events\x18\x1a \x01(\bR\x13disableServerEvents\x124\n" + + "\x16auth_redirect_template\x18\x1b \x01(\tR\x14authRedirectTemplate\x12:\n" + + "\x19disable_quarantine_button\x18\x1c \x01(\bR\x17disableQuarantineButton\x12#\n" + + "\rdefault_theme\x18\x1d \x01(\tR\fdefaultTheme\x12\x19\n" + + "\bmax_rows\x18\x1e \x01(\x04R\amaxRows\x12\x19\n" + + "\bmax_logs\x188 \x01(\x04R\amaxLogs\x12-\n" + + "\x13max_row_buffer_size\x18\x1f \x01(\x04R\x10maxRowBufferSize\x12$\n" + + "\x0emax_batch_wait\x18# \x01(\x04R\fmaxBatchWait\x12-\n" + + "\x12export_concurrency\x18( \x01(\x03R\x11exportConcurrency\x123\n" + + "\x16export_max_timeout_sec\x18) \x01(\x03R\x13exportMaxTimeoutSec\x124\n" + + "\x16watch_plugin_frequency\x18, \x01(\x03R\x14watchPluginFrequency\x127\n" + + "\x18watch_plugin_buffer_size\x18- \x01(\x03R\x15watchPluginBufferSize\x122\n" + + "\x15backup_period_seconds\x18/ \x01(\x03R\x13backupPeriodSeconds\x12E\n" + + "\x1fclient_info_housekeeping_period\x180 \x01(\x03R\x1cclientInfoHousekeepingPeriod\x12:\n" + + "\x19disable_unicode_usernames\x181 \x01(\bR\x17disableUnicodeUsernames\x124\n" + + "\x16reindex_period_seconds\x182 \x01(\x03R\x14reindexPeriodSeconds\x126\n" + + "\x17indexed_client_metadata\x183 \x03(\tR\x15indexedClientMetadata\x12C\n" + + "\x1edisable_active_inflight_checks\x184 \x01(\bR\x1bdisableActiveInflightChecks\x12.\n" + + "\x13inflight_check_time\x18; \x01(\x03R\x11inflightCheckTime\x122\n" + + "\x15write_internal_events\x185 \x01(\bR\x13writeInternalEvents\x12'\n" + + "\x0fallowed_plugins\x18\n" + + " \x03(\tR\x0eallowedPlugins\x12+\n" + + "\x11allowed_functions\x18\v \x03(\tR\x10allowedFunctions\x12+\n" + + "\x11allowed_accessors\x18\f \x03(\tR\x10allowedAccessors\x12%\n" + + "\x0edenied_plugins\x186 \x03(\tR\rdeniedPlugins\x12)\n" + + "\x10denied_functions\x187 \x03(\tR\x0fdeniedFunctions\x12)\n" + + "\x10denied_accessors\x18: \x03(\tR\x0fdeniedAccessors\x12>\n" + + "\x1blockdown_denied_permissions\x18 \x03(\tR\x19lockdownDeniedPermissions\x12:\n" + + "\x19certificate_validity_days\x18! \x01(\x03R\x17certificateValidityDays\x12X\n" + + ")disable_inventory_service_external_access\x18\" \x01(\bR%disableInventoryServiceExternalAccess\"\xad\x04\n" + + "\fCryptoConfig\x12\x1d\n" + + "\n" + + "root_certs\x18\x01 \x01(\tR\trootCerts\x12\x7f\n" + + "\x17certificate_thumbprints\x18\x02 \x03(\tBF\xe2\xfc\xe3\xc4\x01@\x12>SHA256 thumbprints of certificates that the client will trust.R\x16certificateThumbprints\x12\xd5\x01\n" + + "\x1dcertificate_verification_mode\x18\x03 \x01(\tB\x90\x01\xe2\xfc\xe3\xc4\x01\x89\x01\x12\x86\x01Selects the way in which Velociraptor verifies TLS certificates. Allowed values: PKI (the default), PKI_OR_THUMBPRINT, THUMBPRINT_ONLYR\x1bcertificateVerificationMode\x121\n" + + "\x15allow_weak_tls_server\x18\x04 \x01(\bR\x12allowWeakTlsServer\x12-\n" + + "\x12client_certificate\x18\x05 \x01(\tR\x11clientCertificate\x12C\n" + + "\x1eclient_certificate_private_key\x18\x06 \x01(\tR\x1bclientCertificatePrivateKey\"]\n" + + "\n" + + "MountPoint\x12\x1a\n" + + "\baccessor\x18\x01 \x01(\tR\baccessor\x12\x16\n" + + "\x06prefix\x18\x02 \x01(\tR\x06prefix\x12\x1b\n" + + "\tpath_type\x18\x03 \x01(\tR\bpathType\"\xf0\x02\n" + + "\x0fRemappingConfig\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12 \n" + + "\vdescription\x18\n" + + " \x01(\tR\vdescription\x12\x14\n" + + "\x05scope\x18\v \x01(\tR\x05scope\x12%\n" + + "\x04from\x18\x02 \x01(\v2\x11.proto.MountPointR\x04from\x12!\n" + + "\x02on\x18\x03 \x01(\v2\x11.proto.MountPointR\x02on\x12 \n" + + "\vpermissions\x18\x04 \x03(\tR\vpermissions\x12\x0e\n" + + "\x02os\x18\x05 \x01(\tR\x02os\x12\x1a\n" + + "\bhostname\x18\x06 \x01(\tR\bhostname\x12\x1f\n" + + "\x03env\x18\a \x03(\v2\r.proto.VQLEnvR\x03env\x12-\n" + + "\x12disabled_functions\x18\b \x03(\tR\x11disabledFunctions\x12)\n" + + "\x10disabled_plugins\x18\t \x03(\tR\x0fdisabledPlugins\"\x8a\a\n" + + "\bSecurity\x12?\n" + + "\x1callowed_file_accessor_prefix\x18\x01 \x03(\tR\x19allowedFileAccessorPrefix\x12=\n" + + "\x1bdenied_file_accessor_prefix\x18; \x03(\tR\x18deniedFileAccessorPrefix\x12;\n" + + "\x1aallowed_fs_accessor_prefix\x18\x02 \x03(\tR\x17allowedFsAccessorPrefix\x129\n" + + "\x19denied_fs_accessor_prefix\x18< \x03(\tR\x16deniedFsAccessorPrefix\x12'\n" + + "\x0fallowed_plugins\x18\n" + + " \x03(\tR\x0eallowedPlugins\x12+\n" + + "\x11allowed_functions\x18\v \x03(\tR\x10allowedFunctions\x12+\n" + + "\x11allowed_accessors\x18\f \x03(\tR\x10allowedAccessors\x12%\n" + + "\x0edenied_plugins\x186 \x03(\tR\rdeniedPlugins\x12)\n" + + "\x10denied_functions\x187 \x03(\tR\x0fdeniedFunctions\x12)\n" + + "\x10denied_accessors\x18: \x03(\tR\x0fdeniedAccessors\x12>\n" + + "\x1blockdown_denied_permissions\x18 \x03(\tR\x19lockdownDeniedPermissions\x12:\n" + + "\x19certificate_validity_days\x18! \x01(\x03R\x17certificateValidityDays\x12X\n" + + ")disable_inventory_service_external_access\x18\" \x01(\bR%disableInventoryServiceExternalAccess\x12\x1f\n" + + "\vsecrets_dek\x18\x03 \x01(\tR\n" + + "secretsDek\x12/\n" + + "\x14vql_must_use_secrets\x18\x05 \x01(\bR\x11vqlMustUseSecrets\x12*\n" + + "\x11shadowed_env_vars\x18\x04 \x03(\tR\x0fshadowedEnvVars\x122\n" + + "\x15allow_ancient_clients\x18= \x01(\bR\x13allowAncientClients\"\x96\r\n" + + "\x06Config\x12F\n" + + "\aversion\x18\b \x01(\v2\x0e.proto.VersionB\x1c\xe2\xfc\xe3\xc4\x01\x16\x12\x14Version information.R\aversion\x12J\n" + + "\x06Client\x18\x01 \x01(\v2\x13.proto.ClientConfigB\x1d\xe2\xfc\xe3\xc4\x01\x17\x12\x15Client configuration.R\x06Client\x12P\n" + + "\x03API\x18\x02 \x01(\v2\x10.proto.APIConfigB,\xe2\xfc\xe3\xc4\x01&\x12$Configuration for gRPC API endpoint.R\x03API\x12\"\n" + + "\x03GUI\x18\x03 \x01(\v2\x10.proto.GUIConfigR\x03GUI\x12\x1f\n" + + "\x02CA\x18\x04 \x01(\v2\x0f.proto.CAConfigR\x02CA\x121\n" + + "\bFrontend\x18\x05 \x01(\v2\x15.proto.FrontendConfigR\bFrontend\x12=\n" + + "\x0eExtraFrontends\x18\x1f \x03(\v2\x15.proto.FrontendConfigR\x0eExtraFrontends\x124\n" + + "\tDatastore\x18\x06 \x01(\v2\x16.proto.DatastoreConfigR\tDatastore\x122\n" + + "\tWriteback\x18\t \x01(\v2\x10.proto.WritebackB\x02\x18\x01R\tWriteback\x12%\n" + + "\x04Mail\x18\v \x01(\v2\x11.proto.MailConfigR\x04Mail\x12.\n" + + "\aLogging\x18\x17 \x01(\v2\x14.proto.LoggingConfigR\aLogging\x12+\n" + + "\x06Minion\x18( \x01(\v2\x13.proto.MinionConfigR\x06Minion\x12@\n" + + "\averbose\x18\x14 \x01(\bB&\xe2\xfc\xe3\xc4\x01 \x12\x1eEnable verbose logging output.R\averbose\x12\\\n" + + "\x13autocert_cert_cache\x18\x16 \x01(\tB,\xe2\xfc\xe3\xc4\x01&\x12$Path to store autocert certificates.R\x11autocertCertCache\x12n\n" + + "\n" + + "Monitoring\x18\x19 \x01(\v2\x17.proto.MonitoringConfigB5\xe2\xfc\xe3\xc4\x01/\x12-Where to bind prometheus monitoring endpoint.R\n" + + "Monitoring\x12\x7f\n" + + "\n" + + "api_config\x18\x1a \x01(\v2\x16.proto.ApiClientConfigBH\xe2\xfc\xe3\xc4\x01B\x12@If we loaded the api config we load this into the global config.R\tapiConfig\x12\x8f\x01\n" + + "\bautoexec\x18\x1c \x01(\v2\x15.proto.AutoExecConfigB\\\xe2\xfc\xe3\xc4\x01V\x12TIf this is specified we launch the binary with the given command line automatically.R\bautoexec\x12P\n" + + "\vserver_type\x18\x1e \x01(\tB/\xe2\xfc\xe3\xc4\x01)\x12'Type of server (linux, windows, darwin)R\n" + + "serverType\x12+\n" + + "\x11obfuscation_nonce\x18 \x01(\tR\x10obfuscationNonce\x12+\n" + + "\bdefaults\x18! \x01(\v2\x0f.proto.DefaultsR\bdefaults\x12'\n" + + "\x0fanalysis_target\x18\" \x01(\tR\x0eanalysisTarget\x126\n" + + "\n" + + "remappings\x18# \x03(\v2\x16.proto.RemappingConfigR\n" + + "remappings\x12\x15\n" + + "\x06org_id\x18$ \x01(\tR\x05orgId\x12\x19\n" + + "\borg_name\x18% \x01(\tR\aorgName\x12\x1d\n" + + "\n" + + "debug_mode\x18) \x01(\bR\tdebugMode\x127\n" + + "\bservices\x18& \x01(\v2\x1b.proto.ServerServicesConfigR\bservices\x12+\n" + + "\bsecurity\x18* \x01(\v2\x0f.proto.SecurityR\bsecurity\x12\x1a\n" + + "\blockdown\x18' \x01(\bR\blockdownB4Z2www.velocidex.com/golang/velociraptor/config/protob\x06proto3" var ( file_config_proto_rawDescOnce sync.Once - file_config_proto_rawDescData = file_config_proto_rawDesc + file_config_proto_rawDescData []byte ) func file_config_proto_rawDescGZIP() []byte { file_config_proto_rawDescOnce.Do(func() { - file_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_config_proto_rawDescData) + file_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_config_proto_rawDesc), len(file_config_proto_rawDesc))) }) return file_config_proto_rawDescData } var file_config_proto_msgTypes = make([]protoimpl.MessageInfo, 40) -var file_config_proto_goTypes = []interface{}{ +var file_config_proto_goTypes = []any{ (*Version)(nil), // 0: proto.Version (*FlowCheckPoint)(nil), // 1: proto.FlowCheckPoint (*Writeback)(nil), // 2: proto.Writeback @@ -6994,445 +5754,11 @@ func file_config_proto_init() { if File_config_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Version); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowCheckPoint); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Writeback); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InitialOrgRecord); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WindowsInstallerConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DarwinInstallerConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RingBufferConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*APIConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiClientConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProxyConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GUILink); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OIDCACL); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OIDCClaims); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Authenticator); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GUIConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GUIUser); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CAConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReverseProxyConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DynDNSConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FrontendResourceControl); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FrontendConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DatastoreConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MinionConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MailConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoggingRetentionConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoggingConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MonitoringConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AutoExecConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerServicesConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Defaults); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CryptoConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MountPoint); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemappingConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Security); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_config_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Config); 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_config_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_config_proto_rawDesc), len(file_config_proto_rawDesc)), NumEnums: 0, NumMessages: 40, NumExtensions: 0, @@ -7443,7 +5769,6 @@ func file_config_proto_init() { MessageInfos: file_config_proto_msgTypes, }.Build() File_config_proto = out.File - file_config_proto_rawDesc = nil file_config_proto_goTypes = nil file_config_proto_depIdxs = nil } diff --git a/crypto/ca.go b/crypto/ca.go index a356174ae..b2aede288 100644 --- a/crypto/ca.go +++ b/crypto/ca.go @@ -30,7 +30,6 @@ import ( errors "github.com/go-errors/errors" config_proto "www.velocidex.com/golang/velociraptor/config/proto" - "www.velocidex.com/golang/velociraptor/crypto/utils" crypto_utils "www.velocidex.com/golang/velociraptor/crypto/utils" ) @@ -136,13 +135,13 @@ func GenerateServerCert(config_obj *config_proto.Config, name string) (*CertBund return nil, err } - ca_cert, err := utils.ParseX509CertFromPemStr([]byte( + ca_cert, err := crypto_utils.ParseX509CertFromPemStr([]byte( config_obj.Client.CaCertificate)) if err != nil { return nil, err } - ca_private_key, err := utils.ParseRsaPrivateKeyFromPemStr( + ca_private_key, err := crypto_utils.ParseRsaPrivateKeyFromPemStr( []byte(config_obj.CA.PrivateKey)) if err != nil { return nil, err @@ -245,13 +244,13 @@ func ReissueServerCert(config_obj *config_proto.Config, return nil, err } - ca_cert, err := utils.ParseX509CertFromPemStr([]byte( + ca_cert, err := crypto_utils.ParseX509CertFromPemStr([]byte( config_obj.Client.CaCertificate)) if err != nil { return nil, err } - ca_private_key, err := utils.ParseRsaPrivateKeyFromPemStr( + ca_private_key, err := crypto_utils.ParseRsaPrivateKeyFromPemStr( []byte(config_obj.CA.PrivateKey)) if err != nil { return nil, err diff --git a/crypto/client/lru_test.go b/crypto/client/lru_test.go index 8df749eb7..7f0e376b8 100644 --- a/crypto/client/lru_test.go +++ b/crypto/client/lru_test.go @@ -18,7 +18,7 @@ func TestClientKeyLRU(t *testing.T) { outbound1 := []byte{2} // Do we have an outbound cipher? Not currently - cipher, pres = lru.GetOutboundCipher(client_id) + _, pres = lru.GetOutboundCipher(client_id) assert.False(t, pres) // Add the outbound cipher now. @@ -33,7 +33,7 @@ func TestClientKeyLRU(t *testing.T) { assert.Equal(t, cipher.encrypted_cipher, outbound1) // Check for inbound cipher - none set yet. - cipher, pres = lru.GetByInboundCipher(inbound1) + _, pres = lru.GetByInboundCipher(inbound1) assert.False(t, pres) // Set the inbound cipher @@ -49,7 +49,7 @@ func TestClientKeyLRU(t *testing.T) { assert.Equal(t, cipher.source, client_id) // Check for inbound cipher again - should still be cached - cipher, pres = lru.GetByInboundCipher(inbound1) + _, pres = lru.GetByInboundCipher(inbound1) assert.True(t, pres) // Now change the ciphers around and check the LRU is updating diff --git a/crypto/crypto_test.go b/crypto/crypto_test.go index 0cc19b88c..3e2e06f5a 100644 --- a/crypto/crypto_test.go +++ b/crypto/crypto_test.go @@ -33,7 +33,6 @@ import ( "github.com/stretchr/testify/suite" "google.golang.org/protobuf/proto" config_proto "www.velocidex.com/golang/velociraptor/config/proto" - "www.velocidex.com/golang/velociraptor/crypto/client" crypto_client "www.velocidex.com/golang/velociraptor/crypto/client" crypto_proto "www.velocidex.com/golang/velociraptor/crypto/proto" crypto_server "www.velocidex.com/golang/velociraptor/crypto/server" @@ -194,7 +193,7 @@ func (self *TestSuite) _EncryptMessageListWithSpoofedPackedMessage( } compressed_message_lists := [][]byte{plain_text} - output_cipher, err := client.NewCipher(self.client_id, + output_cipher, err := crypto_client.NewCipher(self.client_id, self.client_private_key, &self.server_private_key.PublicKey) if err != nil { return nil, err @@ -220,7 +219,7 @@ func (self *TestSuite) _EncryptMessageListWithSpoofedPackedMessage( return nil, errors.Wrap(err, 0) } - encrypted_serialized_packed_message_list, err := client.EncryptSymmetric( + encrypted_serialized_packed_message_list, err := crypto_client.EncryptSymmetric( output_cipher.CipherProperties(), serialized_packed_message_list, comms.PacketIv) @@ -230,7 +229,7 @@ func (self *TestSuite) _EncryptMessageListWithSpoofedPackedMessage( } comms.Encrypted = encrypted_serialized_packed_message_list - comms.FullHmac = client.CalcHMAC(comms, output_cipher.CipherProperties()) + comms.FullHmac = crypto_client.CalcHMAC(comms, output_cipher.CipherProperties()) result, err := proto.Marshal(comms) if err != nil { diff --git a/crypto/proto/jobs.pb.go b/crypto/proto/jobs.pb.go index 8a2fe8e83..5752fc1b6 100644 --- a/crypto/proto/jobs.pb.go +++ b/crypto/proto/jobs.pb.go @@ -11,6 +11,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto "www.velocidex.com/golang/velociraptor/actions/proto" _ "www.velocidex.com/golang/velociraptor/proto" ) @@ -468,10 +469,7 @@ func (ResumeTransactions_Compression) EnumDescriptor() ([]byte, []int) { // Represents a complete collection. type FlowRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` VQLClientActions []*proto.VQLCollectorArgs `protobuf:"bytes,1,rep,name=VQLClientActions,proto3" json:"VQLClientActions,omitempty"` // The maximum time in milliseconds the client will batch log // messages before forwarding them to the server. If this is 0, no @@ -483,7 +481,7 @@ type FlowRequest struct { // sending progress updates on the running flows. This is useful // to monitor how the client is progress but if it done too often // increases load on the server. Default is 5000 (5sec) and you - // can update the default in + // can updatet the default in // Client.default_server_flow_stats_update FlowUpdateTime uint64 `protobuf:"varint,3,opt,name=flow_update_time,json=flowUpdateTime,proto3" json:"flow_update_time,omitempty"` // A limit on total number of rows returned from the @@ -502,15 +500,15 @@ type FlowRequest struct { // flagged with an error depending on the log message. LogErrorRegex string `protobuf:"bytes,8,opt,name=log_error_regex,json=logErrorRegex,proto3" json:"log_error_regex,omitempty"` Compression FlowRequest_Compression `protobuf:"varint,9,opt,name=compression,proto3,enum=proto.FlowRequest_Compression" json:"compression,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FlowRequest) Reset() { *x = FlowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FlowRequest) String() string { @@ -521,7 +519,7 @@ func (*FlowRequest) ProtoMessage() {} func (x *FlowRequest) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -601,11 +599,8 @@ func (x *FlowRequest) GetCompression() FlowRequest_Compression { // This message is sent between the client and the server. type VeloMessage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` // An incrementing query id in this session. QueryId uint64 `protobuf:"varint,37,opt,name=query_id,json=queryId,proto3" json:"query_id,omitempty"` RequestId uint64 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` @@ -651,7 +646,7 @@ type VeloMessage struct { // Instructs the client to resume transactions ResumeTransactions *ResumeTransactions `protobuf:"bytes,45,opt,name=ResumeTransactions,proto3" json:"ResumeTransactions,omitempty"` // Check up on in progress flows. Causes the client to return a set - // of FlowStats for in-flight flows. + // of FlowStats for inflight flows. FlowStatsRequest *FlowStatsRequest `protobuf:"bytes,43,opt,name=flow_stats_request,json=flowStatsRequest,proto3" json:"flow_stats_request,omitempty"` Cancel *Cancel `protobuf:"bytes,32,opt,name=Cancel,proto3" json:"Cancel,omitempty"` UpdateForeman *proto.ForemanCheckin `protobuf:"bytes,35,opt,name=UpdateForeman,proto3" json:"UpdateForeman,omitempty"` @@ -670,16 +665,16 @@ type VeloMessage struct { // DEPRECATED: // The final response to a request carries this type which indicates it is a // status message. - Type VeloMessage_Type `protobuf:"varint,8,opt,name=type,proto3,enum=proto.VeloMessage_Type" json:"type,omitempty"` + Type VeloMessage_Type `protobuf:"varint,8,opt,name=type,proto3,enum=proto.VeloMessage_Type" json:"type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *VeloMessage) Reset() { *x = VeloMessage{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VeloMessage) String() string { @@ -690,7 +685,7 @@ func (*VeloMessage) ProtoMessage() {} func (x *VeloMessage) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -916,20 +911,17 @@ func (x *VeloMessage) GetType() VeloMessage_Type { } type Cancel struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Principal string `protobuf:"bytes,1,opt,name=principal,proto3" json:"principal,omitempty"` unknownFields protoimpl.UnknownFields - - Principal string `protobuf:"bytes,1,opt,name=principal,proto3" json:"principal,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Cancel) Reset() { *x = Cancel{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Cancel) String() string { @@ -940,7 +932,7 @@ func (*Cancel) ProtoMessage() {} func (x *Cancel) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -964,22 +956,19 @@ func (x *Cancel) GetPrincipal() string { // Certificates are exchanged with this. type Certificate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type Certificate_Type `protobuf:"varint,1,opt,name=type,proto3,enum=proto.Certificate_Type" json:"type,omitempty"` + Pem []byte `protobuf:"bytes,2,opt,name=pem,proto3" json:"pem,omitempty"` + Cn string `protobuf:"bytes,3,opt,name=cn,proto3" json:"cn,omitempty"` unknownFields protoimpl.UnknownFields - - Type Certificate_Type `protobuf:"varint,1,opt,name=type,proto3,enum=proto.Certificate_Type" json:"type,omitempty"` - Pem []byte `protobuf:"bytes,2,opt,name=pem,proto3" json:"pem,omitempty"` - Cn string `protobuf:"bytes,3,opt,name=cn,proto3" json:"cn,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Certificate) Reset() { *x = Certificate{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Certificate) String() string { @@ -990,7 +979,7 @@ func (*Certificate) ProtoMessage() {} func (x *Certificate) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1029,31 +1018,28 @@ func (x *Certificate) GetCn() string { // A periodic message sent from the client to the server to update the // server about the flow progress. type FlowStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TotalUploadedFiles uint64 `protobuf:"varint,1,opt,name=total_uploaded_files,json=totalUploadedFiles,proto3" json:"total_uploaded_files,omitempty"` - TotalExpectedUploadedBytes uint64 `protobuf:"varint,2,opt,name=total_expected_uploaded_bytes,json=totalExpectedUploadedBytes,proto3" json:"total_expected_uploaded_bytes,omitempty"` - TotalUploadedBytes uint64 `protobuf:"varint,3,opt,name=total_uploaded_bytes,json=totalUploadedBytes,proto3" json:"total_uploaded_bytes,omitempty"` - TotalCollectedRows uint64 `protobuf:"varint,4,opt,name=total_collected_rows,json=totalCollectedRows,proto3" json:"total_collected_rows,omitempty"` - TotalLogs uint64 `protobuf:"varint,5,opt,name=total_logs,json=totalLogs,proto3" json:"total_logs,omitempty"` - TransactionsOutstanding uint64 `protobuf:"varint,10,opt,name=transactions_outstanding,json=transactionsOutstanding,proto3" json:"transactions_outstanding,omitempty"` - Timestamp uint64 `protobuf:"varint,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - NamesWithResponse []string `protobuf:"bytes,9,rep,name=names_with_response,json=namesWithResponse,proto3" json:"names_with_response,omitempty"` - QueryStatus []*VeloStatus `protobuf:"bytes,7,rep,name=query_status,json=queryStatus,proto3" json:"query_status,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + TotalUploadedFiles uint64 `protobuf:"varint,1,opt,name=total_uploaded_files,json=totalUploadedFiles,proto3" json:"total_uploaded_files,omitempty"` + TotalExpectedUploadedBytes uint64 `protobuf:"varint,2,opt,name=total_expected_uploaded_bytes,json=totalExpectedUploadedBytes,proto3" json:"total_expected_uploaded_bytes,omitempty"` + TotalUploadedBytes uint64 `protobuf:"varint,3,opt,name=total_uploaded_bytes,json=totalUploadedBytes,proto3" json:"total_uploaded_bytes,omitempty"` + TotalCollectedRows uint64 `protobuf:"varint,4,opt,name=total_collected_rows,json=totalCollectedRows,proto3" json:"total_collected_rows,omitempty"` + TotalLogs uint64 `protobuf:"varint,5,opt,name=total_logs,json=totalLogs,proto3" json:"total_logs,omitempty"` + TransactionsOutstanding uint64 `protobuf:"varint,10,opt,name=transactions_outstanding,json=transactionsOutstanding,proto3" json:"transactions_outstanding,omitempty"` + Timestamp uint64 `protobuf:"varint,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + NamesWithResponse []string `protobuf:"bytes,9,rep,name=names_with_response,json=namesWithResponse,proto3" json:"names_with_response,omitempty"` + QueryStatus []*VeloStatus `protobuf:"bytes,7,rep,name=query_status,json=queryStatus,proto3" json:"query_status,omitempty"` // When this is true, the flow is considered complete. It is // guaranteed to only fire once. - FlowComplete bool `protobuf:"varint,8,opt,name=flow_complete,json=flowComplete,proto3" json:"flow_complete,omitempty"` + FlowComplete bool `protobuf:"varint,8,opt,name=flow_complete,json=flowComplete,proto3" json:"flow_complete,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FlowStats) Reset() { *x = FlowStats{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FlowStats) String() string { @@ -1064,7 +1050,7 @@ func (*FlowStats) ProtoMessage() {} func (x *FlowStats) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1151,20 +1137,17 @@ func (x *FlowStats) GetFlowComplete() bool { // Sent from the server to the client to check up on in flight flows. type FlowStatsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FlowId []string `protobuf:"bytes,1,rep,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` unknownFields protoimpl.UnknownFields - - FlowId []string `protobuf:"bytes,1,rep,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *FlowStatsRequest) Reset() { *x = FlowStatsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FlowStatsRequest) String() string { @@ -1175,7 +1158,7 @@ func (*FlowStatsRequest) ProtoMessage() {} func (x *FlowStatsRequest) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1198,20 +1181,17 @@ func (x *FlowStatsRequest) GetFlowId() []string { } type FlowStatsSummaryItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` unknownFields protoimpl.UnknownFields - - FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *FlowStatsSummaryItem) Reset() { *x = FlowStatsSummaryItem{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FlowStatsSummaryItem) String() string { @@ -1222,7 +1202,7 @@ func (*FlowStatsSummaryItem) ProtoMessage() {} func (x *FlowStatsSummaryItem) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1247,14 +1227,11 @@ func (x *FlowStatsSummaryItem) GetFlowId() string { // This is a status response that is sent for each complete // query. Velociraptor collections consist of multiple queries (for // example collecting multiple artifacts or artifacts with multiple -// sources). Each query request elicits a status message when +// sources). Each query request ellicits a status message when // finished to indicate the query's success status and send stats // about it. type VeloStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Status VeloStatus_ReturnedStatus `protobuf:"varint,1,opt,name=status,proto3,enum=proto.VeloStatus_ReturnedStatus" json:"status,omitempty"` ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` Backtrace string `protobuf:"bytes,3,opt,name=backtrace,proto3" json:"backtrace,omitempty"` @@ -1278,15 +1255,15 @@ type VeloStatus struct { QueryId int64 `protobuf:"varint,8,opt,name=query_id,json=queryId,proto3" json:"query_id,omitempty"` TotalQueries int64 `protobuf:"varint,9,opt,name=total_queries,json=totalQueries,proto3" json:"total_queries,omitempty"` TransactionsOutstanding uint64 `protobuf:"varint,16,opt,name=transactions_outstanding,json=transactionsOutstanding,proto3" json:"transactions_outstanding,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *VeloStatus) Reset() { *x = VeloStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VeloStatus) String() string { @@ -1297,7 +1274,7 @@ func (*VeloStatus) ProtoMessage() {} func (x *VeloStatus) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1426,20 +1403,17 @@ func (x *VeloStatus) GetTransactionsOutstanding() uint64 { // This is a list of job messages. type MessageList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Job []*VeloMessage `protobuf:"bytes,1,rep,name=job,proto3" json:"job,omitempty"` unknownFields protoimpl.UnknownFields - - Job []*VeloMessage `protobuf:"bytes,1,rep,name=job,proto3" json:"job,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MessageList) Reset() { *x = MessageList{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageList) String() string { @@ -1450,7 +1424,7 @@ func (*MessageList) ProtoMessage() {} func (x *MessageList) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1474,25 +1448,22 @@ func (x *MessageList) GetJob() []*VeloMessage { // This is the protobuf which is transmitted on the wire type PackedMessageList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // How the message_list element is compressed. Compression PackedMessageList_CompressionType `protobuf:"varint,4,opt,name=compression,proto3,enum=proto.PackedMessageList_CompressionType" json:"compression,omitempty"` // A serialized and compressed MessageList for signing - MessageList [][]byte `protobuf:"bytes,1,rep,name=message_list,json=messageList,proto3" json:"message_list,omitempty"` - Timestamp uint64 `protobuf:"varint,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Nonce string `protobuf:"bytes,7,opt,name=nonce,proto3" json:"nonce,omitempty"` + MessageList [][]byte `protobuf:"bytes,1,rep,name=message_list,json=messageList,proto3" json:"message_list,omitempty"` + Timestamp uint64 `protobuf:"varint,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Nonce string `protobuf:"bytes,7,opt,name=nonce,proto3" json:"nonce,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PackedMessageList) Reset() { *x = PackedMessageList{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PackedMessageList) String() string { @@ -1503,7 +1474,7 @@ func (*PackedMessageList) ProtoMessage() {} func (x *PackedMessageList) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1550,12 +1521,9 @@ func (x *PackedMessageList) GetNonce() string { // packets. Can be re-verified on demand but it is retransmitted on // each packet and cached on each end. type CipherProperties struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` // This IV is used to encrypt the cipher metadata block. Note: Both the // CipherProperties() and the CipherMetadata() protobufs do not change for all // messages in this session. @@ -1563,16 +1531,16 @@ type CipherProperties struct { // The key used for the hmac. HmacKey []byte `protobuf:"bytes,5,opt,name=hmac_key,json=hmacKey,proto3" json:"hmac_key,omitempty"` // The API version of the cipher. - HmacType CipherProperties_HMACType `protobuf:"varint,6,opt,name=hmac_type,json=hmacType,proto3,enum=proto.CipherProperties_HMACType" json:"hmac_type,omitempty"` + HmacType CipherProperties_HMACType `protobuf:"varint,6,opt,name=hmac_type,json=hmacType,proto3,enum=proto.CipherProperties_HMACType" json:"hmac_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CipherProperties) Reset() { *x = CipherProperties{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CipherProperties) String() string { @@ -1583,7 +1551,7 @@ func (*CipherProperties) ProtoMessage() {} func (x *CipherProperties) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1634,22 +1602,19 @@ func (x *CipherProperties) GetHmacType() CipherProperties_HMACType { } type CipherMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` // The signature of the encrypted cipher block. - Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` + Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CipherMetadata) Reset() { *x = CipherMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CipherMetadata) String() string { @@ -1660,7 +1625,7 @@ func (*CipherMetadata) ProtoMessage() {} func (x *CipherMetadata) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1692,10 +1657,7 @@ func (x *CipherMetadata) GetSignature() []byte { // The protobuf actually sent in the POST request (or received in the GET). // Next field: 11 type ClientCommunication struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // This message is a serialized PackedMessageList() protobuf, encrypted using // the session key (Encrypted inside field 2) and the per-packet IV (field 8). Encrypted []byte `protobuf:"bytes,1,opt,name=encrypted,proto3" json:"encrypted,omitempty"` @@ -1727,16 +1689,16 @@ type ClientCommunication struct { // periodically to the client to kep the client connection up and // keep the client waiting for the message to be processed. This // padding can be ignored. - Padding []uint64 `protobuf:"varint,11,rep,packed,name=padding,proto3" json:"padding,omitempty"` + Padding []uint64 `protobuf:"varint,11,rep,packed,name=padding,proto3" json:"padding,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ClientCommunication) Reset() { *x = ClientCommunication{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClientCommunication) String() string { @@ -1747,7 +1709,7 @@ func (*ClientCommunication) ProtoMessage() {} func (x *ClientCommunication) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1819,10 +1781,7 @@ func (x *ClientCommunication) GetPadding() []uint64 { } type LogMessage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // An incremental ID of the first log message Id int64 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"` // Total number of rows encoded in the jsonl field. @@ -1840,16 +1799,16 @@ type LogMessage struct { // The artifact name that we were running at the time. Artifact string `protobuf:"bytes,3,opt,name=artifact,proto3" json:"artifact,omitempty"` // DEFAULT, ERROR, DEBUG - Level string `protobuf:"bytes,4,opt,name=level,proto3" json:"level,omitempty"` + Level string `protobuf:"bytes,4,opt,name=level,proto3" json:"level,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LogMessage) Reset() { *x = LogMessage{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LogMessage) String() string { @@ -1860,7 +1819,7 @@ func (*LogMessage) ProtoMessage() {} func (x *LogMessage) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1934,23 +1893,20 @@ func (x *LogMessage) GetLevel() string { // Message written to the data store with the PEM of the client's // public key. type PublicKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pem []byte `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Pem []byte `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"` // The timestamp when the key was saved (the client // enrolled). This is used to deduce the first_seen_time. - EnrollTime uint64 `protobuf:"varint,2,opt,name=enroll_time,json=enrollTime,proto3" json:"enroll_time,omitempty"` + EnrollTime uint64 `protobuf:"varint,2,opt,name=enroll_time,json=enrollTime,proto3" json:"enroll_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PublicKey) Reset() { *x = PublicKey{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PublicKey) String() string { @@ -1961,7 +1917,7 @@ func (*PublicKey) ProtoMessage() {} func (x *PublicKey) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1991,10 +1947,7 @@ func (x *PublicKey) GetEnrollTime() uint64 { } type ResumeTransactions struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` Timeout uint64 `protobuf:"varint,7,opt,name=timeout,proto3" json:"timeout,omitempty"` @@ -2002,15 +1955,15 @@ type ResumeTransactions struct { Compression ResumeTransactions_Compression `protobuf:"varint,4,opt,name=compression,proto3,enum=proto.ResumeTransactions_Compression" json:"compression,omitempty"` Transactions []*proto.UploadTransaction `protobuf:"bytes,5,rep,name=transactions,proto3" json:"transactions,omitempty"` QueryStats []*VeloStatus `protobuf:"bytes,6,rep,name=query_stats,json=queryStats,proto3" json:"query_stats,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResumeTransactions) Reset() { *x = ResumeTransactions{} - if protoimpl.UnsafeEnabled { - mi := &file_jobs_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_jobs_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResumeTransactions) String() string { @@ -2021,7 +1974,7 @@ func (*ResumeTransactions) ProtoMessage() {} func (x *ResumeTransactions) ProtoReflect() protoreflect.Message { mi := &file_jobs_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2087,419 +2040,212 @@ func (x *ResumeTransactions) GetQueryStats() []*VeloStatus { var File_jobs_proto protoreflect.FileDescriptor -var file_jobs_proto_rawDesc = []byte{ - 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x6e, - 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x71, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0xbe, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x43, 0x0a, 0x10, 0x56, 0x51, 0x4c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x41, 0x72, 0x67, 0x73, 0x52, 0x10, 0x56, 0x51, 0x4c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x5f, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x6c, 0x6f, 0x67, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, - 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, - 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, - 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x10, - 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, - 0x4c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x52, 0x05, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6c, 0x6f, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x40, 0x0a, - 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x08, - 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x4c, 0x49, 0x42, - 0x10, 0x01, 0x22, 0x85, 0x0e, 0x0a, 0x0b, 0x56, 0x65, 0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x5f, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x40, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3a, 0x12, 0x38, - 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x64, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x62, 0x65, 0x6c, - 0x6f, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x6f, 0x2e, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, - 0x25, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, 0x75, - 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x56, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x50, 0x12, 0x4e, 0x54, 0x68, 0x65, 0x20, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x28, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x29, 0x2e, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x18, - 0x24, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5d, 0x0a, - 0x0b, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x3c, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x36, 0x12, 0x34, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x31, 0x2e, - 0x52, 0x0a, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x28, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0a, 0x61, - 0x75, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0a, 0x66, 0x6c, - 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x65, 0x6d, 0x61, - 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x6d, 0x61, 0x6e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x0e, 0x46, 0x6f, 0x72, 0x65, 0x6d, 0x61, 0x6e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x12, 0x31, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x52, 0x0a, 0x46, 0x69, - 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x11, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x55, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x24, 0x0a, 0x03, 0x43, 0x53, 0x52, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x52, 0x03, 0x43, 0x53, 0x52, 0x12, 0x34, 0x0a, 0x0b, 0x56, 0x51, 0x4c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0b, 0x56, 0x51, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0a, - 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x0a, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x21, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x04, 0x50, 0x69, - 0x6e, 0x67, 0x12, 0x40, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x52, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x56, 0x51, 0x4c, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x52, 0x0f, 0x56, 0x51, 0x4c, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, - 0x12, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x12, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x2b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x10, 0x66, - 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x25, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x06, - 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x3b, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x46, 0x6f, 0x72, 0x65, 0x6d, 0x61, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x6d, 0x61, 0x6e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x65, - 0x6d, 0x61, 0x6e, 0x12, 0x31, 0x0a, 0x0c, 0x4b, 0x69, 0x6c, 0x6c, 0x4b, 0x69, 0x6c, 0x6c, 0x4b, - 0x69, 0x6c, 0x6c, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x0c, 0x4b, 0x69, 0x6c, 0x6c, 0x4b, 0x69, - 0x6c, 0x6c, 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x8d, 0x01, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x79, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x73, 0x12, 0x71, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, - 0x65, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x73, 0x65, 0x74, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6c, 0x6f, - 0x77, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, - 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x72, - 0x67, 0x73, 0x5f, 0x72, 0x64, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x61, 0x72, 0x67, 0x73, 0x52, 0x64, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3c, 0x0a, 0x12, 0x41, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x41, 0x55, 0x54, 0x48, 0x45, 0x4e, 0x54, 0x49, 0x43, - 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x55, 0x54, 0x48, 0x45, 0x4e, - 0x54, 0x49, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x22, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x00, 0x12, 0x0a, - 0x0a, 0x06, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x01, 0x22, 0x26, 0x0a, 0x06, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, - 0x61, 0x6c, 0x22, 0x7e, 0x0a, 0x0b, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x70, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x70, 0x65, 0x6d, - 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x63, 0x6e, - 0x22, 0x20, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x52, 0x10, - 0x00, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x52, 0x54, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x43, 0x41, - 0x10, 0x02, 0x22, 0xe7, 0x03, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x12, 0x30, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x34, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x56, 0x65, 0x6c, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x2b, 0x0a, 0x10, - 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x14, 0x46, 0x6c, 0x6f, - 0x77, 0x53, 0x74, 0x61, 0x74, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x22, 0xbf, 0x05, 0x0a, 0x0a, 0x56, - 0x65, 0x6c, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x63, - 0x6b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x77, 0x69, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x25, 0x0a, - 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x65, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x65, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x6f, - 0x77, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x6f, 0x77, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, - 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x51, 0x75, 0x65, - 0x72, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, - 0x4b, 0x0a, 0x0e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x4f, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45, 0x4e, 0x45, 0x52, - 0x49, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x0b, 0x22, 0x33, 0x0a, 0x0b, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x03, 0x6a, - 0x6f, 0x62, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6a, 0x6f, - 0x62, 0x22, 0xf0, 0x05, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x4e, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x48, 0x0a, 0x0b, 0x52, 0x44, 0x46, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x39, - 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x73, - 0x20, 0x69, 0x74, 0x73, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x74, - 0x6f, 0x20, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x20, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x2e, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0xc6, 0x03, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x42, 0xaf, 0x03, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0xa8, 0x03, 0x12, 0xa5, - 0x03, 0x41, 0x20, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x20, - 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x77, 0x68, - 0x69, 0x63, 0x68, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x67, 0x69, 0x76, 0x65, - 0x6e, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x75, 0x73, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x65, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x6e, - 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x20, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x61, 0x6e, 0x79, 0x20, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x20, 0x4e, 0x4f, 0x54, 0x45, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, - 0x20, 0x77, 0x65, 0x61, 0x6b, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x20, 0x2d, 0x20, 0x61, 0x6e, - 0x79, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x68, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x6f, 0x6d, - 0x69, 0x73, 0x65, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6d, 0x61, 0x79, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x69, 0x74, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x73, - 0x20, 0x69, 0x74, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x20, 0x68, 0x61, 0x72, - 0x64, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x6a, 0x6f, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x56, 0x65, - 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x20, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x35, 0x0a, - 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x5a, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, - 0x4f, 0x4e, 0x10, 0x01, 0x22, 0xa4, 0x02, 0x0a, 0x10, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x15, 0xe2, 0xfc, 0xe3, 0xc4, - 0x01, 0x0f, 0x0a, 0x0d, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, - 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x69, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x15, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x0f, 0x0a, 0x0d, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, - 0x65, 0x79, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x76, 0x12, 0x30, - 0x0a, 0x08, 0x68, 0x6d, 0x61, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, - 0x42, 0x15, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x0f, 0x0a, 0x0d, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x07, 0x68, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, - 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x6d, 0x61, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x69, 0x70, 0x68, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x48, 0x4d, 0x41, - 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x68, 0x6d, 0x61, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x2a, 0x0a, 0x08, 0x48, 0x4d, 0x41, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x53, - 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x48, 0x4d, 0x41, 0x43, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x48, 0x4d, 0x41, 0x43, 0x10, 0x01, 0x22, 0x97, 0x01, 0x0a, 0x0e, - 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x67, - 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x4f, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x49, 0x0a, 0x06, 0x52, 0x44, 0x46, 0x55, 0x52, 0x4e, 0x12, 0x3f, - 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x20, 0x73, 0x68, 0x6f, 0x75, - 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x2e, 0x52, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xa4, 0x03, 0x0a, 0x13, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, - 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x65, 0x64, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x65, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x32, 0x0a, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x76, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x15, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x0f, 0x0a, 0x0d, 0x45, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x08, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x49, 0x76, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x68, 0x6d, 0x61, 0x63, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x48, 0x6d, 0x61, 0x63, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x04, - 0x52, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x07, - 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0xc8, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x42, 0x41, 0x44, 0x5f, 0x52, - 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x90, 0x03, 0x12, 0x11, 0x0a, 0x0c, 0x43, 0x49, 0x50, - 0x48, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x96, 0x03, 0x22, 0xd2, 0x02, 0x0a, - 0x0a, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x52, 0x6f, 0x77, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x73, 0x6f, 0x6e, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6a, 0x73, 0x6f, 0x6e, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x24, 0x12, 0x22, 0x54, 0x68, 0x65, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x5b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x3d, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x37, 0x0a, 0x0b, 0x52, - 0x44, 0x46, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x54, 0x68, 0x65, 0x20, - 0x74, 0x69, 0x6d, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x22, 0x3e, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x70, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x70, 0x65, 0x6d, - 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0xec, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, - 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, - 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0c, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x0b, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x21, 0x0a, - 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, - 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x4c, 0x49, 0x42, 0x10, 0x01, - 0x42, 0x34, 0x5a, 0x32, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, - 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, - 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_jobs_proto_rawDesc = "" + + "\n" + + "\n" + + "jobs.proto\x12\x05proto\x1a\x14proto/semantic.proto\x1a\x1dactions/proto/transport.proto\x1a\x17actions/proto/vql.proto\"\xbe\x03\n" + + "\vFlowRequest\x12C\n" + + "\x10VQLClientActions\x18\x01 \x03(\v2\x17.proto.VQLCollectorArgsR\x10VQLClientActions\x12$\n" + + "\x0elog_batch_time\x18\x02 \x01(\x04R\flogBatchTime\x12(\n" + + "\x10flow_update_time\x18\x03 \x01(\x04R\x0eflowUpdateTime\x12\x19\n" + + "\bmax_rows\x18\x04 \x01(\x04R\amaxRows\x12\x19\n" + + "\bmax_logs\x18\a \x01(\x04R\amaxLogs\x12(\n" + + "\x10max_upload_bytes\x18\x05 \x01(\x04R\x0emaxUploadBytes\x12-\n" + + "\x05trace\x18\x06 \x03(\v2\x17.proto.VQLCollectorArgsR\x05trace\x12&\n" + + "\x0flog_error_regex\x18\b \x01(\tR\rlogErrorRegex\x12@\n" + + "\vcompression\x18\t \x01(\x0e2\x1e.proto.FlowRequest.CompressionR\vcompression\"!\n" + + "\vCompression\x12\b\n" + + "\x04NONE\x10\x00\x12\b\n" + + "\x04ZLIB\x10\x01\"\x85\x0e\n" + + "\vVeloMessage\x12_\n" + + "\n" + + "session_id\x18\x01 \x01(\tB@\xe2\xfc\xe3\xc4\x01:\x128The session id of the flow that this message belongs to.R\tsessionId\x12\x19\n" + + "\bquery_id\x18% \x01(\x04R\aqueryId\x12u\n" + + "\n" + + "request_id\x18\x02 \x01(\x04BV\xe2\xfc\xe3\xc4\x01P\x12NThe message is in response to this request number (requests increment from 1).R\trequestId\x12\x16\n" + + "\x06urgent\x18$ \x01(\bR\x06urgent\x12]\n" + + "\vresponse_id\x18\x03 \x01(\x04B<\xe2\xfc\xe3\xc4\x016\x124Responses for each request are also numbered from 1.R\n" + + "responseId\x12\x16\n" + + "\x06source\x18\x06 \x01(\tR\x06source\x12\x15\n" + + "\x06org_id\x18( \x01(\tR\x05orgId\x12D\n" + + "\n" + + "auth_state\x18\a \x01(\x0e2%.proto.VeloMessage.AuthorizationStateR\tauthState\x12\x17\n" + + "\atask_id\x18\x0f \x01(\x04R\x06taskId\x12/\n" + + "\n" + + "flow_stats\x18) \x01(\v2\x10.proto.FlowStatsR\tflowStats\x12)\n" + + "\x06status\x18\x19 \x01(\v2\x11.proto.VeloStatusR\x06status\x12=\n" + + "\x0eForemanCheckin\x18\x1b \x01(\v2\x15.proto.ForemanCheckinR\x0eForemanCheckin\x121\n" + + "\n" + + "FileBuffer\x18\x1c \x01(\v2\x11.proto.FileBufferR\n" + + "FileBuffer\x12F\n" + + "\x11UploadTransaction\x18, \x01(\v2\x18.proto.UploadTransactionR\x11UploadTransaction\x12$\n" + + "\x03CSR\x18\x1d \x01(\v2\x12.proto.CertificateR\x03CSR\x124\n" + + "\vVQLResponse\x18! \x01(\v2\x12.proto.VQLResponseR\vVQLResponse\x121\n" + + "\n" + + "LogMessage\x18\" \x01(\v2\x11.proto.LogMessageR\n" + + "LogMessage\x12!\n" + + "\x04Ping\x18' \x01(\v2\r.proto.CancelR\x04Ping\x12@\n" + + "\x10UpdateEventTable\x18\x1f \x01(\v2\x14.proto.VQLEventTableR\x10UpdateEventTable\x12A\n" + + "\x0fVQLClientAction\x18\x1e \x01(\v2\x17.proto.VQLCollectorArgsR\x0fVQLClientAction\x124\n" + + "\vFlowRequest\x18* \x01(\v2\x12.proto.FlowRequestR\vFlowRequest\x12I\n" + + "\x12ResumeTransactions\x18- \x01(\v2\x19.proto.ResumeTransactionsR\x12ResumeTransactions\x12E\n" + + "\x12flow_stats_request\x18+ \x01(\v2\x17.proto.FlowStatsRequestR\x10flowStatsRequest\x12%\n" + + "\x06Cancel\x18 \x01(\v2\r.proto.CancelR\x06Cancel\x12;\n" + + "\rUpdateForeman\x18# \x01(\v2\x15.proto.ForemanCheckinR\rUpdateForeman\x121\n" + + "\fKillKillKill\x18& \x01(\v2\r.proto.CancelR\fKillKillKill\x12\x8d\x01\n" + + "\x04name\x18\x04 \x01(\tBy\xe2\xfc\xe3\xc4\x01s\x12qThis is the name of the client action that will be executed. It is set by the flow and is executed by the client.R\x04name\x12\x12\n" + + "\x04args\x18\x05 \x01(\fR\x04args\x12\"\n" + + "\rargs_rdf_name\x18\x0e \x01(\tR\vargsRdfName\x12+\n" + + "\x04type\x18\b \x01(\x0e2\x17.proto.VeloMessage.TypeR\x04type\"<\n" + + "\x12AuthorizationState\x12\x13\n" + + "\x0fUNAUTHENTICATED\x10\x00\x12\x11\n" + + "\rAUTHENTICATED\x10\x01\"\x1f\n" + + "\x04Type\x12\v\n" + + "\aMESSAGE\x10\x00\x12\n" + + "\n" + + "\x06STATUS\x10\x01\"&\n" + + "\x06Cancel\x12\x1c\n" + + "\tprincipal\x18\x01 \x01(\tR\tprincipal\"~\n" + + "\vCertificate\x12+\n" + + "\x04type\x18\x01 \x01(\x0e2\x17.proto.Certificate.TypeR\x04type\x12\x10\n" + + "\x03pem\x18\x02 \x01(\fR\x03pem\x12\x0e\n" + + "\x02cn\x18\x03 \x01(\tR\x02cn\" \n" + + "\x04Type\x12\a\n" + + "\x03CSR\x10\x00\x12\a\n" + + "\x03CRT\x10\x01\x12\x06\n" + + "\x02CA\x10\x02\"\xe7\x03\n" + + "\tFlowStats\x120\n" + + "\x14total_uploaded_files\x18\x01 \x01(\x04R\x12totalUploadedFiles\x12A\n" + + "\x1dtotal_expected_uploaded_bytes\x18\x02 \x01(\x04R\x1atotalExpectedUploadedBytes\x120\n" + + "\x14total_uploaded_bytes\x18\x03 \x01(\x04R\x12totalUploadedBytes\x120\n" + + "\x14total_collected_rows\x18\x04 \x01(\x04R\x12totalCollectedRows\x12\x1d\n" + + "\n" + + "total_logs\x18\x05 \x01(\x04R\ttotalLogs\x129\n" + + "\x18transactions_outstanding\x18\n" + + " \x01(\x04R\x17transactionsOutstanding\x12\x1c\n" + + "\ttimestamp\x18\x06 \x01(\x04R\ttimestamp\x12.\n" + + "\x13names_with_response\x18\t \x03(\tR\x11namesWithResponse\x124\n" + + "\fquery_status\x18\a \x03(\v2\x11.proto.VeloStatusR\vqueryStatus\x12#\n" + + "\rflow_complete\x18\b \x01(\bR\fflowComplete\"+\n" + + "\x10FlowStatsRequest\x12\x17\n" + + "\aflow_id\x18\x01 \x03(\tR\x06flowId\"/\n" + + "\x14FlowStatsSummaryItem\x12\x17\n" + + "\aflow_id\x18\x01 \x01(\tR\x06flowId\"\xbf\x05\n" + + "\n" + + "VeloStatus\x128\n" + + "\x06status\x18\x01 \x01(\x0e2 .proto.VeloStatus.ReturnedStatusR\x06status\x12#\n" + + "\rerror_message\x18\x02 \x01(\tR\ferrorMessage\x12\x1c\n" + + "\tbacktrace\x18\x03 \x01(\tR\tbacktrace\x12\x1a\n" + + "\bduration\x18\x04 \x01(\x03R\bduration\x12\x1f\n" + + "\vlast_active\x18\x0e \x01(\x04R\n" + + "lastActive\x12!\n" + + "\ffirst_active\x18\x0f \x01(\x04R\vfirstActive\x12.\n" + + "\x13names_with_response\x18\x05 \x03(\tR\x11namesWithResponse\x12\x1a\n" + + "\bArtifact\x18\n" + + " \x01(\tR\bArtifact\x12\x19\n" + + "\blog_rows\x18\x06 \x01(\x03R\alogRows\x12%\n" + + "\x0euploaded_files\x18\v \x01(\x03R\ruploadedFiles\x12%\n" + + "\x0euploaded_bytes\x18\f \x01(\x03R\ruploadedBytes\x126\n" + + "\x17expected_uploaded_bytes\x18\r \x01(\x03R\x15expectedUploadedBytes\x12\x1f\n" + + "\vresult_rows\x18\a \x01(\x03R\n" + + "resultRows\x12\x19\n" + + "\bquery_id\x18\b \x01(\x03R\aqueryId\x12#\n" + + "\rtotal_queries\x18\t \x01(\x03R\ftotalQueries\x129\n" + + "\x18transactions_outstanding\x18\x10 \x01(\x04R\x17transactionsOutstanding\"K\n" + + "\x0eReturnedStatus\x12\x06\n" + + "\x02OK\x10\x00\x12\f\n" + + "\bPROGRESS\x10\x04\x12\x11\n" + + "\rGENERIC_ERROR\x10\n" + + "\x12\x10\n" + + "\fUNKNOWN_FLOW\x10\v\"3\n" + + "\vMessageList\x12$\n" + + "\x03job\x18\x01 \x03(\v2\x12.proto.VeloMessageR\x03job\"\xf0\x05\n" + + "\x11PackedMessageList\x12J\n" + + "\vcompression\x18\x04 \x01(\x0e2(.proto.PackedMessageList.CompressionTypeR\vcompression\x12!\n" + + "\fmessage_list\x18\x01 \x03(\fR\vmessageList\x12l\n" + + "\ttimestamp\x18\x06 \x01(\x04BN\xe2\xfc\xe3\xc4\x01H\n" + + "\vRDFDatetime\x129The client sends its timestamp to prevent replay attacks.R\ttimestamp\x12\xc6\x03\n" + + "\x05nonce\x18\a \x01(\tB\xaf\x03\xe2\xfc\xe3\xc4\x01\xa8\x03\x12\xa5\x03A shared nonce between the server and client which must be given by the client. The server uses this to ensure the client belongs to the same deployment as the server. Without this check any client may connect to any server. NOTE this is a weak check - anyone who compromises a client in this deployment may extract this nonce and connect to that server, but it makes it a little harder to join a Velociraptor deployment.R\x05nonce\"5\n" + + "\x0fCompressionType\x12\x10\n" + + "\fUNCOMPRESSED\x10\x00\x12\x10\n" + + "\fZCOMPRESSION\x10\x01\"\xa4\x02\n" + + "\x10CipherProperties\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12'\n" + + "\x03key\x18\x02 \x01(\fB\x15\xe2\xfc\xe3\xc4\x01\x0f\n" + + "\rEncryptionKeyR\x03key\x126\n" + + "\vmetadata_iv\x18\x03 \x01(\fB\x15\xe2\xfc\xe3\xc4\x01\x0f\n" + + "\rEncryptionKeyR\n" + + "metadataIv\x120\n" + + "\bhmac_key\x18\x05 \x01(\fB\x15\xe2\xfc\xe3\xc4\x01\x0f\n" + + "\rEncryptionKeyR\ahmacKey\x12=\n" + + "\thmac_type\x18\x06 \x01(\x0e2 .proto.CipherProperties.HMACTypeR\bhmacType\"*\n" + + "\bHMACType\x12\x0f\n" + + "\vSIMPLE_HMAC\x10\x00\x12\r\n" + + "\tFULL_HMAC\x10\x01\"\x97\x01\n" + + "\x0eCipherMetadata\x12g\n" + + "\x06source\x18\x01 \x01(\tBO\xe2\xfc\xe3\xc4\x01I\n" + + "\x06RDFURN\x12?The common name this cipher should be used to communicate with.R\x06source\x12\x1c\n" + + "\tsignature\x18\x02 \x01(\fR\tsignature\"\xa4\x03\n" + + "\x13ClientCommunication\x12\x1c\n" + + "\tencrypted\x18\x01 \x01(\fR\tencrypted\x12)\n" + + "\x10encrypted_cipher\x18\x02 \x01(\fR\x0fencryptedCipher\x12:\n" + + "\x19encrypted_cipher_metadata\x18\t \x01(\fR\x17encryptedCipherMetadata\x122\n" + + "\tpacket_iv\x18\b \x01(\fB\x15\xe2\xfc\xe3\xc4\x01\x0f\n" + + "\rEncryptionKeyR\bpacketIv\x129\n" + + "\x06status\x18\x05 \x01(\x0e2!.proto.ClientCommunication.StatusR\x06status\x12\x1f\n" + + "\vapi_version\x18\x06 \x01(\rR\n" + + "apiVersion\x12\x1b\n" + + "\tfull_hmac\x18\n" + + " \x01(\fR\bfullHmac\x12\x18\n" + + "\apadding\x18\v \x03(\x04R\apadding\"A\n" + + "\x06Status\x12\t\n" + + "\x05UNSET\x10\x00\x12\a\n" + + "\x02OK\x10\xc8\x01\x12\x10\n" + + "\vBAD_REQUEST\x10\x90\x03\x12\x11\n" + + "\fCIPHER_ERROR\x10\x96\x03\"\xd2\x02\n" + + "\n" + + "LogMessage\x12\x0e\n" + + "\x02id\x18\x05 \x01(\x03R\x02id\x12$\n" + + "\x0enumber_of_rows\x18\x06 \x01(\x04R\fnumberOfRows\x12\x14\n" + + "\x05jsonl\x18\a \x01(\tR\x05jsonl\x12#\n" + + "\rerror_message\x18\b \x01(\tR\ferrorMessage\x12D\n" + + "\amessage\x18\x01 \x01(\tB*\xe2\xfc\xe3\xc4\x01$\x12\"The message to send to the server.R\amessage\x12[\n" + + "\ttimestamp\x18\x02 \x01(\x04B=\xe2\xfc\xe3\xc4\x017\n" + + "\vRDFDatetime\x12(The time when the message was generated.R\ttimestamp\x12\x1a\n" + + "\bartifact\x18\x03 \x01(\tR\bartifact\x12\x14\n" + + "\x05level\x18\x04 \x01(\tR\x05level\">\n" + + "\tPublicKey\x12\x10\n" + + "\x03pem\x18\x01 \x01(\fR\x03pem\x12\x1f\n" + + "\venroll_time\x18\x02 \x01(\x04R\n" + + "enrollTime\"\xec\x02\n" + + "\x12ResumeTransactions\x12\x17\n" + + "\aflow_id\x18\x01 \x01(\tR\x06flowId\x12\x1b\n" + + "\tclient_id\x18\x02 \x01(\tR\bclientId\x12\x18\n" + + "\atimeout\x18\a \x01(\x04R\atimeout\x12(\n" + + "\x10max_upload_bytes\x18\x03 \x01(\x04R\x0emaxUploadBytes\x12G\n" + + "\vcompression\x18\x04 \x01(\x0e2%.proto.ResumeTransactions.CompressionR\vcompression\x12<\n" + + "\ftransactions\x18\x05 \x03(\v2\x18.proto.UploadTransactionR\ftransactions\x122\n" + + "\vquery_stats\x18\x06 \x03(\v2\x11.proto.VeloStatusR\n" + + "queryStats\"!\n" + + "\vCompression\x12\b\n" + + "\x04NONE\x10\x00\x12\b\n" + + "\x04ZLIB\x10\x01B4Z2www.velocidex.com/golang/velociraptor/crypto/protob\x06proto3" var ( file_jobs_proto_rawDescOnce sync.Once - file_jobs_proto_rawDescData = file_jobs_proto_rawDesc + file_jobs_proto_rawDescData []byte ) func file_jobs_proto_rawDescGZIP() []byte { file_jobs_proto_rawDescOnce.Do(func() { - file_jobs_proto_rawDescData = protoimpl.X.CompressGZIP(file_jobs_proto_rawDescData) + file_jobs_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_jobs_proto_rawDesc), len(file_jobs_proto_rawDesc))) }) return file_jobs_proto_rawDescData } var file_jobs_proto_enumTypes = make([]protoimpl.EnumInfo, 9) var file_jobs_proto_msgTypes = make([]protoimpl.MessageInfo, 16) -var file_jobs_proto_goTypes = []interface{}{ +var file_jobs_proto_goTypes = []any{ (FlowRequest_Compression)(0), // 0: proto.FlowRequest.Compression (VeloMessage_AuthorizationState)(0), // 1: proto.VeloMessage.AuthorizationState (VeloMessage_Type)(0), // 2: proto.VeloMessage.Type @@ -2577,205 +2323,11 @@ func file_jobs_proto_init() { if File_jobs_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_jobs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VeloMessage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Cancel); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Certificate); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowStatsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowStatsSummaryItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VeloStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MessageList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PackedMessageList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CipherProperties); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CipherMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientCommunication); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogMessage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PublicKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_jobs_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResumeTransactions); 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_jobs_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_jobs_proto_rawDesc), len(file_jobs_proto_rawDesc)), NumEnums: 9, NumMessages: 16, NumExtensions: 0, @@ -2787,7 +2339,6 @@ func file_jobs_proto_init() { MessageInfos: file_jobs_proto_msgTypes, }.Build() File_jobs_proto = out.File - file_jobs_proto_rawDesc = nil file_jobs_proto_goTypes = nil file_jobs_proto_depIdxs = nil } diff --git a/crypto/storage/reader.go b/crypto/storage/reader.go index aeda240b2..903d71660 100644 --- a/crypto/storage/reader.go +++ b/crypto/storage/reader.go @@ -8,7 +8,6 @@ import ( config_proto "www.velocidex.com/golang/velociraptor/config/proto" crypto_proto "www.velocidex.com/golang/velociraptor/crypto/proto" - "www.velocidex.com/golang/velociraptor/crypto/server" crypto_server "www.velocidex.com/golang/velociraptor/crypto/server" ) @@ -141,11 +140,14 @@ func NewCryptoFileReader( return nil, errors.New("Invalid file magic") } - if config_obj.Frontend == nil || config_obj.Frontend.Certificate == "" { - return nil, errors.New("Reading Crypto Containers can only happen on the server") + if config_obj.Frontend == nil || + config_obj.Frontend.Certificate == "" { + return nil, errors.New( + "Reading Crypto Containers can only happen on the server") } var wg sync.WaitGroup - result.crypto_manager, err = server.NewServerCryptoManager(ctx, config_obj, &wg) + result.crypto_manager, err = crypto_server.NewServerCryptoManager( + ctx, config_obj, &wg) return result, err } diff --git a/crypto/storage/writer.go b/crypto/storage/writer.go index dd9b376d0..40d579dec 100644 --- a/crypto/storage/writer.go +++ b/crypto/storage/writer.go @@ -10,7 +10,6 @@ import ( config_proto "www.velocidex.com/golang/velociraptor/config/proto" crypto_client "www.velocidex.com/golang/velociraptor/crypto/client" crypto_proto "www.velocidex.com/golang/velociraptor/crypto/proto" - "www.velocidex.com/golang/velociraptor/crypto/utils" crypto_utils "www.velocidex.com/golang/velociraptor/crypto/utils" "www.velocidex.com/golang/velociraptor/services/writeback" ) @@ -63,7 +62,7 @@ func (self *CryptoFileWriter) serverPem() ([]byte, error) { } self.server_pem = server_pem - server_cert, err := utils.ParseX509CertFromPemStr(server_pem) + server_cert, err := crypto_utils.ParseX509CertFromPemStr(server_pem) if err != nil { return nil, err } diff --git a/datastore/datastore_test.go b/datastore/datastore_test.go index b55c9f9c3..fc41bb351 100644 --- a/datastore/datastore_test.go +++ b/datastore/datastore_test.go @@ -6,7 +6,6 @@ import ( "sort" "strings" "sync" - "testing" "time" "github.com/stretchr/testify/assert" @@ -365,12 +364,7 @@ func (self BaseTestSuite) TestVeryLongFilename() { // Make sure the resulting filename is very long assert.Equal(self.T(), i.Base(), very_long_filename) } -} - -func benchmarkSearchClient(b *testing.B, - data_store datastore.DataStore, - config_obj *config_proto.Config) { - + assert.True(self.T(), len(results) > 0) } func asStrings(in []api.DSPathSpec) []string { diff --git a/datastore/filebased.go b/datastore/filebased.go index 97b3f65ce..9e4581091 100644 --- a/datastore/filebased.go +++ b/datastore/filebased.go @@ -392,8 +392,6 @@ func Trace( config_obj *config_proto.Config, name string, filename api.DSPathSpec) { - return - //fmt.Printf("Trace FileBaseDataStore: %v: %v\n", name, // AsDatastoreFilename(db, config_obj, filename)) } @@ -402,8 +400,6 @@ func TraceDirectory( db DataStore, config_obj *config_proto.Config, name string, filename api.DSPathSpec) { - return - //fmt.Printf("Trace FileBaseDataStore: %v: %v\n", name, // AsDatastoreDirectory(db, config_obj, filename)) } diff --git a/datastore/filebased_utils.go b/datastore/filebased_utils.go index ada51a33c..857401641 100644 --- a/datastore/filebased_utils.go +++ b/datastore/filebased_utils.go @@ -164,10 +164,6 @@ func compressComponent( // Hash compress the original component hash := sha1.Sum([]byte(component)) component_hash := fmt.Sprintf("#%x", hash) - db, err := GetDB(config_obj) - if err != nil { - return component_hash - } ds_pathspec := &api_proto.DSPathSpec{ Components: []string{component}, diff --git a/datastore/memcache.go b/datastore/memcache.go index 1877186d1..f97b65f41 100644 --- a/datastore/memcache.go +++ b/datastore/memcache.go @@ -596,9 +596,7 @@ func (self *MemcacheDatastore) ListChildren( } result := make([]api.DSPathSpec, 0, md.Len()) - for _, v := range md.Items() { - result = append(result, v) - } + result = append(result, md.Items()...) return result, nil } @@ -670,9 +668,9 @@ func (self *MemcacheDatastore) Dump() []api.DSPathSpec { result := make([]api.DSPathSpec, 0) for _, key := range self.dir_cache.GetKeys() { - md, _ := self.dir_cache.Get(key) - for _, spec := range md.Items() { - result = append(result, spec) + md, ok := self.dir_cache.Get(key) + if ok { + result = append(result, md.Items()...) } } return result diff --git a/datastore/utils.go b/datastore/utils.go index 9bc27f1e9..fb6bad05f 100644 --- a/datastore/utils.go +++ b/datastore/utils.go @@ -101,6 +101,7 @@ func Walk(config_obj *config_proto.Config, err := Walk(config_obj, datastore, d, with_directories, walkFn) if err != nil { // Do not quit the walk early. + _ = err } } diff --git a/docs/references/server.config.yaml b/docs/references/server.config.yaml index 70c93245b..027f8e491 100644 --- a/docs/references/server.config.yaml +++ b/docs/references/server.config.yaml @@ -1575,13 +1575,16 @@ security: # The Data Encryptions Key to use for protecting the secrets in # storage. This can take a number of forms: - - # 1. If it starts with "env://" the secret will be taken from an + # + # 1. If it starts with `env://` the secret will be taken from an # Environment variable. # 2. If empty the secret is taken from obfuscation_nonce (which # by default is the hash of the private key). # # In future further methods may be implemented (e.g. EKMS). + # + # See the following for more information + # http://docs.velociraptor.app/docs/deployment/security/#protecting-stored-secrets secrets_dek: "" # This controls VQL plugins that may accept secrets as well full diff --git a/executor/pool.go b/executor/pool.go index fbbf0d433..cbe7f27a0 100644 --- a/executor/pool.go +++ b/executor/pool.go @@ -98,9 +98,8 @@ func newPoolClientMux(ctx context.Context, config_obj *config_proto.Config) (*po // Forward all the event messages to all clients. snapshot := []*PoolClientExecutor{} self.mu.Lock() - for _, client := range self.clients { - snapshot = append(snapshot, client) - } + + snapshot = append(snapshot, self.clients...) self.mu.Unlock() for _, client := range snapshot { diff --git a/executor/throttler/tracker.go b/executor/throttler/tracker.go index a3c0f642a..9aff39fcf 100644 --- a/executor/throttler/tracker.go +++ b/executor/throttler/tracker.go @@ -19,7 +19,7 @@ func (self *statsCollector) ProfileWriter( var rows []*ordereddict.Dict self.mu.Lock() for _, k := range utils.Sort(self.throttlers) { - t, _ := self.throttlers[k] + t := self.throttlers[k] rows = append(rows, t.Stats(). Set("AvCPUPercent", int(self.samples[1].average_cpu_load)). Set("AvIOP", int(self.samples[1].average_iops)). diff --git a/file_store/directory/buffer.go b/file_store/directory/buffer.go index 1e21d00a9..92ea44ec5 100644 --- a/file_store/directory/buffer.go +++ b/file_store/directory/buffer.go @@ -17,7 +17,6 @@ import ( "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/json" logging "www.velocidex.com/golang/velociraptor/logging" - "www.velocidex.com/golang/velociraptor/utils/tempfile" utils_tempfile "www.velocidex.com/golang/velociraptor/utils/tempfile" ) @@ -270,7 +269,7 @@ func (self *FileBasedRingBuffer) getFd() (*os.File, error) { ReadPointer: FirstRecordOffset, } - fd, err := tempfile.TempFile(self.base_name) + fd, err := utils_tempfile.TempFile(self.base_name) if err != nil { return nil, err } diff --git a/file_store/memcache/memcache_test.go b/file_store/memcache/memcache_test.go index 1e3f74ced..ba8091cbc 100644 --- a/file_store/memcache/memcache_test.go +++ b/file_store/memcache/memcache_test.go @@ -138,7 +138,7 @@ func (self *MemcacheTestSuite) TestFileAsyncWrite() { fd.Close() // Try to read it again, - read_fd, err := file_store.ReadFile(filename) + _, err = file_store.ReadFile(filename) // Expect an error because the file did not hit the disk yet. assert.Error(self.T(), err) @@ -147,7 +147,7 @@ func (self *MemcacheTestSuite) TestFileAsyncWrite() { file_store.Flush() // Make sure it is flushed now. - read_fd, err = file_store.ReadFile(filename) + read_fd, err := file_store.ReadFile(filename) assert.NoError(self.T(), err) out, err := ioutil.ReadAll(read_fd) diff --git a/file_store/memory/memory.go b/file_store/memory/memory.go index 40a55591e..7236d63d8 100644 --- a/file_store/memory/memory.go +++ b/file_store/memory/memory.go @@ -319,7 +319,6 @@ func (self *MemoryFileStore) Delete(path api.FSPathSpec) error { } func (self *MemoryFileStore) Trace(name, filename string) { - return // fmt.Printf("Trace MemoryFileStore: %v: %v\n", name, filename) } diff --git a/file_store/memory/writer.go b/file_store/memory/writer.go index 0efd036a6..f076c5cf9 100644 --- a/file_store/memory/writer.go +++ b/file_store/memory/writer.go @@ -3,6 +3,7 @@ package memory import ( "bytes" "encoding/binary" + "fmt" "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/file_store/api" @@ -136,7 +137,7 @@ func (self *MemoryWriter) _Flush() error { func (self *MemoryWriter) Close() error { if self.closed { - // panic("MemoryWriter already closed") + return fmt.Errorf("MemoryWriter already closed") } self.closed = true diff --git a/flows/artifacts_test.go b/flows/artifacts_test.go index b8e110f81..f66655307 100644 --- a/flows/artifacts_test.go +++ b/flows/artifacts_test.go @@ -86,6 +86,7 @@ type: SERVER_EVENT ClientId: self.client_id, }, }) + assert.NoError(self.T(), err) } func (self *TestSuite) TestGetFlow() { @@ -134,6 +135,8 @@ func (self *TestSuite) TestGetFlow() { flow_ids = append(flow_ids, flow_id) } + _ = flow_ids + // Get all the responses - ask for 100 results if available // but only 40 are there. api_response, err := launcher.GetFlows(self.Ctx, self.ConfigObj, @@ -962,11 +965,3 @@ func TestArtifactCollection(t *testing.T) { flow_id: "F.1232", }) } - -func getFlowIds(in []*flows_proto.ArtifactCollectorContext) []string { - res := []string{} - for _, i := range in { - res = append(res, i.SessionId) - } - return res -} diff --git a/flows/client_flow_runner_test.go b/flows/client_flow_runner_test.go index 5a26ae336..5a796c68e 100644 --- a/flows/client_flow_runner_test.go +++ b/flows/client_flow_runner_test.go @@ -162,6 +162,8 @@ func (self *ServerTestSuite) TestFlowStates() { flows_proto.ArtifactCollectorContext_RUNNING) } + _ = flow_ids + client_info_manager, err := services.GetClientInfoManager(self.ConfigObj) assert.NoError(self.T(), err) @@ -175,6 +177,7 @@ func (self *ServerTestSuite) TestFlowStates() { // Now draine some messages to the client - concurrency is set to // 1 so we will pull 3 messages from the queue. tasks, err := client_info_manager.GetClientTasks(self.Ctx, self.client_id) + assert.NoError(self.T(), err) // For backwards compatibility tasks are expanded so we only care // about the flow requests in current version. @@ -697,6 +700,7 @@ func (self *ServerTestSuite) TestScheduleCollection() { acl_managers.NullACLManager{}, repository, request, nil) + assert.NoError(t, err) db, err := datastore.GetDB(self.ConfigObj) require.NoError(t, err) diff --git a/flows/proto/artifact_collector.pb.go b/flows/proto/artifact_collector.pb.go index b8c5fc8f1..ed0d7636d 100644 --- a/flows/proto/artifact_collector.pb.go +++ b/flows/proto/artifact_collector.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" proto "www.velocidex.com/golang/velociraptor/actions/proto" proto1 "www.velocidex.com/golang/velociraptor/crypto/proto" _ "www.velocidex.com/golang/velociraptor/proto" @@ -97,20 +98,17 @@ func (ArtifactCollectorContext_State) EnumDescriptor() ([]byte, []int) { } type ArtifactParameters struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Env []*proto.VQLEnv `protobuf:"bytes,3,rep,name=env,proto3" json:"env,omitempty"` unknownFields protoimpl.UnknownFields - - Env []*proto.VQLEnv `protobuf:"bytes,3,rep,name=env,proto3" json:"env,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ArtifactParameters) Reset() { *x = ArtifactParameters{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactParameters) String() string { @@ -121,7 +119,7 @@ func (*ArtifactParameters) ProtoMessage() {} func (x *ArtifactParameters) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -144,27 +142,24 @@ func (x *ArtifactParameters) GetEnv() []*proto.VQLEnv { } type ArtifactSpec struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Artifact string `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` - Parameters *ArtifactParameters `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Artifact string `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` + Parameters *ArtifactParameters `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"` // Batching control applies to this artifact only CpuLimit float32 `protobuf:"fixed32,10,opt,name=cpu_limit,json=cpuLimit,proto3" json:"cpu_limit,omitempty"` MaxBatchWait uint64 `protobuf:"varint,7,opt,name=max_batch_wait,json=maxBatchWait,proto3" json:"max_batch_wait,omitempty"` MaxBatchRows uint64 `protobuf:"varint,8,opt,name=max_batch_rows,json=maxBatchRows,proto3" json:"max_batch_rows,omitempty"` MaxBatchRowsBuffer uint64 `protobuf:"varint,9,opt,name=max_batch_rows_buffer,json=maxBatchRowsBuffer,proto3" json:"max_batch_rows_buffer,omitempty"` Timeout uint64 `protobuf:"varint,11,opt,name=timeout,proto3" json:"timeout,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ArtifactSpec) Reset() { *x = ArtifactSpec{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactSpec) String() string { @@ -175,7 +170,7 @@ func (*ArtifactSpec) ProtoMessage() {} func (x *ArtifactSpec) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -240,11 +235,8 @@ func (x *ArtifactSpec) GetTimeout() uint64 { } type ArtifactCollectorArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` // This is an arbitrary object attached to the request that // provides context by the creator. For example it may be used to // store a signature of the request by the creator's key. @@ -253,9 +245,9 @@ type ArtifactCollectorArgs struct { FlowId string `protobuf:"bytes,31,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` // If set we send an urgent request to the client. Urgent bool `protobuf:"varint,21,opt,name=urgent,proto3" json:"urgent,omitempty"` - // Deprecated: Old way of specifying the artifacts consist of - // shared parameters within a list of artifacts (i.e. all - // artifacts share same scope). + // Old way of specifying the artifacts consist of shared + // parameters within a list of artifacts (i.e. all artifacts share + // same scope). Artifacts []string `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty"` // New way of specifying artifacts. Specs []*ArtifactSpec `protobuf:"bytes,24,rep,name=specs,proto3" json:"specs,omitempty"` @@ -287,16 +279,16 @@ type ArtifactCollectorArgs struct { // times, so we can avoid the compiler overheads at scale. CompiledCollectorArgs []*proto.VQLCollectorArgs `protobuf:"bytes,20,rep,name=compiled_collector_args,json=compiledCollectorArgs,proto3" json:"compiled_collector_args,omitempty"` // DEPRECATED: - OpsPerSecond float32 `protobuf:"fixed32,6,opt,name=ops_per_second,json=opsPerSecond,proto3" json:"ops_per_second,omitempty"` + OpsPerSecond float32 `protobuf:"fixed32,6,opt,name=ops_per_second,json=opsPerSecond,proto3" json:"ops_per_second,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ArtifactCollectorArgs) Reset() { *x = ArtifactCollectorArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactCollectorArgs) String() string { @@ -307,7 +299,7 @@ func (*ArtifactCollectorArgs) ProtoMessage() {} func (x *ArtifactCollectorArgs) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -456,21 +448,18 @@ func (x *ArtifactCollectorArgs) GetOpsPerSecond() float32 { } type ArtifactCollectorResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` + Request *ArtifactCollectorArgs `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields - - FlowId string `protobuf:"bytes,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` - Request *ArtifactCollectorArgs `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ArtifactCollectorResponse) Reset() { *x = ArtifactCollectorResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactCollectorResponse) String() string { @@ -481,7 +470,7 @@ func (*ArtifactCollectorResponse) ProtoMessage() {} func (x *ArtifactCollectorResponse) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -511,26 +500,23 @@ func (x *ArtifactCollectorResponse) GetRequest() *ArtifactCollectorArgs { } type ArtifactUploadedFileInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - VfsPath string `protobuf:"bytes,2,opt,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` - Size uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` - StoredSize uint64 `protobuf:"varint,4,opt,name=stored_size,json=storedSize,proto3" json:"stored_size,omitempty"` - Components []string `protobuf:"bytes,5,rep,name=components,proto3" json:"components,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + VfsPath string `protobuf:"bytes,2,opt,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` + Size uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` + StoredSize uint64 `protobuf:"varint,4,opt,name=stored_size,json=storedSize,proto3" json:"stored_size,omitempty"` + Components []string `protobuf:"bytes,5,rep,name=components,proto3" json:"components,omitempty"` // idx for index files. - Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"` + Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ArtifactUploadedFileInfo) Reset() { *x = ArtifactUploadedFileInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactUploadedFileInfo) String() string { @@ -541,7 +527,7 @@ func (*ArtifactUploadedFileInfo) ProtoMessage() {} func (x *ArtifactUploadedFileInfo) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -599,26 +585,23 @@ func (x *ArtifactUploadedFileInfo) GetType() string { } // Maintain this also outside the collector context. It will be -// updated each time anything about the collection is changed, without +// updated each time anyting about the collection is changed, without // having to race updating the main record. The read active_time is // the latest between this record and the one in // ArtifactCollectorContext. This is mainly used by the GUI to notice // when a collection is updated. type PingContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ActiveTime uint64 `protobuf:"varint,1,opt,name=active_time,json=activeTime,proto3" json:"active_time,omitempty"` unknownFields protoimpl.UnknownFields - - ActiveTime uint64 `protobuf:"varint,1,opt,name=active_time,json=activeTime,proto3" json:"active_time,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PingContext) Reset() { *x = PingContext{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PingContext) String() string { @@ -629,7 +612,7 @@ func (*PingContext) ProtoMessage() {} func (x *PingContext) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -654,10 +637,7 @@ func (x *PingContext) GetActiveTime() uint64 { // This context is serialized into the data store. We keep track of // all aspects of a collection. type ArtifactCollectorContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` ClientId string `protobuf:"bytes,27,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` SessionId string `protobuf:"bytes,13,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` Request *ArtifactCollectorArgs `protobuf:"bytes,11,opt,name=request,proto3" json:"request,omitempty"` @@ -699,18 +679,18 @@ type ArtifactCollectorContext struct { UserNotified bool `protobuf:"varint,16,opt,name=user_notified,json=userNotified,proto3" json:"user_notified,omitempty"` // Logs are stored in their own CSV file. This is just a // placeholder during processing. - Logs []*proto1.LogMessage `protobuf:"bytes,20,rep,name=logs,proto3" json:"logs,omitempty"` - Dirty bool `protobuf:"varint,2,opt,name=dirty,proto3" json:"dirty,omitempty"` - TotalLoads uint64 `protobuf:"varint,33,opt,name=total_loads,json=totalLoads,proto3" json:"total_loads,omitempty"` + Logs []*proto1.LogMessage `protobuf:"bytes,20,rep,name=logs,proto3" json:"logs,omitempty"` + Dirty bool `protobuf:"varint,2,opt,name=dirty,proto3" json:"dirty,omitempty"` + TotalLoads uint64 `protobuf:"varint,33,opt,name=total_loads,json=totalLoads,proto3" json:"total_loads,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ArtifactCollectorContext) Reset() { *x = ArtifactCollectorContext{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ArtifactCollectorContext) String() string { @@ -721,7 +701,7 @@ func (*ArtifactCollectorContext) ProtoMessage() {} func (x *ArtifactCollectorContext) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -927,21 +907,18 @@ func (x *ArtifactCollectorContext) GetTotalLoads() uint64 { // Artifacts to collect for each label. type LabelEvents struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Artifacts *ArtifactCollectorArgs `protobuf:"bytes,2,opt,name=artifacts,proto3" json:"artifacts,omitempty"` unknownFields protoimpl.UnknownFields - - Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` - Artifacts *ArtifactCollectorArgs `protobuf:"bytes,2,opt,name=artifacts,proto3" json:"artifacts,omitempty"` + sizeCache protoimpl.SizeCache } func (x *LabelEvents) Reset() { *x = LabelEvents{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LabelEvents) String() string { @@ -952,7 +929,7 @@ func (*LabelEvents) ProtoMessage() {} func (x *LabelEvents) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -982,22 +959,19 @@ func (x *LabelEvents) GetArtifacts() *ArtifactCollectorArgs { } type GetClientMonitoringStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Show the compiled monitoring table from the point of view of // this client. - ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetClientMonitoringStateRequest) Reset() { *x = GetClientMonitoringStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetClientMonitoringStateRequest) String() string { @@ -1008,7 +982,7 @@ func (*GetClientMonitoringStateRequest) ProtoMessage() {} func (x *GetClientMonitoringStateRequest) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1032,25 +1006,22 @@ func (x *GetClientMonitoringStateRequest) GetClientId() string { // This is stored in the ArtifactCollector state. type ClientEventTable struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` // Artifacts to collect from ALL clients. Artifacts *ArtifactCollectorArgs `protobuf:"bytes,2,opt,name=artifacts,proto3" json:"artifacts,omitempty"` LabelEvents []*LabelEvents `protobuf:"bytes,3,rep,name=label_events,json=labelEvents,proto3" json:"label_events,omitempty"` // populated for GetClientMonitoringState() ClientMessage *proto1.VeloMessage `protobuf:"bytes,4,opt,name=client_message,json=clientMessage,proto3" json:"client_message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ClientEventTable) Reset() { *x = ClientEventTable{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClientEventTable) String() string { @@ -1061,7 +1032,7 @@ func (*ClientEventTable) ProtoMessage() {} func (x *ClientEventTable) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1105,22 +1076,19 @@ func (x *ClientEventTable) GetClientMessage() *proto1.VeloMessage { } type UploadedFileInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + VfsPath string `protobuf:"bytes,2,opt,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` + Size uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - VfsPath string `protobuf:"bytes,2,opt,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` - Size uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UploadedFileInfo) Reset() { *x = UploadedFileInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_artifact_collector_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_artifact_collector_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UploadedFileInfo) String() string { @@ -1131,7 +1099,7 @@ func (*UploadedFileInfo) ProtoMessage() {} func (x *UploadedFileInfo) ProtoReflect() protoreflect.Message { mi := &file_artifact_collector_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1169,264 +1137,132 @@ func (x *UploadedFileInfo) GetSize() uint64 { var File_artifact_collector_proto protoreflect.FileDescriptor -var file_artifact_collector_proto_rawDesc = []byte{ - 0x0a, 0x18, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, - 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x71, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x17, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6a, - 0x6f, 0x62, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7a, 0x0a, 0x12, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x64, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x45, 0x6e, 0x76, 0x42, 0x43, 0xe2, 0xfc, 0xe3, - 0xc4, 0x01, 0x3d, 0x12, 0x33, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x22, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x03, 0x65, 0x6e, 0x76, 0x22, 0x9b, 0x02, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x08, 0x63, 0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, - 0x78, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x69, 0x74, - 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x6f, - 0x77, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x6f, 0x77, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x22, 0xd6, 0x07, 0x0a, 0x15, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x1f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x72, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x72, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x28, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x22, 0x12, 0x18, 0x54, - 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x2e, 0x22, 0x06, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x52, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x70, - 0x65, 0x63, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, - 0x73, 0x70, 0x65, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x63, 0x70, 0x75, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x69, 0x6f, 0x70, 0x73, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x70, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x65, 0x0a, 0x07, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x4b, 0xe2, - 0xfc, 0xe3, 0xc4, 0x01, 0x45, 0x12, 0x35, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, - 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x75, 0x6e, 0x20, - 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x22, 0x07, 0x54, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x32, 0x03, 0x36, 0x30, 0x30, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x19, - 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x6d, 0x61, 0x78, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, - 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x66, 0x72, 0x65, - 0x71, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x74, 0x72, 0x61, - 0x63, 0x65, 0x46, 0x72, 0x65, 0x71, 0x53, 0x65, 0x63, 0x12, 0x8d, 0x01, 0x0a, 0x16, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, - 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x57, 0xe2, 0xfc, 0xe3, 0xc4, - 0x01, 0x51, 0x12, 0x4f, 0x49, 0x66, 0x20, 0x74, 0x72, 0x75, 0x65, 0x20, 0x77, 0x65, 0x20, 0x77, - 0x69, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x69, 0x66, 0x20, 0x70, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x2e, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, - 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x42, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x4f, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x51, 0x4c, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x52, 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x69, - 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, - 0x12, 0x6a, 0x0a, 0x0e, 0x6f, 0x70, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x42, 0x44, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x3e, - 0x12, 0x23, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x70, 0x65, 0x72, - 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x28, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, - 0x69, 0x6e, 0x67, 0x29, 0x2e, 0x22, 0x0e, 0x4f, 0x70, 0x73, 0x20, 0x50, 0x65, 0x72, 0x20, 0x53, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x32, 0x07, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x52, 0x0c, - 0x6f, 0x70, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x6c, 0x0a, 0x19, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, - 0x49, 0x64, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, - 0x73, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x18, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x76, - 0x66, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x66, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x2e, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0xb1, 0x0b, 0x0a, 0x18, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x24, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, - 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, - 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, - 0x6f, 0x77, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x25, 0x0a, 0x0e, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x23, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x13, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x18, 0x25, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x65, 0x78, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x31, 0x12, - 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6e, 0x20, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x73, 0x65, 0x6e, - 0x74, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x16, 0x61, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x42, 0x69, 0xe2, 0xfc, 0xe3, 0xc4, 0x01, - 0x63, 0x12, 0x61, 0x54, 0x68, 0x65, 0x20, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x74, 0x68, - 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x74, 0x61, 0x6b, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x2e, 0x52, 0x14, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x57, - 0x69, 0x74, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x0b, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x46, - 0x0a, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x75, - 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x6c, - 0x6f, 0x67, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x04, 0x6c, 0x6f, - 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0x68, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, - 0x49, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, - 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x52, 0x45, - 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x49, 0x56, 0x45, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x49, - 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, - 0x52, 0x10, 0x03, 0x22, 0x5f, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3a, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x73, 0x22, 0x3e, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x10, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, - 0x35, 0x0a, 0x0c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x65, 0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x22, 0x55, 0x0a, 0x10, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x66, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x66, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x33, 0x5a, 0x31, 0x77, 0x77, 0x77, 0x2e, - 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, - 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, - 0x72, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_artifact_collector_proto_rawDesc = "" + + "\n" + + "\x18artifact_collector.proto\x12\x05proto\x1a\x14proto/semantic.proto\x1a\x17actions/proto/vql.proto\x1a\x17crypto/proto/jobs.proto\"z\n" + + "\x12ArtifactParameters\x12d\n" + + "\x03env\x18\x03 \x03(\v2\r.proto.VQLEnvBC\xe2\xfc\xe3\xc4\x01=\x123Environment variables to be provided for the query.\"\x06ParamsR\x03env\"\x9b\x02\n" + + "\fArtifactSpec\x12\x1a\n" + + "\bartifact\x18\x01 \x01(\tR\bartifact\x129\n" + + "\n" + + "parameters\x18\x02 \x01(\v2\x19.proto.ArtifactParametersR\n" + + "parameters\x12\x1b\n" + + "\tcpu_limit\x18\n" + + " \x01(\x02R\bcpuLimit\x12$\n" + + "\x0emax_batch_wait\x18\a \x01(\x04R\fmaxBatchWait\x12$\n" + + "\x0emax_batch_rows\x18\b \x01(\x04R\fmaxBatchRows\x121\n" + + "\x15max_batch_rows_buffer\x18\t \x01(\x04R\x12maxBatchRowsBuffer\x12\x18\n" + + "\atimeout\x18\v \x01(\x04R\atimeout\"\xd6\a\n" + + "\x15ArtifactCollectorArgs\x12\x18\n" + + "\acreator\x18\x01 \x01(\tR\acreator\x12\x1b\n" + + "\tuser_data\x18\x1e \x01(\tR\buserData\x12\x1b\n" + + "\tclient_id\x18\x03 \x01(\tR\bclientId\x12\x17\n" + + "\aflow_id\x18\x1f \x01(\tR\x06flowId\x12\x16\n" + + "\x06urgent\x18\x15 \x01(\bR\x06urgent\x12F\n" + + "\tartifacts\x18\x02 \x03(\tB(\xe2\xfc\xe3\xc4\x01\"\x12\x18The artifacts to launch.\"\x06LaunchR\tartifacts\x12)\n" + + "\x05specs\x18\x18 \x03(\v2\x13.proto.ArtifactSpecR\x05specs\x12\x1b\n" + + "\tcpu_limit\x18\x19 \x01(\x02R\bcpuLimit\x12\x1d\n" + + "\n" + + "iops_limit\x18\x1a \x01(\x02R\tiopsLimit\x12)\n" + + "\x10progress_timeout\x18\x1b \x01(\x02R\x0fprogressTimeout\x12e\n" + + "\atimeout\x18\a \x01(\x04BK\xe2\xfc\xe3\xc4\x01E\x125Number of seconds to run before cancelling the query.\"\aTimeout2\x03600R\atimeout\x12\x19\n" + + "\bmax_rows\x18\x16 \x01(\x04R\amaxRows\x12\x19\n" + + "\bmax_logs\x18 \x01(\x04R\amaxLogs\x12(\n" + + "\x10max_upload_bytes\x18\x17 \x01(\x04R\x0emaxUploadBytes\x12$\n" + + "\x0etrace_freq_sec\x18\x1d \x01(\x04R\ftraceFreqSec\x12\x8d\x01\n" + + "\x16allow_custom_overrides\x18\b \x01(\bBW\xe2\xfc\xe3\xc4\x01Q\x12OIf true we will use a custom artifact if present instead of the named artifact.R\x14allowCustomOverrides\x12$\n" + + "\x0elog_batch_time\x18\x1c \x01(\x04R\flogBatchTime\x12O\n" + + "\x17compiled_collector_args\x18\x14 \x03(\v2\x17.proto.VQLCollectorArgsR\x15compiledCollectorArgs\x12j\n" + + "\x0eops_per_second\x18\x06 \x01(\x02BD\xe2\xfc\xe3\xc4\x01>\x12#Operations per second (Throttling).\"\x0eOps Per Second2\a1000000R\fopsPerSecond\"l\n" + + "\x19ArtifactCollectorResponse\x12\x17\n" + + "\aflow_id\x18\x01 \x01(\tR\x06flowId\x126\n" + + "\arequest\x18\x02 \x01(\v2\x1c.proto.ArtifactCollectorArgsR\arequest\"\xb2\x01\n" + + "\x18ArtifactUploadedFileInfo\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x19\n" + + "\bvfs_path\x18\x02 \x01(\tR\avfsPath\x12\x12\n" + + "\x04size\x18\x03 \x01(\x04R\x04size\x12\x1f\n" + + "\vstored_size\x18\x04 \x01(\x04R\n" + + "storedSize\x12\x1e\n" + + "\n" + + "components\x18\x05 \x03(\tR\n" + + "components\x12\x12\n" + + "\x04type\x18\x06 \x01(\tR\x04type\".\n" + + "\vPingContext\x12\x1f\n" + + "\vactive_time\x18\x01 \x01(\x04R\n" + + "activeTime\"\xb1\v\n" + + "\x18ArtifactCollectorContext\x12\x1b\n" + + "\tclient_id\x18\x1b \x01(\tR\bclientId\x12\x1d\n" + + "\n" + + "session_id\x18\r \x01(\tR\tsessionId\x126\n" + + "\arequest\x18\v \x01(\v2\x1c.proto.ArtifactCollectorArgsR\arequest\x12\x1c\n" + + "\tbacktrace\x18\x01 \x01(\tR\tbacktrace\x12\x1f\n" + + "\vcreate_time\x18\x03 \x01(\x04R\n" + + "createTime\x12\x1d\n" + + "\n" + + "start_time\x18\x12 \x01(\x04R\tstartTime\x12\x1f\n" + + "\vactive_time\x18\x11 \x01(\x04R\n" + + "activeTime\x12#\n" + + "\rinflight_time\x18$ \x01(\x04R\finflightTime\x120\n" + + "\x14total_uploaded_files\x18\x17 \x01(\x04R\x12totalUploadedFiles\x12A\n" + + "\x1dtotal_expected_uploaded_bytes\x18\x19 \x01(\x04R\x1atotalExpectedUploadedBytes\x120\n" + + "\x14total_uploaded_bytes\x18\x1a \x01(\x04R\x12totalUploadedBytes\x120\n" + + "\x14total_collected_rows\x18\x1c \x01(\x04R\x12totalCollectedRows\x12\x1d\n" + + "\n" + + "total_logs\x18 \x01(\x04R\ttotalLogs\x12%\n" + + "\x0etotal_requests\x18# \x01(\x03R\rtotalRequests\x121\n" + + "\x14outstanding_requests\x18\x1f \x01(\x03R\x13outstandingRequests\x129\n" + + "\x18transactions_outstanding\x18% \x01(\x04R\x17transactionsOutstanding\x12(\n" + + "\x10next_response_id\x18\x1e \x01(\x04R\x0enextResponseId\x12-\n" + + "\x12execution_duration\x18\x1d \x01(\x03R\x11executionDuration\x12;\n" + + "\x05state\x18\x0e \x01(\x0e2%.proto.ArtifactCollectorContext.StateR\x05state\x12O\n" + + "\x06status\x18\x0f \x01(\tB7\xe2\xfc\xe3\xc4\x011\x12/Contents of an error status sent by the client.R\x06status\x12\x9f\x01\n" + + "\x16artifacts_with_results\x18\x16 \x03(\tBi\xe2\xfc\xe3\xc4\x01c\x12aThe full path to the artifacts with their results. This takes the form artifact name/source name.R\x14artifactsWithResults\x122\n" + + "\vquery_stats\x18\" \x03(\v2\x11.proto.VeloStatusR\n" + + "queryStats\x12F\n" + + "\x0euploaded_files\x18\x18 \x03(\v2\x1f.proto.ArtifactUploadedFileInfoR\ruploadedFiles\x12#\n" + + "\ruser_notified\x18\x10 \x01(\bR\fuserNotified\x12%\n" + + "\x04logs\x18\x14 \x03(\v2\x11.proto.LogMessageR\x04logs\x12\x14\n" + + "\x05dirty\x18\x02 \x01(\bR\x05dirty\x12\x1f\n" + + "\vtotal_loads\x18! \x01(\x04R\n" + + "totalLoads\"h\n" + + "\x05State\x12\t\n" + + "\x05UNSET\x10\x00\x12\v\n" + + "\aRUNNING\x10\x01\x12\v\n" + + "\aWAITING\x10\x06\x12\x0f\n" + + "\vIN_PROGRESS\x10\x04\x12\x10\n" + + "\fUNRESPONSIVE\x10\x05\x12\f\n" + + "\bFINISHED\x10\x02\x12\t\n" + + "\x05ERROR\x10\x03\"_\n" + + "\vLabelEvents\x12\x14\n" + + "\x05label\x18\x01 \x01(\tR\x05label\x12:\n" + + "\tartifacts\x18\x02 \x01(\v2\x1c.proto.ArtifactCollectorArgsR\tartifacts\">\n" + + "\x1fGetClientMonitoringStateRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\"\xda\x01\n" + + "\x10ClientEventTable\x12\x18\n" + + "\aversion\x18\x01 \x01(\x04R\aversion\x12:\n" + + "\tartifacts\x18\x02 \x01(\v2\x1c.proto.ArtifactCollectorArgsR\tartifacts\x125\n" + + "\flabel_events\x18\x03 \x03(\v2\x12.proto.LabelEventsR\vlabelEvents\x129\n" + + "\x0eclient_message\x18\x04 \x01(\v2\x12.proto.VeloMessageR\rclientMessage\"U\n" + + "\x10UploadedFileInfo\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x19\n" + + "\bvfs_path\x18\x02 \x01(\tR\avfsPath\x12\x12\n" + + "\x04size\x18\x03 \x01(\x04R\x04sizeB3Z1www.velocidex.com/golang/velociraptor/flows/protob\x06proto3" var ( file_artifact_collector_proto_rawDescOnce sync.Once - file_artifact_collector_proto_rawDescData = file_artifact_collector_proto_rawDesc + file_artifact_collector_proto_rawDescData []byte ) func file_artifact_collector_proto_rawDescGZIP() []byte { file_artifact_collector_proto_rawDescOnce.Do(func() { - file_artifact_collector_proto_rawDescData = protoimpl.X.CompressGZIP(file_artifact_collector_proto_rawDescData) + file_artifact_collector_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_artifact_collector_proto_rawDesc), len(file_artifact_collector_proto_rawDesc))) }) return file_artifact_collector_proto_rawDescData } var file_artifact_collector_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_artifact_collector_proto_msgTypes = make([]protoimpl.MessageInfo, 11) -var file_artifact_collector_proto_goTypes = []interface{}{ +var file_artifact_collector_proto_goTypes = []any{ (ArtifactCollectorContext_State)(0), // 0: proto.ArtifactCollectorContext.State (*ArtifactParameters)(nil), // 1: proto.ArtifactParameters (*ArtifactSpec)(nil), // 2: proto.ArtifactSpec @@ -1472,145 +1308,11 @@ func file_artifact_collector_proto_init() { if File_artifact_collector_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_artifact_collector_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactParameters); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifact_collector_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactSpec); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifact_collector_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactCollectorArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifact_collector_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactCollectorResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifact_collector_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactUploadedFileInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifact_collector_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PingContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifact_collector_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactCollectorContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifact_collector_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LabelEvents); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifact_collector_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClientMonitoringStateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifact_collector_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientEventTable); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_artifact_collector_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UploadedFileInfo); 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_artifact_collector_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_artifact_collector_proto_rawDesc), len(file_artifact_collector_proto_rawDesc)), NumEnums: 1, NumMessages: 11, NumExtensions: 0, @@ -1622,7 +1324,6 @@ func file_artifact_collector_proto_init() { MessageInfos: file_artifact_collector_proto_msgTypes, }.Build() File_artifact_collector_proto = out.File - file_artifact_collector_proto_rawDesc = nil file_artifact_collector_proto_goTypes = nil file_artifact_collector_proto_depIdxs = nil } diff --git a/flows/proto/artifact_collector.proto b/flows/proto/artifact_collector.proto index 3ede270fd..abae17bea 100644 --- a/flows/proto/artifact_collector.proto +++ b/flows/proto/artifact_collector.proto @@ -40,9 +40,9 @@ message ArtifactCollectorArgs { // If set we send an urgent request to the client. bool urgent = 21; - // Deprecated: Old way of specifying the artifacts consist of - // shared parameters within a list of artifacts (i.e. all - // artifacts share same scope). + // Old way of specifying the artifacts consist of shared + // parameters within a list of artifacts (i.e. all artifacts share + // same scope). repeated string artifacts = 2 [(sem_type) = { description: "The artifacts to launch.", friendly_name: "Launch", diff --git a/flows/proto/vfs.pb.go b/flows/proto/vfs.pb.go index 64a2d230b..5a854b260 100644 --- a/flows/proto/vfs.pb.go +++ b/flows/proto/vfs.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" _ "www.velocidex.com/golang/velociraptor/proto" ) @@ -21,10 +22,7 @@ const ( // This is stored in the VFS datastores to indicate where the actual // download exist (usually in the flow filestore). type VFSDownloadInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Deprecated but leave it here so we can read older files // downloaded within the filestore. VfsPath string `protobuf:"bytes,1,opt,name=vfs_path,json=vfsPath,proto3" json:"vfs_path,omitempty"` @@ -42,16 +40,16 @@ type VFSDownloadInfo struct { // If set this flow is currently in flight. InFlight bool `protobuf:"varint,9,opt,name=in_flight,json=inFlight,proto3" json:"in_flight,omitempty"` // If the collection resulted in an error, show this here. - Error string `protobuf:"bytes,10,opt,name=error,proto3" json:"error,omitempty"` + Error string `protobuf:"bytes,10,opt,name=error,proto3" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *VFSDownloadInfo) Reset() { *x = VFSDownloadInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_vfs_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vfs_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VFSDownloadInfo) String() string { @@ -62,7 +60,7 @@ func (*VFSDownloadInfo) ProtoMessage() {} func (x *VFSDownloadInfo) ProtoReflect() protoreflect.Message { mi := &file_vfs_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -155,21 +153,18 @@ func (x *VFSDownloadInfo) GetError() string { } type ClientMonitoringState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` - LastUpdateTimestamp uint64 `protobuf:"varint,2,opt,name=last_update_timestamp,json=lastUpdateTimestamp,proto3" json:"last_update_timestamp,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + LastUpdateTimestamp uint64 `protobuf:"varint,2,opt,name=last_update_timestamp,json=lastUpdateTimestamp,proto3" json:"last_update_timestamp,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ClientMonitoringState) Reset() { *x = ClientMonitoringState{} - if protoimpl.UnsafeEnabled { - mi := &file_vfs_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vfs_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClientMonitoringState) String() string { @@ -180,7 +175,7 @@ func (*ClientMonitoringState) ProtoMessage() {} func (x *ClientMonitoringState) ProtoReflect() protoreflect.Message { mi := &file_vfs_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -211,59 +206,42 @@ func (x *ClientMonitoringState) GetLastUpdateTimestamp() uint64 { var File_vfs_proto protoreflect.FileDescriptor -var file_vfs_proto_rawDesc = []byte{ - 0x0a, 0x09, 0x76, 0x66, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, - 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x98, 0x02, 0x0a, 0x0f, 0x56, 0x46, 0x53, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, - 0x76, 0x66, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x76, 0x66, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x44, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x44, 0x35, 0x12, - 0x16, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x5f, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x6e, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x22, 0xbb, 0x01, 0x0a, 0x15, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x26, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x20, 0x12, 0x1e, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x27, 0x73, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x60, 0x0a, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x2c, - 0xe2, 0xfc, 0xe3, 0xc4, 0x01, 0x26, 0x12, 0x24, 0x54, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x73, 0x74, - 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x77, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x13, 0x6c, 0x61, - 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x42, 0x33, 0x5a, 0x31, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, - 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, - 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_vfs_proto_rawDesc = "" + + "\n" + + "\tvfs.proto\x12\x05proto\x1a\x14proto/semantic.proto\"\x98\x02\n" + + "\x0fVFSDownloadInfo\x12\x19\n" + + "\bvfs_path\x18\x01 \x01(\tR\avfsPath\x12\x12\n" + + "\x04name\x18\v \x01(\tR\x04name\x12\x12\n" + + "\x04size\x18\x02 \x01(\x04R\x04size\x12\x14\n" + + "\x05mtime\x18\x03 \x01(\x04R\x05mtime\x12\x16\n" + + "\x06sparse\x18\x04 \x01(\bR\x06sparse\x12\x10\n" + + "\x03MD5\x18\x05 \x01(\tR\x03MD5\x12\x16\n" + + "\x06SHA256\x18\x06 \x01(\tR\x06SHA256\x12\x1e\n" + + "\n" + + "components\x18\a \x03(\tR\n" + + "components\x12\x17\n" + + "\aflow_id\x18\b \x01(\tR\x06flowId\x12\x1b\n" + + "\tin_flight\x18\t \x01(\bR\binFlight\x12\x14\n" + + "\x05error\x18\n" + + " \x01(\tR\x05error\"\xbb\x01\n" + + "\x15ClientMonitoringState\x12@\n" + + "\aversion\x18\x01 \x01(\x04B&\xe2\xfc\xe3\xc4\x01 \x12\x1eThe client's reported version.R\aversion\x12`\n" + + "\x15last_update_timestamp\x18\x02 \x01(\x04B,\xe2\xfc\xe3\xc4\x01&\x12$The last time we updated the client.R\x13lastUpdateTimestampB3Z1www.velocidex.com/golang/velociraptor/flows/protob\x06proto3" var ( file_vfs_proto_rawDescOnce sync.Once - file_vfs_proto_rawDescData = file_vfs_proto_rawDesc + file_vfs_proto_rawDescData []byte ) func file_vfs_proto_rawDescGZIP() []byte { file_vfs_proto_rawDescOnce.Do(func() { - file_vfs_proto_rawDescData = protoimpl.X.CompressGZIP(file_vfs_proto_rawDescData) + file_vfs_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_vfs_proto_rawDesc), len(file_vfs_proto_rawDesc))) }) return file_vfs_proto_rawDescData } var file_vfs_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_vfs_proto_goTypes = []interface{}{ +var file_vfs_proto_goTypes = []any{ (*VFSDownloadInfo)(nil), // 0: proto.VFSDownloadInfo (*ClientMonitoringState)(nil), // 1: proto.ClientMonitoringState } @@ -280,37 +258,11 @@ func file_vfs_proto_init() { if File_vfs_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vfs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VFSDownloadInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vfs_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientMonitoringState); 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_vfs_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_vfs_proto_rawDesc), len(file_vfs_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, @@ -321,7 +273,6 @@ func file_vfs_proto_init() { MessageInfos: file_vfs_proto_msgTypes, }.Build() File_vfs_proto = out.File - file_vfs_proto_rawDesc = nil file_vfs_proto_goTypes = nil file_vfs_proto_depIdxs = nil } diff --git a/glob/glob.go b/glob/glob.go index 05012131c..2c2a6e170 100644 --- a/glob/glob.go +++ b/glob/glob.go @@ -205,7 +205,7 @@ func (self *Globber) Add(pattern *accessors.OSPath) error { // Adds the raw filter into the Globber tree. This is called // after any expansion. func (self *Globber) _add_filter(components []_PathFilterer, globs []string) error { - var current *Globber = self + var current = self for _, element := range components { next, pres := current.filters[element] diff --git a/go.mod b/go.mod index 24c5fc816..4811db29a 100644 --- a/go.mod +++ b/go.mod @@ -47,7 +47,7 @@ require ( github.com/magefile/mage v1.17.2 github.com/mattn/go-isatty v0.0.20 github.com/mattn/go-pointer v0.0.0-20180825124634-49522c3f3791 - github.com/mattn/go-sqlite3 v1.14.37 + github.com/mattn/go-sqlite3 v1.14.44 github.com/microcosm-cc/bluemonday v1.0.23 github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/panicwrap v1.0.0 @@ -68,10 +68,10 @@ require ( github.com/xor-gate/debpkg v1.0.0 go.starlark.net v0.0.0-20230925163745-10651d5192ab golang.org/x/crypto v0.50.0 - golang.org/x/mod v0.34.0 + golang.org/x/mod v0.35.0 golang.org/x/net v0.53.0 golang.org/x/sys v0.43.0 - golang.org/x/text v0.36.0 + golang.org/x/text v0.37.0 golang.org/x/time v0.14.0 google.golang.org/api v0.258.0 google.golang.org/genproto v0.0.0-20251222181119-0a764e51fe1b // indirect @@ -89,7 +89,7 @@ require ( www.velocidex.com/golang/go-prefetch v0.0.0-20251027080408-85407689d0cb www.velocidex.com/golang/oleparse v0.0.0-20250312121321-f7c2b4ec0959 www.velocidex.com/golang/regparser v0.0.0-20250203141505-31e704a67ef7 - www.velocidex.com/golang/vfilter v0.0.0-20260325003227-469fc60d0e45 + www.velocidex.com/golang/vfilter v0.0.0-20260513155414-08c929c15ddb ) require ( @@ -136,7 +136,6 @@ require ( github.com/go-errors/errors v1.4.2 github.com/go-json-experiment/json v0.0.0-20250910080747-cc2cfa0554c3 github.com/golang-jwt/jwt/v4 v4.5.2 - github.com/golang/protobuf v1.5.4 github.com/gorilla/websocket v1.5.2-0.20240215025916-695e9095ce87 github.com/hanwen/go-fuse/v2 v2.5.1 github.com/hashicorp/go-retryablehttp v0.7.7 @@ -270,6 +269,7 @@ require ( github.com/golang-jwt/jwt/v5 v5.3.0 // indirect github.com/golang/gddo v0.0.0-20210115222349-20d68f94ee1f // indirect github.com/golang/glog v1.2.5 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v1.0.0 // indirect github.com/google/gopacket v1.1.19 // indirect github.com/google/s2a-go v0.1.9 // indirect diff --git a/go.sum b/go.sum index f94103550..7a99dcc79 100644 --- a/go.sum +++ b/go.sum @@ -643,8 +643,8 @@ github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRC github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= -github.com/mattn/go-sqlite3 v1.14.37 h1:3DOZp4cXis1cUIpCfXLtmlGolNLp2VEqhiB/PARNBIg= -github.com/mattn/go-sqlite3 v1.14.37/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/mattn/go-sqlite3 v1.14.44 h1:3VSe+xafpbzsLbdr2AWlAZk9yRHiBhTBakioXaCKTF8= +github.com/mattn/go-sqlite3 v1.14.44/go.mod h1:pjEuOr8IwzLJP2MfGeTb0A35jauH+C2kbHKBr7yXKVQ= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mccutchen/go-httpbin/v2 v2.18.3 h1:DyckIScjHLJtmlSju+rgjqqI1nL8AdMZHsLSljlbnMU= @@ -932,8 +932,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= -golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= +golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= +golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1029,8 +1029,8 @@ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= -golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.0.0-20170424234030-8be79e1e0910/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= @@ -1156,7 +1156,7 @@ www.velocidex.com/golang/oleparse v0.0.0-20250312121321-f7c2b4ec0959 h1:qJlm0T61 www.velocidex.com/golang/oleparse v0.0.0-20250312121321-f7c2b4ec0959/go.mod h1:wjOPwI3Vy6TP0AhF6NjjXV/to93E5A1tjA04liHvf5E= www.velocidex.com/golang/regparser v0.0.0-20250203141505-31e704a67ef7 h1:BMX/37sYwX+8JhHt+YNbPfbx7dXG1w1L1mXonNBtjt0= www.velocidex.com/golang/regparser v0.0.0-20250203141505-31e704a67ef7/go.mod h1:pxSECT5mWM3goJ4sxB4HCJNKnKqiAlpyT8XnvBwkLGU= -www.velocidex.com/golang/vfilter v0.0.0-20260325003227-469fc60d0e45 h1:zxoivsTCZlFvON3YQ7L/2DqxjHzEZbzGkOUuxnm8Df4= -www.velocidex.com/golang/vfilter v0.0.0-20260325003227-469fc60d0e45/go.mod h1:5g1ExLSKP3TpT1cAF6bLzVWL8opGzTifzVjmMAdDnFE= +www.velocidex.com/golang/vfilter v0.0.0-20260513155414-08c929c15ddb h1:uHexHO1uVqiL+JZQTBegPEd8TTZpJn897Vc+b6fot9Q= +www.velocidex.com/golang/vfilter v0.0.0-20260513155414-08c929c15ddb/go.mod h1:5g1ExLSKP3TpT1cAF6bLzVWL8opGzTifzVjmMAdDnFE= www.velocidex.com/golang/vtypes v0.0.0-20250802153006-821cec8fd392 h1:+FrLvUI9WPVcVsIvsZMtmPVwOcutLbbO1WWXxRFm2es= www.velocidex.com/golang/vtypes v0.0.0-20250802153006-821cec8fd392/go.mod h1:tjaJNlBWbvH4cEMrEu678CFR2hrtcdyPINIpRxrOh4U= diff --git a/gui/velociraptor/package-lock.json b/gui/velociraptor/package-lock.json index a9f68186e..6da86afbb 100644 --- a/gui/velociraptor/package-lock.json +++ b/gui/velociraptor/package-lock.json @@ -99,11 +99,11 @@ "dev": true }, "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -175,12 +175,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -307,26 +307,26 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -348,9 +348,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "dev": true, "engines": { "node": ">=6.9.0" @@ -426,9 +426,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "engines": { "node": ">=6.9.0" } @@ -470,11 +470,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", "dependencies": { - "@babel/types": "^7.28.4" + "@babel/types": "^7.29.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -1390,15 +1390,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", - "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.4.tgz", + "integrity": "sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.29.0" }, "engines": { "node": ">=6.9.0" @@ -2088,29 +2088,29 @@ } }, "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", "debug": "^4.3.1" }, "engines": { @@ -2118,12 +2118,12 @@ } }, "node_modules/@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "dependencies": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -8235,9 +8235,9 @@ "dev": true }, "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", "funding": [ { "type": "github", @@ -8247,8 +8247,7 @@ "type": "opencollective", "url": "https://opencollective.com/fastify" } - ], - "license": "BSD-3-Clause" + ] }, "node_modules/fastq": { "version": "1.15.0", @@ -15578,11 +15577,11 @@ } }, "@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "requires": { - "@babel/helper-validator-identifier": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } @@ -15636,12 +15635,12 @@ } }, "@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "requires": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -15734,23 +15733,23 @@ } }, "@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "requires": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" } }, "@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" } }, "@babel/helper-optimise-call-expression": { @@ -15763,9 +15762,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -15816,9 +15815,9 @@ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==" }, "@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==" }, "@babel/helper-validator-option": { "version": "7.27.1", @@ -15848,11 +15847,11 @@ } }, "@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", "requires": { - "@babel/types": "^7.28.4" + "@babel/types": "^7.29.0" } }, "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { @@ -16435,15 +16434,15 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", - "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.4.tgz", + "integrity": "sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.29.0" } }, "@babel/plugin-transform-modules-umd": { @@ -16909,36 +16908,36 @@ "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==" }, "@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "requires": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" } }, "@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "requires": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", "debug": "^4.3.1" } }, "@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "requires": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5" } }, "@bcoe/v8-coverage": { @@ -21347,9 +21346,9 @@ "dev": true }, "fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==" }, "fastq": { "version": "1.15.0", diff --git a/http_comms/comms.go b/http_comms/comms.go index eff267237..601a2249c 100644 --- a/http_comms/comms.go +++ b/http_comms/comms.go @@ -311,9 +311,8 @@ func (self *HTTPConnector) retryPost( case http.StatusRequestTimeout: logger.Debug("%v: Retrying connection to %v: Status %v", name, handler, resp.StatusCode) - if resp != nil { - resp.Body.Close() - } + resp.Body.Close() + count++ continue @@ -323,9 +322,7 @@ func (self *HTTPConnector) retryPost( name, handler, resp.StatusCode, resp.Status) count++ - if resp != nil { - resp.Body.Close() - } + resp.Body.Close() continue } } @@ -455,7 +452,8 @@ func (self *HTTPConnector) Post( return nil, errors.Wrap(err, 0) } - self.logger.Error("%s: Error: %v %v", name, resp.Status, string(data.Bytes())) + self.logger.Error("%s: Error: %v %v", + name, resp.Status, data.String()) return &bytes.Buffer{}, nil diff --git a/http_comms/ring_buffer_tracker.go b/http_comms/ring_buffer_tracker.go index c0bad38ed..450dac02a 100644 --- a/http_comms/ring_buffer_tracker.go +++ b/http_comms/ring_buffer_tracker.go @@ -46,7 +46,7 @@ func (self *LocalBufferTracker) ProfileWriter(ctx context.Context, scope vfilter }) for _, id := range ids { - rb, _ := self.tracked[id] + rb := self.tracked[id] rb.ProfileWriter(ctx, scope, output_chan) } } diff --git a/json/csv_test.go b/json/csv_test.go index 9711ae2be..fd24fe08c 100644 --- a/json/csv_test.go +++ b/json/csv_test.go @@ -62,7 +62,7 @@ func (self *CSVUtilsTestSuite) TestCSVUtils() { Set("HuntId", "H.123")) golden := fmt.Sprintf("JSONL:\n------\n%v\nCSV:\n------\n%v\n", - string(json_buffer.Bytes()), string(csv_buffer.Bytes())) + json_buffer.String(), csv_buffer.String()) goldie.Assert(self.T(), "TestCSVUtils", []byte(golden)) diff --git a/json/shortcuts.go b/json/shortcuts.go index 0a8a05a00..4b5ec930a 100644 --- a/json/shortcuts.go +++ b/json/shortcuts.go @@ -40,9 +40,7 @@ func AppendJsonlItem(jsonl []byte, name string, value interface{}) []byte { } func memcat(dest *[]byte, src []byte) { - for _, c := range src { - *dest = append(*dest, c) - } + *dest = append(*dest, src...) } // Allows to format a JSON string safely similar to fmt.Sprintf diff --git a/logging/logging.go b/logging/logging.go index fc7bdc838..4c37fc977 100644 --- a/logging/logging.go +++ b/logging/logging.go @@ -258,7 +258,7 @@ func (self *LogContext) Error(format string, v ...interface{}) { func (self *LogContext) IsEnabled(level string) bool { self.mu.Lock() defer self.mu.Unlock() - ok, _ := self.enabled[level] + ok := self.enabled[level] return ok } diff --git a/paths/paths_test.go b/paths/paths_test.go index d38d6360a..2f763ce15 100644 --- a/paths/paths_test.go +++ b/paths/paths_test.go @@ -92,9 +92,7 @@ func (self *PathManagerTestSuite) getFilestorePath(path_spec api.FSPathSpec) str fd.Close() results := []string{} - for _, k := range fs.Data.Keys() { - results = append(results, k) - } + results = append(results, fs.Data.Keys()...) assert.Equal(self.T(), 1, len(results)) return results[0] diff --git a/proto/flow_metadata.pb.go b/proto/flow_metadata.pb.go index 00033dfbf..3c05115c4 100644 --- a/proto/flow_metadata.pb.go +++ b/proto/flow_metadata.pb.go @@ -4,11 +4,12 @@ package proto import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -19,20 +20,17 @@ const ( ) type FlowMetaData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Category string `protobuf:"bytes,1,opt,name=category,proto3" json:"category,omitempty"` unknownFields protoimpl.UnknownFields - - Category string `protobuf:"bytes,1,opt,name=category,proto3" json:"category,omitempty"` + sizeCache protoimpl.SizeCache } func (x *FlowMetaData) Reset() { *x = FlowMetaData{} - if protoimpl.UnsafeEnabled { - mi := &file_flow_metadata_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_flow_metadata_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FlowMetaData) String() string { @@ -43,7 +41,7 @@ func (*FlowMetaData) ProtoMessage() {} func (x *FlowMetaData) ProtoReflect() protoreflect.Message { mi := &file_flow_metadata_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -67,7 +65,7 @@ func (x *FlowMetaData) GetCategory() string { var file_flow_metadata_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptor.MessageOptions)(nil), + ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*FlowMetaData)(nil), Field: 65661, Name: "proto.flow_metadata", @@ -76,7 +74,7 @@ var file_flow_metadata_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptor.MessageOptions. +// Extension fields to descriptorpb.MessageOptions. var ( // optional proto.FlowMetaData flow_metadata = 65661; E_FlowMetadata = &file_flow_metadata_proto_extTypes[0] @@ -84,41 +82,29 @@ var ( var File_flow_metadata_proto protoreflect.FileDescriptor -var file_flow_metadata_proto_rawDesc = []byte{ - 0x0a, 0x13, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2a, - 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, - 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x3a, 0x5b, 0x0a, 0x0d, 0x66, 0x6c, - 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xfd, 0x80, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x2d, 0x5a, 0x2b, 0x77, 0x77, 0x77, 0x2e, 0x76, - 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, - 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_flow_metadata_proto_rawDesc = "" + + "\n" + + "\x13flow_metadata.proto\x12\x05proto\x1a google/protobuf/descriptor.proto\"*\n" + + "\fFlowMetaData\x12\x1a\n" + + "\bcategory\x18\x01 \x01(\tR\bcategory:[\n" + + "\rflow_metadata\x12\x1f.google.protobuf.MessageOptions\x18\xfd\x80\x04 \x01(\v2\x13.proto.FlowMetaDataR\fflowMetadataB-Z+www.velocidex.com/golang/velociraptor/protob\x06proto3" var ( file_flow_metadata_proto_rawDescOnce sync.Once - file_flow_metadata_proto_rawDescData = file_flow_metadata_proto_rawDesc + file_flow_metadata_proto_rawDescData []byte ) func file_flow_metadata_proto_rawDescGZIP() []byte { file_flow_metadata_proto_rawDescOnce.Do(func() { - file_flow_metadata_proto_rawDescData = protoimpl.X.CompressGZIP(file_flow_metadata_proto_rawDescData) + file_flow_metadata_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_flow_metadata_proto_rawDesc), len(file_flow_metadata_proto_rawDesc))) }) return file_flow_metadata_proto_rawDescData } var file_flow_metadata_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_flow_metadata_proto_goTypes = []interface{}{ - (*FlowMetaData)(nil), // 0: proto.FlowMetaData - (*descriptor.MessageOptions)(nil), // 1: google.protobuf.MessageOptions +var file_flow_metadata_proto_goTypes = []any{ + (*FlowMetaData)(nil), // 0: proto.FlowMetaData + (*descriptorpb.MessageOptions)(nil), // 1: google.protobuf.MessageOptions } var file_flow_metadata_proto_depIdxs = []int32{ 1, // 0: proto.flow_metadata:extendee -> google.protobuf.MessageOptions @@ -135,25 +121,11 @@ func file_flow_metadata_proto_init() { if File_flow_metadata_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_flow_metadata_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowMetaData); 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_flow_metadata_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_flow_metadata_proto_rawDesc), len(file_flow_metadata_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 1, @@ -165,7 +137,6 @@ func file_flow_metadata_proto_init() { ExtensionInfos: file_flow_metadata_proto_extTypes, }.Build() File_flow_metadata_proto = out.File - file_flow_metadata_proto_rawDesc = nil file_flow_metadata_proto_goTypes = nil file_flow_metadata_proto_depIdxs = nil } diff --git a/proto/semantic.pb.go b/proto/semantic.pb.go index c0ccd6e4d..fee2d3816 100644 --- a/proto/semantic.pb.go +++ b/proto/semantic.pb.go @@ -4,11 +4,12 @@ package proto import ( - descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -69,10 +70,7 @@ func (SemanticDescriptor_Labels) EnumDescriptor() ([]byte, []int) { } type SemanticDescriptor struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The semantic name of the SemanticValue contained in this field. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // The type of this field can be specified dynamically. This is the name of @@ -85,16 +83,16 @@ type SemanticDescriptor struct { Default string `protobuf:"bytes,6,opt,name=default,proto3" json:"default,omitempty"` Label []SemanticDescriptor_Labels `protobuf:"varint,3,rep,packed,name=label,proto3,enum=proto.SemanticDescriptor_Labels" json:"label,omitempty"` // A friendly name for this field - to be used in GUIs etc. - FriendlyName string `protobuf:"bytes,4,opt,name=friendly_name,json=friendlyName,proto3" json:"friendly_name,omitempty"` + FriendlyName string `protobuf:"bytes,4,opt,name=friendly_name,json=friendlyName,proto3" json:"friendly_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SemanticDescriptor) Reset() { *x = SemanticDescriptor{} - if protoimpl.UnsafeEnabled { - mi := &file_semantic_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_semantic_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SemanticDescriptor) String() string { @@ -105,7 +103,7 @@ func (*SemanticDescriptor) ProtoMessage() {} func (x *SemanticDescriptor) ProtoReflect() protoreflect.Message { mi := &file_semantic_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -163,22 +161,19 @@ func (x *SemanticDescriptor) GetFriendlyName() string { } type SemanticMessageDescriptor struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Describe the purpose of this protobuf. - Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` - FriendlyName string `protobuf:"bytes,3,opt,name=friendly_name,json=friendlyName,proto3" json:"friendly_name,omitempty"` + Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` + FriendlyName string `protobuf:"bytes,3,opt,name=friendly_name,json=friendlyName,proto3" json:"friendly_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SemanticMessageDescriptor) Reset() { *x = SemanticMessageDescriptor{} - if protoimpl.UnsafeEnabled { - mi := &file_semantic_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_semantic_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SemanticMessageDescriptor) String() string { @@ -189,7 +184,7 @@ func (*SemanticMessageDescriptor) ProtoMessage() {} func (x *SemanticMessageDescriptor) ProtoReflect() protoreflect.Message { mi := &file_semantic_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -220,7 +215,7 @@ func (x *SemanticMessageDescriptor) GetFriendlyName() string { var file_semantic_proto_extTypes = []protoimpl.ExtensionInfo{ { - ExtendedType: (*descriptor.FieldOptions)(nil), + ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*SemanticDescriptor)(nil), Field: 51584972, Name: "proto.sem_type", @@ -228,7 +223,7 @@ var file_semantic_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "semantic.proto", }, { - ExtendedType: (*descriptor.MessageOptions)(nil), + ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*SemanticMessageDescriptor)(nil), Field: 51584971, Name: "proto.semantic", @@ -236,7 +231,7 @@ var file_semantic_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "semantic.proto", }, { - ExtendedType: (*descriptor.EnumValueOptions)(nil), + ExtendedType: (*descriptorpb.EnumValueOptions)(nil), ExtensionType: (*string)(nil), Field: 48651165, Name: "proto.description", @@ -244,7 +239,7 @@ var file_semantic_proto_extTypes = []protoimpl.ExtensionInfo{ Filename: "semantic.proto", }, { - ExtendedType: (*descriptor.EnumValueOptions)(nil), + ExtendedType: (*descriptorpb.EnumValueOptions)(nil), ExtensionType: (*SemanticDescriptor_Labels)(nil), Field: 48651166, Name: "proto.label", @@ -253,19 +248,19 @@ var file_semantic_proto_extTypes = []protoimpl.ExtensionInfo{ }, } -// Extension fields to descriptor.FieldOptions. +// Extension fields to descriptorpb.FieldOptions. var ( // optional proto.SemanticDescriptor sem_type = 51584972; E_SemType = &file_semantic_proto_extTypes[0] ) -// Extension fields to descriptor.MessageOptions. +// Extension fields to descriptorpb.MessageOptions. var ( // optional proto.SemanticMessageDescriptor semantic = 51584971; E_Semantic = &file_semantic_proto_extTypes[1] ) -// Extension fields to descriptor.EnumValueOptions. +// Extension fields to descriptorpb.EnumValueOptions. var ( // optional string description = 48651165; E_Description = &file_semantic_proto_extTypes[2] @@ -275,83 +270,50 @@ var ( var File_semantic_proto protoreflect.FileDescriptor -var file_semantic_proto_rawDesc = []byte{ - 0x0a, 0x0e, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x95, 0x02, 0x0a, 0x12, 0x53, 0x65, - 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, - 0x74, 0x69, 0x63, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x2f, 0x0a, 0x06, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, - 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x44, 0x56, 0x41, 0x4e, - 0x43, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x49, 0x44, 0x44, 0x45, 0x4e, 0x10, - 0x02, 0x22, 0x62, 0x0a, 0x19, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x56, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0xcc, 0xbf, 0xcc, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x73, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x60, 0x0a, - 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xcb, 0xbf, 0xcc, 0x18, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x6d, 0x61, - 0x6e, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x3a, - 0x46, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x9d, 0xb7, 0x99, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x5c, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x9e, 0xb7, 0x99, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x2d, 0x5a, 0x2b, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x6c, - 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, - 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_semantic_proto_rawDesc = "" + + "\n" + + "\x0esemantic.proto\x12\x05proto\x1a google/protobuf/descriptor.proto\"\x95\x02\n" + + "\x12SemanticDescriptor\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12!\n" + + "\fdynamic_type\x18\x05 \x01(\tR\vdynamicType\x12 \n" + + "\vdescription\x18\x02 \x01(\tR\vdescription\x12\x18\n" + + "\adefault\x18\x06 \x01(\tR\adefault\x126\n" + + "\x05label\x18\x03 \x03(\x0e2 .proto.SemanticDescriptor.LabelsR\x05label\x12#\n" + + "\rfriendly_name\x18\x04 \x01(\tR\ffriendlyName\"/\n" + + "\x06Labels\x12\v\n" + + "\aDEFAULT\x10\x00\x12\f\n" + + "\bADVANCED\x10\x01\x12\n" + + "\n" + + "\x06HIDDEN\x10\x02\"b\n" + + "\x19SemanticMessageDescriptor\x12 \n" + + "\vdescription\x18\x01 \x01(\tR\vdescription\x12#\n" + + "\rfriendly_name\x18\x03 \x01(\tR\ffriendlyName:V\n" + + "\bsem_type\x12\x1d.google.protobuf.FieldOptions\x18̿\xcc\x18 \x01(\v2\x19.proto.SemanticDescriptorR\asemType:`\n" + + "\bsemantic\x12\x1f.google.protobuf.MessageOptions\x18˿\xcc\x18 \x01(\v2 .proto.SemanticMessageDescriptorR\bsemantic:F\n" + + "\vdescription\x12!.google.protobuf.EnumValueOptions\x18\x9d\xb7\x99\x17 \x01(\tR\vdescription:\\\n" + + "\x05label\x12!.google.protobuf.EnumValueOptions\x18\x9e\xb7\x99\x17 \x01(\x0e2 .proto.SemanticDescriptor.LabelsR\x05labelB-Z+www.velocidex.com/golang/velociraptor/protob\x06proto3" var ( file_semantic_proto_rawDescOnce sync.Once - file_semantic_proto_rawDescData = file_semantic_proto_rawDesc + file_semantic_proto_rawDescData []byte ) func file_semantic_proto_rawDescGZIP() []byte { file_semantic_proto_rawDescOnce.Do(func() { - file_semantic_proto_rawDescData = protoimpl.X.CompressGZIP(file_semantic_proto_rawDescData) + file_semantic_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_semantic_proto_rawDesc), len(file_semantic_proto_rawDesc))) }) return file_semantic_proto_rawDescData } var file_semantic_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_semantic_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_semantic_proto_goTypes = []interface{}{ - (SemanticDescriptor_Labels)(0), // 0: proto.SemanticDescriptor.Labels - (*SemanticDescriptor)(nil), // 1: proto.SemanticDescriptor - (*SemanticMessageDescriptor)(nil), // 2: proto.SemanticMessageDescriptor - (*descriptor.FieldOptions)(nil), // 3: google.protobuf.FieldOptions - (*descriptor.MessageOptions)(nil), // 4: google.protobuf.MessageOptions - (*descriptor.EnumValueOptions)(nil), // 5: google.protobuf.EnumValueOptions +var file_semantic_proto_goTypes = []any{ + (SemanticDescriptor_Labels)(0), // 0: proto.SemanticDescriptor.Labels + (*SemanticDescriptor)(nil), // 1: proto.SemanticDescriptor + (*SemanticMessageDescriptor)(nil), // 2: proto.SemanticMessageDescriptor + (*descriptorpb.FieldOptions)(nil), // 3: google.protobuf.FieldOptions + (*descriptorpb.MessageOptions)(nil), // 4: google.protobuf.MessageOptions + (*descriptorpb.EnumValueOptions)(nil), // 5: google.protobuf.EnumValueOptions } var file_semantic_proto_depIdxs = []int32{ 0, // 0: proto.SemanticDescriptor.label:type_name -> proto.SemanticDescriptor.Labels @@ -374,37 +336,11 @@ func file_semantic_proto_init() { if File_semantic_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_semantic_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SemanticDescriptor); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_semantic_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SemanticMessageDescriptor); 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_semantic_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_semantic_proto_rawDesc), len(file_semantic_proto_rawDesc)), NumEnums: 1, NumMessages: 2, NumExtensions: 4, @@ -417,7 +353,6 @@ func file_semantic_proto_init() { ExtensionInfos: file_semantic_proto_extTypes, }.Build() File_semantic_proto = out.File - file_semantic_proto_rawDesc = nil file_semantic_proto_goTypes = nil file_semantic_proto_depIdxs = nil } diff --git a/reporting/container.go b/reporting/container.go index df26fabe3..efda82b7a 100644 --- a/reporting/container.go +++ b/reporting/container.go @@ -779,7 +779,7 @@ func NewContainerFromWriter( if password != "" { files.Add(name + "-delegate") result.delegate_zip = zip.NewWriter(result.writer) - if metadata != nil && len(metadata) != 0 { + if len(metadata) != 0 { fh, err := result.delegate_zip.Create("metadata.json") if err != nil { return nil, err @@ -811,7 +811,7 @@ func NewContainerFromWriter( zip.Deflate, func(out io.Writer) (io.WriteCloser, error) { return flate.NewWriter(out, int(level)) }) - if metadata != nil && len(metadata) != 0 { + if len(metadata) != 0 { fh, err := result.zip.Create("metadata.json") if err != nil { return nil, err diff --git a/reporting/vql.go b/reporting/vql.go index 77a7fc33d..1f3cba9db 100644 --- a/reporting/vql.go +++ b/reporting/vql.go @@ -1,9 +1,11 @@ -//+build !codeanalysis +//go:build !codeanalysis +// +build !codeanalysis package reporting import ( - . "github.com/alecthomas/chroma" // nolint + //lint:file-ignore ST1001 Bring in depedencies + . "github.com/alecthomas/chroma" "github.com/alecthomas/chroma/lexers" ) diff --git a/responder/flow_context.go b/responder/flow_context.go index c3b1962f4..6c8d91ef6 100644 --- a/responder/flow_context.go +++ b/responder/flow_context.go @@ -200,7 +200,7 @@ func (self *FlowContext) GetJSONLBytes(name string) uint64 { self.mu.Lock() defer self.mu.Unlock() - count, _ := self.total_jsonl_bytes[name] + count := self.total_jsonl_bytes[name] return count } @@ -208,7 +208,7 @@ func (self *FlowContext) ChargeJSONLBytes(name string, bytes uint64) { self.mu.Lock() defer self.mu.Unlock() - count, _ := self.total_jsonl_bytes[name] + count := self.total_jsonl_bytes[name] count += bytes self.total_jsonl_bytes[name] = count } diff --git a/responder/testutils.go b/responder/testutils.go index 225b21c06..0e3e24d65 100644 --- a/responder/testutils.go +++ b/responder/testutils.go @@ -75,9 +75,7 @@ func (self *messageDrain) Messages() []*crypto_proto.VeloMessage { defer self.mu.Unlock() result := make([]*crypto_proto.VeloMessage, 0, len(self.messages)) - for _, i := range self.messages { - result = append(result, i) - } + result = append(result, self.messages...) return result } diff --git a/result_sets/simple/simple_test.go b/result_sets/simple/simple_test.go index 8ae17c324..7b62494bd 100644 --- a/result_sets/simple/simple_test.go +++ b/result_sets/simple/simple_test.go @@ -408,8 +408,11 @@ func (self *ResultSetTestSuite) TestResultSetWriterWriteJSONL() { // Seek into the middle of the JSON blob (last row) err = rs_reader.SeekToRow(2) + assert.NoError(self.T(), err) + rows := simple.GetAllResults(rs_reader) assert.Equal(self.T(), len(rows), 1) + value, _ := rows[0].GetInt64("Foo") assert.Equal(self.T(), value, int64(3)) } diff --git a/result_sets/simple/transformed_test.go b/result_sets/simple/transformed_test.go index 7cb6c7daa..04086ac4d 100644 --- a/result_sets/simple/transformed_test.go +++ b/result_sets/simple/transformed_test.go @@ -48,6 +48,7 @@ func (self *ResultSetTestSuite) TestTransformed() { // Read the rows back out from the start rows := simple.GetAllResults(rs_reader) assert.Equal(self.T(), rs_reader.TotalRows(), int64(50)) + assert.Equal(self.T(), len(rows), 50) golden := ordereddict.NewDict() diff --git a/result_sets/timed/writer_test.go b/result_sets/timed/writer_test.go index d273c66c2..dbc55cdd1 100644 --- a/result_sets/timed/writer_test.go +++ b/result_sets/timed/writer_test.go @@ -116,7 +116,7 @@ func (self *TimedResultSetTestSuite) TestTimedResultSetWriting() { writer.Close() vtesting.WaitUntil(time.Second, self.T(), func() bool { - return 1 == len(completion_result) + return len(completion_result) == 1 }) assert.Equal(self.T(), "Done", completion_result[0]) @@ -193,7 +193,7 @@ func (self *TimedResultSetTestSuite) TestTimedResultSetWritingJsonl() { writer.Close() vtesting.WaitUntil(time.Second, self.T(), func() bool { - return 1 == len(completion_result) + return len(completion_result) == 1 }) assert.Equal(self.T(), "Done", completion_result[0]) @@ -264,7 +264,7 @@ func (self *TimedResultSetTestSuite) TestTimedResultSetWritingNoFlushing() { writer.Close() vtesting.WaitUntil(time.Second, self.T(), func() bool { - return 1 == len(completion_result) + return len(completion_result) == 1 }) assert.Equal(self.T(), "Done", completion_result[0]) diff --git a/server/loadshed.go b/server/loadshed.go index fff2967eb..f22fba11e 100644 --- a/server/loadshed.go +++ b/server/loadshed.go @@ -38,14 +38,15 @@ func (self *LoadSheddingListener) Accept() (net.Conn, error) { } } -func (self *Server) NewLoadSheddingListener(addr string) (*LoadSheddingListener, error, func() error) { +func (self *Server) NewLoadSheddingListener(addr string) ( + *LoadSheddingListener, func() error, error) { ln, err := net.Listen("tcp", addr) if err != nil { - return nil, err, nil + return nil, nil, err } return &LoadSheddingListener{ Listener: ln, throttler: self.throttler, - }, err, ln.Close + }, ln.Close, err } diff --git a/services/acl_manager/backup.go b/services/acl_manager/backup.go index 56220e04c..614606486 100644 --- a/services/acl_manager/backup.go +++ b/services/acl_manager/backup.go @@ -78,7 +78,7 @@ func (self ACLBackupProvider) Restore(ctx context.Context, stat.Message = fmt.Sprintf("ACL backups do not automatically restore. There are %v ACL records which may be restored manually.", count) }() - for _ = range in { + for range in { count++ } diff --git a/services/backup/backup_test.go b/services/backup/backup_test.go index 2eabcdc52..8c988e25b 100644 --- a/services/backup/backup_test.go +++ b/services/backup/backup_test.go @@ -28,7 +28,6 @@ import ( type TestBackupProvider struct { name []string - rows []*ordereddict.Dict // Restored rows from backup restored []vfilter.Row diff --git a/services/client_info/storage.go b/services/client_info/storage.go index 376386d93..5221247e5 100644 --- a/services/client_info/storage.go +++ b/services/client_info/storage.go @@ -237,7 +237,7 @@ func (self *Store) LoadFromSnapshot( logger := logging.GetLogger(config_obj, &logging.FrontendComponent) logger.Info("ClientInfo Manager Loaded snapshot in %v for org %v (%v records)", - time.Now().Sub(now), services.GetOrgName(config_obj), len(self.data)) + time.Since(now), services.GetOrgName(config_obj), len(self.data)) return nil } @@ -297,7 +297,7 @@ func (self *Store) SaveSnapshot( } logger.Info("ClientInfo Manager Written snapshot for org %v in %v (%v records)", - services.GetOrgName(config_obj), time.Now().Sub(now), record_count) + services.GetOrgName(config_obj), time.Since(now), record_count) } // The final write must be synchronous because we need to diff --git a/services/client_info/tasks_test.go b/services/client_info/tasks_test.go index 43cb2778b..b7d86c90f 100644 --- a/services/client_info/tasks_test.go +++ b/services/client_info/tasks_test.go @@ -80,7 +80,7 @@ func (self *ClientInfoTestSuite) TestFastQueueMessages() { tasks, err := client_info_manager.PeekClientTasks( context.Background(), self.client_id) assert.NoError(self.T(), err) - return 10 == len(tasks) + return len(tasks) == 10 }) tasks, err := client_info_manager.GetClientTasks( @@ -126,6 +126,8 @@ func (self *ClientInfoTestSuite) TestInFlightMessages() { closer() } + _ = flow_ids + client_info_manager, err := services.GetClientInfoManager(self.ConfigObj) assert.NoError(self.T(), err) diff --git a/services/client_info/validate.go b/services/client_info/validate.go index 2c9383153..d61258f7b 100644 --- a/services/client_info/validate.go +++ b/services/client_info/validate.go @@ -7,7 +7,7 @@ import ( var ( // Client IDs always start with "C." or they can refer to the "server" - client_id_regex = regexp.MustCompile("^(C\\.[a-z0-9]+|server)") + client_id_regex = regexp.MustCompile(`^(C\.[a-z0-9]+|server)`) client_id_not_provided_error = errors.New("ClientId not provided") client_id_not_valid_error = errors.New("ClientId is not valid") ) diff --git a/services/client_monitoring/client_monitoring_test.go b/services/client_monitoring/client_monitoring_test.go index 33828358a..ba45dc8b3 100644 --- a/services/client_monitoring/client_monitoring_test.go +++ b/services/client_monitoring/client_monitoring_test.go @@ -54,7 +54,6 @@ sources: type ClientMonitoringTestSuite struct { test_utils.TestSuite client_id string - flow_id string } func (self *ClientMonitoringTestSuite) SetupTest() { diff --git a/services/ddclient/noip.go b/services/ddclient/noip.go index a59437c4d..a0b446d2c 100644 --- a/services/ddclient/noip.go +++ b/services/ddclient/noip.go @@ -68,7 +68,7 @@ func (self NoIPUpdater) UpdateDDNSRecord( if err != nil { return err } - url := string(output.Bytes()) + url := output.String() logger.Debug("DynDns: Submitting update request to %v", url) client := &http.Client{ diff --git a/services/debug/profile.go b/services/debug/profile.go index b8138c46a..b8198ccac 100644 --- a/services/debug/profile.go +++ b/services/debug/profile.go @@ -68,7 +68,7 @@ func (self *CategoryTreeNode) toString() []string { } for _, k := range utils.Sort(self.Profiles) { - p, _ := self.Profiles[k] + p := self.Profiles[k] res = append(res, "- "+p.Name) } @@ -135,9 +135,5 @@ func GetProfileWriters() (result []ProfileWriterInfo) { mu.Lock() defer mu.Unlock() - for _, i := range handlers { - result = append(result, i) - } - - return result + return append(result, handlers...) } diff --git a/services/frontend/frontend.go b/services/frontend/frontend.go index 9c2eda8d7..0daf5b62f 100644 --- a/services/frontend/frontend.go +++ b/services/frontend/frontend.go @@ -208,7 +208,7 @@ func (self *MasterFrontendManager) GetMinionCount() int { for node_name, metric := range self.stats { if node_name != "master" { - if time.Now().Sub(metric.Timestamp) < 60*time.Second { + if time.Since(metric.Timestamp) < 60*time.Second { res++ } } @@ -247,7 +247,7 @@ func (self *MasterFrontendManager) prepareOrgStats() ( for _, v := range self.stats { if now.Sub(v.Timestamp) < 60*time.Second { - count, _ := v.ClientCommsCurrentConnections[org.Id] + count := v.ClientCommsCurrentConnections[org.Id] total += count } } diff --git a/services/frontend/proto/frontend.pb.go b/services/frontend/proto/frontend.pb.go index c21b0ec37..62d2acd91 100644 --- a/services/frontend/proto/frontend.pb.go +++ b/services/frontend/proto/frontend.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -21,24 +22,21 @@ const ( // monitor for the dashboard. For proper monitoring use // graphana/prometheus. type Metrics struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ProcessCpuNanoSecondsTotal int64 `protobuf:"varint,1,opt,name=process_cpu_nano_seconds_total,json=processCpuNanoSecondsTotal,proto3" json:"process_cpu_nano_seconds_total,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ProcessCpuNanoSecondsTotal int64 `protobuf:"varint,1,opt,name=process_cpu_nano_seconds_total,json=processCpuNanoSecondsTotal,proto3" json:"process_cpu_nano_seconds_total,omitempty"` // Percent of one core used by this frontend process. CpuLoadPercent int64 `protobuf:"varint,4,opt,name=cpu_load_percent,json=cpuLoadPercent,proto3" json:"cpu_load_percent,omitempty"` ClientCommsCurrentConnections int64 `protobuf:"varint,2,opt,name=client_comms_current_connections,json=clientCommsCurrentConnections,proto3" json:"client_comms_current_connections,omitempty"` ProcessResidentMemoryBytes int64 `protobuf:"varint,3,opt,name=process_resident_memory_bytes,json=processResidentMemoryBytes,proto3" json:"process_resident_memory_bytes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Metrics) Reset() { *x = Metrics{} - if protoimpl.UnsafeEnabled { - mi := &file_frontend_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_frontend_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Metrics) String() string { @@ -49,7 +47,7 @@ func (*Metrics) ProtoMessage() {} func (x *Metrics) ProtoReflect() protoreflect.Message { mi := &file_frontend_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -94,10 +92,7 @@ func (x *Metrics) GetProcessResidentMemoryBytes() int64 { // Describe the frontend state. type FrontendState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The unique name of the frontend. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"` @@ -108,16 +103,16 @@ type FrontendState struct { Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` // DEPRECATED. Metrics are now sent over // Server.Internal.FrontendMetrics - Metrics *Metrics `protobuf:"bytes,4,opt,name=metrics,proto3" json:"metrics,omitempty"` + Metrics *Metrics `protobuf:"bytes,4,opt,name=metrics,proto3" json:"metrics,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FrontendState) Reset() { *x = FrontendState{} - if protoimpl.UnsafeEnabled { - mi := &file_frontend_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_frontend_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FrontendState) String() string { @@ -128,7 +123,7 @@ func (*FrontendState) ProtoMessage() {} func (x *FrontendState) ProtoReflect() protoreflect.Message { mi := &file_frontend_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -180,55 +175,35 @@ func (x *FrontendState) GetMetrics() *Metrics { var File_frontend_proto protoreflect.FileDescriptor -var file_frontend_proto_rawDesc = []byte{ - 0x0a, 0x0e, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x83, 0x02, 0x0a, 0x07, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x42, 0x0a, 0x1e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, - 0x70, 0x75, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x43, 0x70, 0x75, 0x4e, 0x61, 0x6e, 0x6f, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x70, 0x75, 0x5f, 0x6c, - 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0e, 0x63, 0x70, 0x75, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x12, 0x47, 0x0a, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x73, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x73, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x1a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x97, 0x01, - 0x0a, 0x0d, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x28, 0x0a, - 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x3f, 0x5a, 0x3d, 0x77, 0x77, 0x77, 0x2e, 0x76, - 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, - 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, 0x6f, 0x72, - 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_frontend_proto_rawDesc = "" + + "\n" + + "\x0efrontend.proto\x12\x05proto\"\x83\x02\n" + + "\aMetrics\x12B\n" + + "\x1eprocess_cpu_nano_seconds_total\x18\x01 \x01(\x03R\x1aprocessCpuNanoSecondsTotal\x12(\n" + + "\x10cpu_load_percent\x18\x04 \x01(\x03R\x0ecpuLoadPercent\x12G\n" + + " client_comms_current_connections\x18\x02 \x01(\x03R\x1dclientCommsCurrentConnections\x12A\n" + + "\x1dprocess_resident_memory_bytes\x18\x03 \x01(\x03R\x1aprocessResidentMemoryBytes\"\x97\x01\n" + + "\rFrontendState\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" + + "\aversion\x18\x05 \x01(\tR\aversion\x12\x1c\n" + + "\theartbeat\x18\x02 \x01(\x03R\theartbeat\x12\x10\n" + + "\x03url\x18\x03 \x01(\tR\x03url\x12(\n" + + "\ametrics\x18\x04 \x01(\v2\x0e.proto.MetricsR\ametricsB?Z=www.velocidex.com/golang/velociraptor/services/frontend/protob\x06proto3" var ( file_frontend_proto_rawDescOnce sync.Once - file_frontend_proto_rawDescData = file_frontend_proto_rawDesc + file_frontend_proto_rawDescData []byte ) func file_frontend_proto_rawDescGZIP() []byte { file_frontend_proto_rawDescOnce.Do(func() { - file_frontend_proto_rawDescData = protoimpl.X.CompressGZIP(file_frontend_proto_rawDescData) + file_frontend_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_frontend_proto_rawDesc), len(file_frontend_proto_rawDesc))) }) return file_frontend_proto_rawDescData } var file_frontend_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_frontend_proto_goTypes = []interface{}{ +var file_frontend_proto_goTypes = []any{ (*Metrics)(nil), // 0: proto.Metrics (*FrontendState)(nil), // 1: proto.FrontendState } @@ -246,37 +221,11 @@ func file_frontend_proto_init() { if File_frontend_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_frontend_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Metrics); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_frontend_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FrontendState); 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_frontend_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_frontend_proto_rawDesc), len(file_frontend_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, @@ -287,7 +236,6 @@ func file_frontend_proto_init() { MessageInfos: file_frontend_proto_msgTypes, }.Build() File_frontend_proto = out.File - file_frontend_proto_rawDesc = nil file_frontend_proto_goTypes = nil file_frontend_proto_depIdxs = nil } diff --git a/services/hunt_dispatcher/storage.go b/services/hunt_dispatcher/storage.go index d47609ae2..aaf5e78b6 100644 --- a/services/hunt_dispatcher/storage.go +++ b/services/hunt_dispatcher/storage.go @@ -683,8 +683,6 @@ func (self *HuntStorageManagerImpl) UpdateHuntCache(hunt_obj *api_proto.Hunt) { self.hunts[hunt_obj.HuntId] = old_hunt_record self.last_update = utils.GetTime().Now() - - return } // Refreshes the in memory hunt objects from the data store. This diff --git a/services/hunt_dispatcher/tracker.go b/services/hunt_dispatcher/tracker.go index ba3fe5278..64e4d020d 100644 --- a/services/hunt_dispatcher/tracker.go +++ b/services/hunt_dispatcher/tracker.go @@ -31,7 +31,7 @@ func (self *HuntRefreshStats) ToDict() *ordereddict.Dict { return ordereddict.NewDict(). Set("Type", self.Type). Set("Time", self.Time.UTC().Format(time.RFC3339)). - Set("Ago", time.Now().Sub(self.Time).Round(time.Second).String()). + Set("Ago", time.Since(self.Time).Round(time.Second).String()). Set("Duration", self.Duration.Round(time.Second).String()). Set("TotalHunts", self.TotalHunts). Set("TotalHuntsSkipped", self.TotalHuntsSkipped). @@ -67,11 +67,9 @@ func (self *HuntDispatcherTracker) AddRefreshStats(s *HuntRefreshStats) { func (self *HuntDispatcherTracker) WriteProfile( ctx context.Context, scope vfilter.Scope, output_chan chan vfilter.Row) { + self.mu.Lock() - var refreshes []*HuntRefreshStats - for _, item := range self.RecentRefresh { - refreshes = append(refreshes, item) - } + refreshes := append([]*HuntRefreshStats{}, self.RecentRefresh...) self.mu.Unlock() for _, item := range refreshes { diff --git a/services/hunt_manager/hunt_manager_test.go b/services/hunt_manager/hunt_manager_test.go index 68fb3f645..564e2023b 100644 --- a/services/hunt_manager/hunt_manager_test.go +++ b/services/hunt_manager/hunt_manager_test.go @@ -140,6 +140,8 @@ func (self *HuntTestSuite) TestHuntWithLabelClientNoLabel() { } hunt_dispatcher, err := services.GetHuntDispatcher(self.ConfigObj) + assert.NoError(t, err) + hunt_dispatcher.Refresh(self.Ctx, self.ConfigObj, FORCE_REFRESH) _, err = hunt_dispatcher.CreateHunt( diff --git a/services/hunt_manager/mutations.go b/services/hunt_manager/mutations.go index 2e12e9d1d..381678b42 100644 --- a/services/hunt_manager/mutations.go +++ b/services/hunt_manager/mutations.go @@ -191,7 +191,8 @@ func (self *HuntManager) processMutation( // Force the dispatcher to write the index. if modification == services.HuntPropagateChanges { - // return dispatcher.Refresh(ctx, config_obj) + return nil + //return dispatcher.Refresh(ctx, config_obj) } return nil diff --git a/services/indexing/rebuild.go b/services/indexing/rebuild.go index 16d453672..259353504 100644 --- a/services/indexing/rebuild.go +++ b/services/indexing/rebuild.go @@ -68,7 +68,7 @@ func (self *Indexer) RebuildIndex( } logger.Debug("Indexing service search index loaded %v items in %v", - count, time.Now().Sub(now)) + count, time.Since(now)) // Merge the new index quickly and mark ourselves as ready. // Hold a lock on the index while we rebuild it. diff --git a/services/inventory/dummy.go b/services/inventory/dummy.go index 4089c9e31..26c94f48a 100644 --- a/services/inventory/dummy.go +++ b/services/inventory/dummy.go @@ -23,7 +23,7 @@ import ( "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/utils/tempfile" + utils_tempfile "www.velocidex.com/golang/velociraptor/utils/tempfile" "www.velocidex.com/golang/velociraptor/vql/networking" ) @@ -40,7 +40,7 @@ func (self *Dummy) getTempFile( config_obj *config_proto.Config, filename, url string) (*os.File, error) { - file, err := tempfile.TempFile("tmp*" + filename + "." + filepath.Ext(url)) + file, err := utils_tempfile.TempFile("tmp*" + filename + "." + filepath.Ext(url)) if err != nil { return nil, err } diff --git a/services/inventory/inventory.go b/services/inventory/inventory.go index 2fe75eed4..3eede80fa 100644 --- a/services/inventory/inventory.go +++ b/services/inventory/inventory.go @@ -212,7 +212,7 @@ func (self *InventoryService) addAllVersions( tool *artifacts_proto.Tool, required_version string) *artifacts_proto.Tool { result := proto.Clone(tool).(*artifacts_proto.Tool) - versions, _ := self.versions[tool.Name] + versions := self.versions[tool.Name] result.Versions = nil for _, v := range versions { @@ -469,7 +469,7 @@ func (self *InventoryService) UpdateVersion(tool_request *artifacts_proto.Tool) // Update the list of versions for this tool, replacing existing // definitions. - versions, _ := self.versions[tool_request.Name] + versions := self.versions[tool_request.Name] version_known := false for idx, v := range versions { if v.Artifact == tool_request.Artifact { diff --git a/services/journal/replication.go b/services/journal/replication.go index 632a987f8..80b139b5c 100644 --- a/services/journal/replication.go +++ b/services/journal/replication.go @@ -27,7 +27,6 @@ import ( "www.velocidex.com/golang/velociraptor/result_sets" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/utils/tempfile" utils_tempfile "www.velocidex.com/golang/velociraptor/utils/tempfile" ) @@ -235,7 +234,7 @@ func (self *ReplicationService) Start( self.sender = make(chan *api_proto.PushEventRequest) self.SetRetryDuration(5 * time.Second) - self.tmpfile, err = tempfile.TempFile("replication") + self.tmpfile, err = utils_tempfile.TempFile("replication") if err != nil { return err } @@ -683,6 +682,9 @@ func (self *ReplicationService) WatchArtifact( retry: for { select { + case <-self.ctx.Done(): + return + case event, ok := <-in_chan: if !ok { break retry diff --git a/services/labels/labels_test.go b/services/labels/labels_test.go index a7362801c..31f254768 100644 --- a/services/labels/labels_test.go +++ b/services/labels/labels_test.go @@ -21,7 +21,6 @@ import ( type LabelsTestSuite struct { test_utils.TestSuite client_id string - flow_id string closer func() } diff --git a/services/launcher/delete.go b/services/launcher/delete.go index cef712294..ef2f35f61 100644 --- a/services/launcher/delete.go +++ b/services/launcher/delete.go @@ -18,7 +18,6 @@ import ( "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/paths" "www.velocidex.com/golang/velociraptor/paths/artifact_modes" - "www.velocidex.com/golang/velociraptor/paths/artifacts" artifact_paths "www.velocidex.com/golang/velociraptor/paths/artifacts" "www.velocidex.com/golang/velociraptor/result_sets" "www.velocidex.com/golang/velociraptor/services" @@ -360,7 +359,7 @@ func (self *Launcher) DeleteEvents( options services.DeleteFlowOptions) ( []*services.DeleteFlowResponse, error) { - mode, err := artifacts.GetArtifactMode(ctx, config_obj, artifact) + mode, err := artifact_paths.GetArtifactMode(ctx, config_obj, artifact) if err != nil { return nil, err } @@ -368,7 +367,7 @@ func (self *Launcher) DeleteEvents( return nil, fmt.Errorf("Artifact %v is not an event artifact", artifact) } - path_manager := artifacts.NewArtifactPathManagerWithMode( + path_manager := artifact_paths.NewArtifactPathManagerWithMode( config_obj, client_id, "", artifact, mode) file_store_factory := file_store.GetFileStore(config_obj) @@ -404,7 +403,7 @@ func (self *Launcher) DeleteEvents( } } - log_path_manager, err := artifacts.NewArtifactLogPathManager(ctx, + log_path_manager, err := artifact_paths.NewArtifactLogPathManager(ctx, config_obj, client_id, "", artifact) if err != nil { return nil, err diff --git a/services/launcher/launcher_test.go b/services/launcher/launcher_test.go index 94c29a404..c0cabdfbf 100644 --- a/services/launcher/launcher_test.go +++ b/services/launcher/launcher_test.go @@ -120,14 +120,14 @@ func (self *LauncherTestSuite) TestCompilingWithTools() { launcher, err := services.GetLauncher(self.ConfigObj) assert.NoError(self.T(), err) - compiled, err := launcher.CompileCollectorArgs(ctx, self.ConfigObj, + _, err = launcher.CompileCollectorArgs(ctx, self.ConfigObj, acl_manager, repository, services.CompilerOptions{}, request) assert.Error(self.T(), err) // Now make the tool download succeed. Compiling should work // and we should calculate the hash. status = 200 - compiled, err = launcher.CompileCollectorArgs( + _, err = launcher.CompileCollectorArgs( ctx, self.ConfigObj, acl_manager, repository, services.CompilerOptions{}, request) assert.NoError(self.T(), err) @@ -136,7 +136,7 @@ func (self *LauncherTestSuite) TestCompilingWithTools() { // downloading the file ourselves - further compiles will work // automatically. status = 404 - compiled, err = launcher.CompileCollectorArgs( + compiled, err := launcher.CompileCollectorArgs( ctx, self.ConfigObj, acl_manager, repository, services.CompilerOptions{}, request) assert.NoError(self.T(), err) @@ -667,7 +667,7 @@ sources: launcher, err := services.GetLauncher(self.ConfigObj) assert.NoError(self.T(), err) - compiled, err := launcher.CompileCollectorArgs( + _, err = launcher.CompileCollectorArgs( ctx, self.ConfigObj, acl_manager, repository, services.CompilerOptions{}, request) assert.Error(self.T(), err) @@ -680,7 +680,7 @@ sources: // Should be fine now. acl_manager = acl_managers.NewServerACLManager(self.ConfigObj, "UserX") - compiled, err = launcher.CompileCollectorArgs( + compiled, err := launcher.CompileCollectorArgs( ctx, self.ConfigObj, acl_manager, repository, services.CompilerOptions{}, request) assert.NoError(self.T(), err) @@ -712,7 +712,7 @@ sources: launcher, err := services.GetLauncher(self.ConfigObj) assert.NoError(self.T(), err) - compiled, err := launcher.CompileCollectorArgs( + _, err = launcher.CompileCollectorArgs( self.Ctx, self.ConfigObj, acl_manager, repository, services.CompilerOptions{}, request) assert.Error(self.T(), err) @@ -725,7 +725,7 @@ sources: // Try again - this is not enough though because the artifact is // not marked as "basic" - compiled, err = launcher.CompileCollectorArgs( + _, err = launcher.CompileCollectorArgs( self.Ctx, self.ConfigObj, acl_manager, repository, services.CompilerOptions{}, request) assert.Error(self.T(), err) @@ -744,7 +744,7 @@ sources: // Should be fine now. acl_manager = acl_managers.NewServerACLManager(self.ConfigObj, "UserX") - compiled, err = launcher.CompileCollectorArgs( + compiled, err := launcher.CompileCollectorArgs( self.Ctx, self.ConfigObj, acl_manager, repository, services.CompilerOptions{}, request) assert.NoError(self.T(), err) diff --git a/services/launcher/storage.go b/services/launcher/storage.go index 51258f9c2..f99dd96dd 100644 --- a/services/launcher/storage.go +++ b/services/launcher/storage.go @@ -283,7 +283,7 @@ func (self *FlowStorageManager) LoadCollectionContext( func(client_info *services.ClientInfo) (*services.ClientInfo, error) { if client_info != nil && client_info.InFlightFlows != nil { - in_flight_time, _ = client_info.InFlightFlows[flow_id] + in_flight_time = client_info.InFlightFlows[flow_id] } return nil, nil }) diff --git a/services/launcher/verifier.go b/services/launcher/verifier.go index 99382beeb..9b8ba68a2 100644 --- a/services/launcher/verifier.go +++ b/services/launcher/verifier.go @@ -19,9 +19,6 @@ import ( var ( api_description = &ApiDescription{} - error_messages = map[string]string{ - "E001": "", - } ) type Suppression struct { diff --git a/services/notebook/acls_test.go b/services/notebook/acls_test.go index 2fa6550af..ade97344f 100644 --- a/services/notebook/acls_test.go +++ b/services/notebook/acls_test.go @@ -89,7 +89,7 @@ func (self *ACLTestSuite) TestNotebookPublicACL() { all_rows = test_utils.FileReadRows( self.T(), self.ConfigObj, index_filename) - return 1 == len(all_rows) + return len(all_rows) == 1 }) assert.Equal(self.T(), new_notebook.NotebookId, diff --git a/services/notebook/initial.go b/services/notebook/initial.go index 9fb3eb8c9..4dce10c57 100644 --- a/services/notebook/initial.go +++ b/services/notebook/initial.go @@ -270,9 +270,7 @@ func CalculateNotebookArtifact( } // Copy out column types - for _, ct := range artifact.ColumnTypes { - res.ColumnTypes = append(res.ColumnTypes, ct) - } + res.ColumnTypes = append(res.ColumnTypes, artifact.ColumnTypes...) // Copy out all the parameters for _, p := range artifact.Parameters { diff --git a/services/repository/filestore.go b/services/repository/filestore.go index 343a5a21b..19028aa6c 100644 --- a/services/repository/filestore.go +++ b/services/repository/filestore.go @@ -93,7 +93,7 @@ func InitializeGlobalRepositoryFromFilestore( } logger.Info("Loaded %d custom artifacts in %v", - atomic.AddUint64(&count, 0), time.Now().Sub(start)) + atomic.AddUint64(&count, 0), time.Since(start)) return global_repository, nil } diff --git a/services/repository/fixtures/TestReformat.golden b/services/repository/fixtures/TestReformat.golden index d6df84839..718bbc5fb 100644 --- a/services/repository/fixtures/TestReformat.golden +++ b/services/repository/fixtures/TestReformat.golden @@ -73,5 +73,18 @@ " - name: A", " type: string", "" + ], + "negative slice": [ + "", + "name: Negative Slice", + "sources:", + "- query: |", + " LET X \u003c= 1", + " ", + " LET Y \u003c= (1, 2, 3, 4)", + " ", + " SELECT Y[-X:]", + " FROM scope()", + "" ] } \ No newline at end of file diff --git a/services/repository/plugin.go b/services/repository/plugin.go index 4b8cd235f..742d8ff15 100644 --- a/services/repository/plugin.go +++ b/services/repository/plugin.go @@ -69,7 +69,7 @@ func (self *ArtifactRepositoryPlugin) Call( artifact_name := strings.Join(self.prefix, ".") - mock_call_count, _ := self.mock_call_count[artifact_name] + mock_call_count := self.mock_call_count[artifact_name] // Support mocking the artifacts mocks, pres := self.mocks[artifact_name] @@ -406,9 +406,7 @@ func (self _ArtifactRepositoryPluginAssociativeProtocol) Associative( } prefix := make([]string, 0, len(value.prefix)+1) - for _, i := range value.prefix { - prefix = append(prefix, i) - } + prefix = append(prefix, value.prefix...) return &ArtifactRepositoryPlugin{ prefix: append(prefix, key), diff --git a/services/repository/plugin_test.go b/services/repository/plugin_test.go index d6cf6c5bf..188b950c2 100644 --- a/services/repository/plugin_test.go +++ b/services/repository/plugin_test.go @@ -110,26 +110,6 @@ func (self *PluginTestSuite) TestArtifactsSyntax() { } } -var ( - artifact_definitions = []string{` -name: Test1 -sources: -- query: SELECT * FROM Artifact.Test1.Foobar() -`, ` -name: Test1.Foobar -sources: -- query: SELECT * FROM info() -`, ` -name: Category.Test1 -sources: -- query: SELECT * FROM Artifact.Test1.Foobar() -`, ` -name: Category.Test2 -sources: -- query: SELECT * FROM info() -`} -) - var ( artifact_definitions_precondition = []string{` name: CallArtifactWithFalsePrecondition diff --git a/services/repository/reformat.go b/services/repository/reformat.go index eb1198b4b..2c4d47ca1 100644 --- a/services/repository/reformat.go +++ b/services/repository/reformat.go @@ -73,10 +73,7 @@ func reformatNode(vql_node yaml.NodeContext) (m mutation, err error) { reformatted = strings.TrimSpace(reformatted) - lines := []string{} - for _, l := range strings.Split(reformatted, "\n") { - lines = append(lines, l) - } + lines := append([]string{}, strings.Split(reformatted, "\n")...) // Indent this block to the start of the previous block indented := []string{} diff --git a/services/repository/reformat_test.go b/services/repository/reformat_test.go index 857b77171..6457e657d 100644 --- a/services/repository/reformat_test.go +++ b/services/repository/reformat_test.go @@ -10,8 +10,8 @@ import ( ) type reformatCases_t struct { - name string - in, out string + name string + in string } var reformatCases = []reformatCases_t{ @@ -71,6 +71,16 @@ sources: column_types: - name: A type: string +`}, { + name: "negative slice", + in: ` +name: Negative Slice +sources: +- query: | + LET X <= 1 + LET Y <= (1, 2, 3, 4) + SELECT Y[-X:] + FROM scope() `}, } @@ -89,6 +99,8 @@ func TestReformatMultiple(t *testing.T) { golden := ordereddict.NewDict() for _, c := range reformatCases { first, err := reformatVQL(c.in) + assert.NoError(t, err) + second, err := reformatVQL(first) assert.NoError(t, err) golden.Set(c.name, strings.Split(second, "\n")) diff --git a/services/repository/repository_test.go b/services/repository/repository_test.go index ef640ee15..b6cc4a221 100644 --- a/services/repository/repository_test.go +++ b/services/repository/repository_test.go @@ -56,6 +56,7 @@ func TestLoadingFromFilestore(t *testing.T) { } err = orgs.StartTestOrgManager(ctx, wg, config_obj, nil) + assert.NoError(t, err) manager, err := services.GetRepositoryManager(config_obj) assert.NoError(t, err) @@ -86,6 +87,7 @@ func TestOverrideBuiltInArtifacts(t *testing.T) { } err = orgs.StartTestOrgManager(ctx, wg, config_obj, nil) + assert.NoError(t, err) manager, err := services.GetRepositoryManager(config_obj) assert.NoError(t, err) @@ -101,7 +103,7 @@ func TestOverrideBuiltInArtifacts(t *testing.T) { }) assert.NoError(t, err) - artifact, pres := repository.Get(ctx, config_obj, "Custom.BuiltIn") + _, pres := repository.Get(ctx, config_obj, "Custom.BuiltIn") assert.True(t, pres) // Now try to override it - not a built in should fail @@ -122,7 +124,7 @@ description: Override }) assert.NoError(t, err) - artifact, pres = repository.Get(ctx, config_obj, "Custom.BuiltIn") + artifact, pres := repository.Get(ctx, config_obj, "Custom.BuiltIn") assert.True(t, pres) assert.Equal(t, artifact.Name, "Custom.BuiltIn") @@ -147,6 +149,8 @@ func TestArtifactMetadata(t *testing.T) { } err = orgs.StartTestOrgManager(ctx, wg, config_obj, nil) + assert.NoError(t, err) + manager, err := services.GetRepositoryManager(config_obj) assert.NoError(t, err) diff --git a/services/sanity/certs.go b/services/sanity/certs.go index 1f461c93d..e65470008 100644 --- a/services/sanity/certs.go +++ b/services/sanity/certs.go @@ -46,7 +46,7 @@ func (self *SanityChecks) CheckCertificates( logger.Error("%v", msg1) if config_obj.CA != nil && config_obj.CA.PrivateKey != "" { - msg2 := fmt.Sprintf("Found CA private key in config, I will automatically rotate keys, but you should consider updating the config file using `velociraptor config rotate_keys`") + msg2 := "Found CA private key in config, I will automatically rotate keys, but you should consider updating the config file using `velociraptor config rotate_keys`" logger.Info("%s", msg2) frontend_cert, err := crypto.GenerateServerCert( diff --git a/services/sanity/sanity_test.go b/services/sanity/sanity_test.go index 049993e50..1da85ab8b 100644 --- a/services/sanity/sanity_test.go +++ b/services/sanity/sanity_test.go @@ -28,8 +28,6 @@ import ( type ServicesTestSuite struct { test_utils.TestSuite - client_id string - flow_id string } func (self *ServicesTestSuite) SetupTest() { @@ -89,6 +87,8 @@ func (self *ServicesTestSuite) TestUpgradeTools() { // Admin forces Tool1 to non-default inventory_service, err := services.GetInventory(self.ConfigObj) + assert.NoError(self.T(), err) + inventory_service.(*inventory.InventoryService).ClearForTests() tool_definition := &artifacts_proto.Tool{ diff --git a/services/sanity/security.go b/services/sanity/security.go index 85ebaffeb..fff6e1556 100644 --- a/services/sanity/security.go +++ b/services/sanity/security.go @@ -95,9 +95,8 @@ func (self *SanityChecks) CheckSecuritySettings( file_store.SetPrefixes(allowed_tree, denied_tree) // Populate any additional environ vars that need to be shadowed. - for _, s := range config_obj.Security.ShadowedEnvVars { - common.ShadowedEnv = append(common.ShadowedEnv, s) - } + common.ShadowedEnv = append(common.ShadowedEnv, + config_obj.Security.ShadowedEnvVars...) return nil } diff --git a/services/scheduler/minion_test.go b/services/scheduler/minion_test.go index d9a7c266c..0759bd634 100644 --- a/services/scheduler/minion_test.go +++ b/services/scheduler/minion_test.go @@ -175,7 +175,7 @@ func (self *MinionSchedulerTestSuite) TestNotebookMinionScheduler() { wg.Wait() // Check the cell contents - cell, err = notebook_manager.GetNotebookCell( + _, err = notebook_manager.GetNotebookCell( self.Ctx, notebook.NotebookId, cell_id, cell.CurrentVersion) assert.NoError(self.T(), err) diff --git a/services/scheduler/scheduler.go b/services/scheduler/scheduler.go index 4687c5eef..900a8ae9d 100644 --- a/services/scheduler/scheduler.go +++ b/services/scheduler/scheduler.go @@ -95,7 +95,7 @@ func (self *Scheduler) RegisterWorker( self.mu.Lock() defer self.mu.Unlock() - queues, _ := self.queues[queue] + queues := self.queues[queue] new_queue := make([]*Worker, 0, len(queues)) for _, q := range queues { if q.id != worker.id { @@ -106,7 +106,7 @@ func (self *Scheduler) RegisterWorker( }() self.mu.Lock() - queues, _ := self.queues[queue] + queues := self.queues[queue] queues = append(queues, worker) self.queues[queue] = queues self.mu.Unlock() @@ -183,7 +183,7 @@ func (self *Scheduler) Schedule(ctx context.Context, self.mu.Lock() // Find a ready worker - workers, _ := self.queues[job.Queue] + workers := self.queues[job.Queue] for _, w := range workers { if !w.IsBusy() { available_workers = append(available_workers, w) diff --git a/services/scheduler/scheduler_test.go b/services/scheduler/scheduler_test.go index 3708533b6..98a10a227 100644 --- a/services/scheduler/scheduler_test.go +++ b/services/scheduler/scheduler_test.go @@ -56,7 +56,7 @@ func (self *SchedulerTestSuite) TestScheduler() { result := <-res_chan assert.NoError(self.T(), result.Err) - assert.Contains(self.T(), string(received_jobs.Bytes()), "Hello world") + assert.Contains(self.T(), received_jobs.String(), "Hello world") // The schedule had now exited so we can not schedule any more _, err = scheduler.Schedule(self.Ctx, services.SchedulerJob{ diff --git a/services/secrets/secrets_test.go b/services/secrets/secrets_test.go index cb609641f..803437f85 100644 --- a/services/secrets/secrets_test.go +++ b/services/secrets/secrets_test.go @@ -87,7 +87,7 @@ func (self *SecretsTestSuite) TestSecretsService() { "config/secrets/"+constants.SSH_PRIVATE_KEY+"/MySecret")) // User2 asks for the secret again - this time denied - secret_data, err = secrets.GetSecret( + _, err = secrets.GetSecret( self.Ctx, "User2", constants.SSH_PRIVATE_KEY, "MySecret") assert.Error(self.T(), err) assert.Contains(self.T(), err.Error(), `Permission Denied`) diff --git a/services/server_artifacts/collection_context.go b/services/server_artifacts/collection_context.go index 89a286532..bc125ce16 100644 --- a/services/server_artifacts/collection_context.go +++ b/services/server_artifacts/collection_context.go @@ -478,7 +478,7 @@ func (self *contextManager) RunQuery( if query.Name == "" { // Drain the query but do not relay any data back. These // are normally LET queries. - for _ = range vql.Eval(sub_ctx, scope) { + for range vql.Eval(sub_ctx, scope) { } query_log.Close() continue diff --git a/services/server_artifacts/server_artifacts_test.go b/services/server_artifacts/server_artifacts_test.go index 620056727..8cc3d5609 100644 --- a/services/server_artifacts/server_artifacts_test.go +++ b/services/server_artifacts/server_artifacts_test.go @@ -486,7 +486,7 @@ sources: assert.NoError(self.T(), err) // Can not launch collection. - details, err = self.ScheduleAndWait("Test", "gumby", "F.1234", nil) + _, err = self.ScheduleAndWait("Test", "gumby", "F.1234", nil) assert.Error(self.T(), err) assert.Contains(self.T(), err.Error(), "COLLECT_SERVER") diff --git a/services/users/delete_test.go b/services/users/delete_test.go index 5eeeb1c71..475341884 100644 --- a/services/users/delete_test.go +++ b/services/users/delete_test.go @@ -31,7 +31,7 @@ func (self *UserManagerTestSuite) TestDeleteUser() { assert.NoError(self.T(), err) // Yes user is gone. - user_record, err = users_manager.GetUser(self.Ctx, "OrgAdmin", "UserO1") + _, err = users_manager.GetUser(self.Ctx, "OrgAdmin", "UserO1") assert.ErrorContains(self.T(), err, "User not found") // UserO2 belongs in both O1 and O2 @@ -66,7 +66,7 @@ func (self *UserManagerTestSuite) TestDeleteUser() { // GetUser returns PermissionDenied if the user requesting does // not have OrgAdmin and does not belong to any of the same orgs - user_record, err = users_manager.GetUser(self.Ctx, "AdminO2", "UserO2") + _, err = users_manager.GetUser(self.Ctx, "AdminO2", "UserO2") assert.ErrorContains(self.T(), err, "PermissionDenied") golden.Set("AdminO2 UserO2 removed from O2", err.Error()) diff --git a/services/users/get_test.go b/services/users/get_test.go index 691733417..9bdcd0953 100644 --- a/services/users/get_test.go +++ b/services/users/get_test.go @@ -27,7 +27,7 @@ func (self *UserManagerTestSuite) TestGetUsers() { golden.Set("UserO1 GetUser AdminO1", user_record) // Can they get a different user in another org? Nope. - user_record, err = users_manager.GetUser(self.Ctx, "UserO1", "UserO2") + _, err = users_manager.GetUser(self.Ctx, "UserO1", "UserO2") assert.Error(self.T(), err, "PermissionDenied") // An admin can get any user in their org - full record @@ -36,11 +36,11 @@ func (self *UserManagerTestSuite) TestGetUsers() { golden.Set("AdminO1 GetUser UserO1", user_record) // But an admin in one org can not see users in another org - user_record, err = users_manager.GetUser(self.Ctx, "AdminO1", "AdminO2") + _, err = users_manager.GetUser(self.Ctx, "AdminO1", "AdminO2") assert.Error(self.T(), err, "PermissionDenied") // Getting an invalid user gives PermissionDenied - user_record, err = users_manager.GetUser(self.Ctx, "AdminO1", "InvalidUsername") + _, err = users_manager.GetUser(self.Ctx, "AdminO1", "InvalidUsername") assert.Error(self.T(), err, "PermissionDenied") // An org admin can see all users diff --git a/services/users/storage.go b/services/users/storage.go index bcdd3cf24..90f838d7e 100644 --- a/services/users/storage.go +++ b/services/users/storage.go @@ -375,7 +375,7 @@ func (self *UserStorageManager) loadUserRecrodIntoCache( file_store_factory := file_store.GetFileStore(self.config_obj) reader, err := result_sets.NewResultSetReader(file_store_factory, path_manager.Notifications()) - if err == nil { + if err == nil && reader.TotalRows() > 0 { options.Messages = reader.TotalRows() } diff --git a/services/users/users.go b/services/users/users.go index 547038b80..7fc48f3fd 100644 --- a/services/users/users.go +++ b/services/users/users.go @@ -88,7 +88,7 @@ const ( ) var ( - validUsernameRegEx = regexp.MustCompile("^[a-zA-Z0-9@.\\-_#+]+$") + validUsernameRegEx = regexp.MustCompile(`^[a-zA-Z0-9@.\-_#+]+$`) ) type UserManager struct { diff --git a/services/users/users_test.go b/services/users/users_test.go index f9c2e1426..c73b59fcc 100644 --- a/services/users/users_test.go +++ b/services/users/users_test.go @@ -1,7 +1,6 @@ package users_test import ( - "strings" "testing" "github.com/Velocidex/ordereddict" @@ -88,7 +87,7 @@ func (self *UserManagerTestSuite) TestMakeUsers() { assert.NoError(self.T(), err) golden.Set("AdminO1 UserO1", user_record) - user_record, err = users_manager.GetUser(self.Ctx, "AdminO2", "UserO1") + _, err = users_manager.GetUser(self.Ctx, "AdminO2", "UserO1") assert.ErrorContains(self.T(), err, "PermissionDenied") golden.Set("AdminO2 UserO1", err.Error()) @@ -100,7 +99,7 @@ func (self *UserManagerTestSuite) TestMakeUsers() { assert.NoError(self.T(), err) golden.Set("AdminO2 UserO2", user_record) - user_record, err = users_manager.GetUser(self.Ctx, "AdminO1", "UserO2") + _, err = users_manager.GetUser(self.Ctx, "AdminO1", "UserO2") assert.ErrorContains(self.T(), err, "PermissionDenied") golden.Set("AdminO1 UserO2", err.Error()) @@ -112,16 +111,6 @@ func (self *UserManagerTestSuite) TestMakeUsers() { goldie.Assert(self.T(), "TestMakeUsers", json.MustMarshalIndent(golden)) } -func filterUser(users []*api_proto.VelociraptorUser, username string) ( - res []*api_proto.VelociraptorUser) { - for _, i := range users { - if strings.EqualFold(i.Name, username) { - res = append(res, i) - } - } - return res -} - func TestUserManger(t *testing.T) { orgs.NonceForTest = "Nonce" diff --git a/services/vfs_service/utils.go b/services/vfs_service/utils.go index f1dde8e1c..482d1c6d3 100644 --- a/services/vfs_service/utils.go +++ b/services/vfs_service/utils.go @@ -8,7 +8,6 @@ import ( "github.com/Velocidex/ordereddict" config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/constants" - "www.velocidex.com/golang/velociraptor/flows/proto" flows_proto "www.velocidex.com/golang/velociraptor/flows/proto" "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/paths/artifacts" @@ -29,7 +28,7 @@ func watchForFlowCompletion( handler func(ctx context.Context, config_obj *config_proto.Config, scope vfilter.Scope, row *ordereddict.Dict, - flow *proto.ArtifactCollectorContext)) error { + flow *flows_proto.ArtifactCollectorContext)) error { journal, err := services.GetJournal(config_obj) if err != nil { diff --git a/services/vfs_service/vfs_service_test.go b/services/vfs_service/vfs_service_test.go index 027d1edfa..81aac6e1d 100644 --- a/services/vfs_service/vfs_service_test.go +++ b/services/vfs_service/vfs_service_test.go @@ -488,8 +488,8 @@ func (self *VFSServiceTestSuite) TestVFSDownload() { value, pres := file_store.Data.GetString( "/clients/C.12312/vfs_files/file/a/b.json") return pres && - `{"name":"B","size":10,"mtime":1000000000,"components":["clients","C.12312","collections","F.1232","uploads","file","a","b","B"],"flow_id":"F.1232"} -` == value + value == `{"name":"B","size":10,"mtime":1000000000,"components":["clients","C.12312","collections","F.1232","uploads","file","a","b","B"],"flow_id":"F.1232"} +` }) } diff --git a/services/writeback/storage.go b/services/writeback/storage.go index d19bc34e4..501a7f52c 100644 --- a/services/writeback/storage.go +++ b/services/writeback/storage.go @@ -154,7 +154,7 @@ func WritebackLocation( } var ( - org_id_regex = regexp.MustCompile("\\$NONCE|%NONCE%") + org_id_regex = regexp.MustCompile(`\$NONCE|%NONCE%`) ) func expandOrgId(path, nonce string) string { diff --git a/startup/client.go b/startup/client.go index e9b4e1e02..7b790ae5a 100644 --- a/startup/client.go +++ b/startup/client.go @@ -52,30 +52,35 @@ func StartClientServices( // Start encrypted logs service if possible err = encrypted_logs.StartEncryptedLog(sm.Ctx, sm.Wg, sm.Config) if err != nil { - return sm, err + sm.Close() + return nil, err } err = networking.MaybeInstallDNSCache(sm.Ctx, sm.Wg, sm.Config) if err != nil { - return sm, err + sm.Close() + return nil, err } // Start the nanny first so we are covered from here on. err = sm.Start(executor.StartNannyService) if err != nil { - return sm, err + sm.Close() + return nil, err } // Start throttling service err = sm.Start(throttler.StartStatsCollectorService) if err != nil { - return sm, err + sm.Close() + return nil, err } _, err = orgs.NewOrgManager(sm.Ctx, sm.Wg, sm.Config) if err != nil { - return sm, err + sm.Close() + return nil, err } - return sm, err + return sm, nil } diff --git a/startup/frontend.go b/startup/frontend.go index 26a61d256..04985af11 100644 --- a/startup/frontend.go +++ b/startup/frontend.go @@ -28,13 +28,15 @@ func StartFrontendServices( // Potentially restrict server functionality. err := MaybeEnforceAllowLists(config_obj) if err != nil { - return sm, err + sm.Close() + return nil, err } // Start throttling service err = sm.Start(throttler.StartStatsCollectorService) if err != nil { - return sm, err + sm.Close() + return nil, err } scope := vql_subsystem.MakeScope() @@ -46,27 +48,37 @@ func StartFrontendServices( _, err = orgs.NewOrgManager(sm.Ctx, sm.Wg, config_obj) if err != nil { - return sm, err + sm.Close() + return nil, err } // Start the listening server server_builder, err := api.NewServerBuilder(sm.Ctx, config_obj, sm.Wg) if err != nil { - return sm, err + sm.Close() + return nil, err } err = networking.MaybeInstallDNSCache(sm.Ctx, sm.Wg, sm.Config) if err != nil { - return sm, err + sm.Close() + return nil, err } // Start the gRPC API server on the master only. if services.IsMaster(config_obj) { err = server_builder.WithAPIServer(sm.Ctx, sm.Wg) if err != nil { - return sm, err + sm.Close() + return nil, err } } - return sm, server_builder.StartServer(sm.Ctx, sm.Wg) + err = server_builder.StartServer(sm.Ctx, sm.Wg) + if err != nil { + sm.Close() + return nil, err + } + + return sm, nil } diff --git a/startup/tool.go b/startup/tool.go index a6a9fb411..553975511 100644 --- a/startup/tool.go +++ b/startup/tool.go @@ -27,18 +27,21 @@ func StartToolServices( err := MaybeEnforceAllowLists(config_obj) if err != nil { - return sm, err + sm.Close() + return nil, err } // Start throttling service err = sm.Start(throttler.StartStatsCollectorService) if err != nil { - return sm, err + sm.Close() + return nil, err } _, err = orgs.NewOrgManager(sm.Ctx, sm.Wg, config_obj) if err != nil { - return sm, err + sm.Close() + return nil, err } return sm, nil diff --git a/staticcheck.conf b/staticcheck.conf index f8689f0ac..9c6aed683 100644 --- a/staticcheck.conf +++ b/staticcheck.conf @@ -3,10 +3,25 @@ checks = ["all", "-ST1005", # receiver name should be a reflection of its identity "-ST1006", + # should not use underscores in Go names "-ST1003", # at least one file in a package should have a package comment "-ST1000", # the surrounding loop is unconditionally terminated "-SA4004", + + # Dont tell me how to write comments. + # The documentation of an exported function should start with the function’s name + "-ST1020", + # The documentation of an exported type should start with type’s name + "-ST1021", + # comment on exported const .. should be of the form + "-ST1022", + + # Poorly chosen name for error variable + "-ST1012", + + # Using a deprecated function, variable, constant or field + "-SA1019", ] \ No newline at end of file diff --git a/third_party/zip/reader.go b/third_party/zip/reader.go index 73a3159f5..86e3b768f 100755 --- a/third_party/zip/reader.go +++ b/third_party/zip/reader.go @@ -188,7 +188,7 @@ func (f *File) Open() (io.ReadCloser, error) { if dcomp == nil { return nil, ErrAlgorithm } - var rc io.ReadCloser = dcomp(r) + var rc = dcomp(r) if f.isAE2() { return rc, nil } diff --git a/third_party/zip/writer_test.go b/third_party/zip/writer_test.go index 743812c2d..e86d0c667 100755 --- a/third_party/zip/writer_test.go +++ b/third_party/zip/writer_test.go @@ -349,7 +349,7 @@ func TestWriterDirAttributes(t *testing.T) { } binary.LittleEndian.PutUint32(sig[:], uint32(dataDescriptorSignature)) - if bytes.Index(b, sig[:]) != -1 { + if bytes.Contains(b, sig[:]) { t.Error("there should be no data descriptor") } } diff --git a/third_party/zip/zipcrypto.go b/third_party/zip/zipcrypto.go index 7dd1af830..12310e354 100755 --- a/third_party/zip/zipcrypto.go +++ b/third_party/zip/zipcrypto.go @@ -35,7 +35,7 @@ func (z *ZipCrypto) updateKeys(byteValue byte) { } func (z *ZipCrypto) magicByte() byte { - var t uint32 = z.Keys[2] | 2 + var t = z.Keys[2] | 2 return byte((t * (t ^ 1)) >> 8) } diff --git a/timelines/proto/timelines.pb.go b/timelines/proto/timelines.pb.go index 93c29c141..484cd90d5 100644 --- a/timelines/proto/timelines.pb.go +++ b/timelines/proto/timelines.pb.go @@ -8,6 +8,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -21,12 +22,9 @@ const ( // to storage as a ResultSet with some mandated columns and the rest // being free form. type Timeline struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StartTime int64 `protobuf:"varint,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` - EndTime int64 `protobuf:"varint,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + StartTime int64 `protobuf:"varint,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + EndTime int64 `protobuf:"varint,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // The name of the timeline. Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"` // The name of the timestamp column. If not specified it is _ts @@ -40,17 +38,17 @@ type Timeline struct { TimestampDescriptionColumn string `protobuf:"bytes,7,opt,name=timestamp_description_column,json=timestampDescriptionColumn,proto3" json:"timestamp_description_column,omitempty"` // When we return from GetTable() indicates if the timeline is // active. - Active bool `protobuf:"varint,8,opt,name=active,proto3" json:"active,omitempty"` - Version string `protobuf:"bytes,9,opt,name=version,proto3" json:"version,omitempty"` + Active bool `protobuf:"varint,8,opt,name=active,proto3" json:"active,omitempty"` + Version string `protobuf:"bytes,9,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Timeline) Reset() { *x = Timeline{} - if protoimpl.UnsafeEnabled { - mi := &file_timelines_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_timelines_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Timeline) String() string { @@ -61,7 +59,7 @@ func (*Timeline) ProtoMessage() {} func (x *Timeline) ProtoReflect() protoreflect.Message { mi := &file_timelines_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -134,23 +132,20 @@ func (x *Timeline) GetVersion() string { // A SuperTimeline is a collection of individual timelines. type SuperTimeline struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the super timeline. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // A list of timelines contained in the super timeline. - Timelines []*Timeline `protobuf:"bytes,2,rep,name=timelines,proto3" json:"timelines,omitempty"` + Timelines []*Timeline `protobuf:"bytes,2,rep,name=timelines,proto3" json:"timelines,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SuperTimeline) Reset() { *x = SuperTimeline{} - if protoimpl.UnsafeEnabled { - mi := &file_timelines_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_timelines_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SuperTimeline) String() string { @@ -161,7 +156,7 @@ func (*SuperTimeline) ProtoMessage() {} func (x *SuperTimeline) ProtoReflect() protoreflect.Message { mi := &file_timelines_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -192,52 +187,37 @@ func (x *SuperTimeline) GetTimelines() []*Timeline { var File_timelines_proto protoreflect.FileDescriptor -var file_timelines_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9a, 0x02, 0x0a, 0x08, 0x54, 0x69, 0x6d, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x29, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x12, 0x40, 0x0a, 0x1c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x0a, 0x0d, 0x53, 0x75, 0x70, 0x65, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x42, 0x37, 0x5a, 0x35, 0x77, 0x77, 0x77, - 0x2e, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x64, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, - 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x72, 0x61, 0x70, 0x74, - 0x6f, 0x72, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_timelines_proto_rawDesc = "" + + "\n" + + "\x0ftimelines.proto\x12\x05proto\"\x9a\x02\n" + + "\bTimeline\x12\x1d\n" + + "\n" + + "start_time\x18\x01 \x01(\x03R\tstartTime\x12\x19\n" + + "\bend_time\x18\x02 \x01(\x03R\aendTime\x12\x0e\n" + + "\x02id\x18\x04 \x01(\tR\x02id\x12)\n" + + "\x10timestamp_column\x18\x05 \x01(\tR\x0ftimestampColumn\x12%\n" + + "\x0emessage_column\x18\x06 \x01(\tR\rmessageColumn\x12@\n" + + "\x1ctimestamp_description_column\x18\a \x01(\tR\x1atimestampDescriptionColumn\x12\x16\n" + + "\x06active\x18\b \x01(\bR\x06active\x12\x18\n" + + "\aversion\x18\t \x01(\tR\aversion\"R\n" + + "\rSuperTimeline\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12-\n" + + "\ttimelines\x18\x02 \x03(\v2\x0f.proto.TimelineR\ttimelinesB7Z5www.velocidex.com/golang/velociraptor/timelines/protob\x06proto3" var ( file_timelines_proto_rawDescOnce sync.Once - file_timelines_proto_rawDescData = file_timelines_proto_rawDesc + file_timelines_proto_rawDescData []byte ) func file_timelines_proto_rawDescGZIP() []byte { file_timelines_proto_rawDescOnce.Do(func() { - file_timelines_proto_rawDescData = protoimpl.X.CompressGZIP(file_timelines_proto_rawDescData) + file_timelines_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_timelines_proto_rawDesc), len(file_timelines_proto_rawDesc))) }) return file_timelines_proto_rawDescData } var file_timelines_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_timelines_proto_goTypes = []interface{}{ +var file_timelines_proto_goTypes = []any{ (*Timeline)(nil), // 0: proto.Timeline (*SuperTimeline)(nil), // 1: proto.SuperTimeline } @@ -255,37 +235,11 @@ func file_timelines_proto_init() { if File_timelines_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_timelines_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Timeline); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_timelines_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SuperTimeline); 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_timelines_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_timelines_proto_rawDesc), len(file_timelines_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, @@ -296,7 +250,6 @@ func file_timelines_proto_init() { MessageInfos: file_timelines_proto_msgTypes, }.Build() File_timelines_proto = out.File - file_timelines_proto_rawDesc = nil file_timelines_proto_goTypes = nil file_timelines_proto_depIdxs = nil } diff --git a/timelines/writer.go b/timelines/writer.go index ee2b425cb..7da91f6e8 100644 --- a/timelines/writer.go +++ b/timelines/writer.go @@ -18,7 +18,6 @@ import ( "www.velocidex.com/golang/velociraptor/file_store" "www.velocidex.com/golang/velociraptor/file_store/api" "www.velocidex.com/golang/velociraptor/json" - vjson "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/paths" "www.velocidex.com/golang/velociraptor/result_sets" timelines_proto "www.velocidex.com/golang/velociraptor/timelines/proto" @@ -68,7 +67,7 @@ func (self *TimelineWriter) Write( self.last_time = timestamp self.mu.Unlock() - serialized, err := vjson.MarshalWithOptions(row, self.opts) + serialized, err := json.MarshalWithOptions(row, self.opts) if err != nil { return err } diff --git a/tools/mkwinsyscall.go b/tools/mkwinsyscall.go index 11f4873bc..a10651dbb 100644 --- a/tools/mkwinsyscall.go +++ b/tools/mkwinsyscall.go @@ -521,6 +521,8 @@ func (f *Fn) DLLVar() string { } // DLLFuncName returns DLL function name for function f. +// +//lint:file-ignore ST1016 - Receiver is ok func (f *Fn) DLLFuncName() string { if f.dllfuncname == "" { return f.Name diff --git a/tools/survey/survey.go b/tools/survey/survey.go index e3d78c4df..96afc51b5 100644 --- a/tools/survey/survey.go +++ b/tools/survey/survey.go @@ -8,8 +8,8 @@ import ( ) var ( - url_validator = regexp.MustCompile("^[a-z0-9.A-Z\\-]+$") - int_validator = regexp.MustCompile("^[0-9]+$") + url_validator = regexp.MustCompile(`^[a-z0-9.A-Z\-]+$`) + int_validator = regexp.MustCompile(`^[0-9]+$`) ) func validate_int(message string) func(in string) error { diff --git a/uploads/client_uploader_test.go b/uploads/client_uploader_test.go index 7cf8ba440..c1e8f4318 100644 --- a/uploads/client_uploader_test.go +++ b/uploads/client_uploader_test.go @@ -4,7 +4,6 @@ import ( "bytes" "context" "fmt" - "runtime" "testing" "time" @@ -339,7 +338,7 @@ func TestClientUploaderUploadId(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - resp := responder.TestResponderWithFlowId(nil, fmt.Sprintf("Test22")) + resp := responder.TestResponderWithFlowId(nil, "Test22") defer resp.Close() uploader := NewVelociraptorUploader(ctx, nil, 0, resp) @@ -380,7 +379,7 @@ func TestClientUploaderDeduplicateStoreAsName(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), 50*time.Second) defer cancel() - resp := responder.TestResponderWithFlowId(nil, fmt.Sprintf("Test23")) + resp := responder.TestResponderWithFlowId(nil, "Test23") defer resp.Close() uploader := NewVelociraptorUploader(ctx, nil, 0, resp) @@ -460,11 +459,3 @@ func TestClientUploaderNoIndexIfNotSparse(t *testing.T) { // No idx written when there are no sparse ranges. assert.Equal(t, CombineOutput("/foo.idx", responses), "") } - -func getOSPath(filename string) *accessors.OSPath { - if runtime.GOOS == "windows" { - return accessors.MustNewWindowsOSPath(filename) - } else { - return accessors.MustNewLinuxOSPath(filename) - } -} diff --git a/utils/errors.go b/utils/errors.go index ab38e820b..f5126bea2 100644 --- a/utils/errors.go +++ b/utils/errors.go @@ -47,8 +47,8 @@ func (self *Error) Error() string { return fmt.Sprintf(self.Format, self.Args...) } -func (e *Error) Unwrap() error { - return e.Inner +func (self *Error) Unwrap() error { + return self.Inner } func Wrap(err error, format string, args ...interface{}) error { diff --git a/utils/faults/fault_injector.go b/utils/faults/fault_injector.go index f90357909..5636970d0 100644 --- a/utils/faults/fault_injector.go +++ b/utils/faults/fault_injector.go @@ -15,7 +15,6 @@ var ( // the system during debug and test phases. type FaultInjectorService struct { blockHTTPDo time.Duration - timeStep time.Duration mockTimeRestore func() } diff --git a/utils/hunts_test.go b/utils/hunts_test.go index c53a74b06..615acc134 100644 --- a/utils/hunts_test.go +++ b/utils/hunts_test.go @@ -16,6 +16,6 @@ func TestExtractHuntId(t *testing.T) { assert.Equal(t, extracted_hunt_id, hunt_id) // Regular flow - extracted_hunt_id, ok = ExtractHuntId("F.1234") + _, ok = ExtractHuntId("F.1234") assert.True(t, !ok) } diff --git a/utils/mime.go b/utils/mime.go index 8fa6f7602..8aced2556 100644 --- a/utils/mime.go +++ b/utils/mime.go @@ -10,7 +10,7 @@ type AutoDetectMime bool // Only handle the types we usually handle in the GUI func GetMimeString(buffer []byte, detect_mime AutoDetectMime) string { if detect_mime && len(buffer) > 8 { - if 0 == bytes.Compare( + if bytes.Equal( []byte("\x89\x50\x4E\x47\x0D\x0A\x1A\x0A"), buffer[:8]) { return "image/png" } diff --git a/utils/prefix_test.go b/utils/prefix_test.go index 76eec6f71..8a194f7bf 100644 --- a/utils/prefix_test.go +++ b/utils/prefix_test.go @@ -16,10 +16,10 @@ func TestPrefix(t *testing.T) { var depth int // A shorter path is not contained. - match, depth = tree.Present([]string{"C:"}) + match, _ = tree.Present([]string{"C:"}) assert.False(t, match) - match, depth = tree.Present([]string{}) + match, _ = tree.Present([]string{}) assert.False(t, match) // Matching a deep path will return the length of the prefix @@ -34,11 +34,11 @@ func TestPrefix(t *testing.T) { assert.Equal(t, depth, 2) // A different directory than the prefixes - match, depth = tree.Present([]string{"C:", "Program Files"}) + match, _ = tree.Present([]string{"C:", "Program Files"}) assert.False(t, match) // Shorter directories do not match - match, depth = tree.Present([]string{"C:"}) + match, _ = tree.Present([]string{"C:"}) assert.False(t, match) // Exact length match diff --git a/utils/throttler.go b/utils/throttler.go index 576f19cb0..24708c77d 100644 --- a/utils/throttler.go +++ b/utils/throttler.go @@ -17,10 +17,7 @@ func (self *Throttler) Ready() bool { } func (self *Throttler) Wait() { - select { - case <-self.ticker: - return - } + <-self.ticker } func (self *Throttler) Close() { diff --git a/vql/common/env.go b/vql/common/env.go index 36f386b60..a30f9b84b 100644 --- a/vql/common/env.go +++ b/vql/common/env.go @@ -26,7 +26,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -78,10 +77,11 @@ func (self *EnvFunction) Call(ctx context.Context, func (self *EnvFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "environ", - Doc: "Get an environment variable.", - ArgType: type_map.AddType(scope, &EnvFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Name: "environ", + Doc: "Get an environment variable.", + ArgType: type_map.AddType(scope, &EnvFunctionArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), } } diff --git a/vql/common/lru.go b/vql/common/lru.go index dc146e462..8b1a36ea6 100644 --- a/vql/common/lru.go +++ b/vql/common/lru.go @@ -49,11 +49,7 @@ func (self LRUFunction) Applicable(a vfilter.Any, b vfilter.Any) bool { } _, b_ok := b.(string) - if !b_ok { - return false - } - - return true + return b_ok } func (self LRUFunction) Associative( diff --git a/vql/common/shell.go b/vql/common/shell.go index 818b9e161..8355d7f23 100644 --- a/vql/common/shell.go +++ b/vql/common/shell.go @@ -35,7 +35,6 @@ import ( "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/functions" vfilter "www.velocidex.com/golang/vfilter" @@ -392,7 +391,7 @@ func (self ShellPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vf Name: "execve", Doc: "Execute the commands given by argv.", ArgType: type_map.AddType(scope, &ShellPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.EXECVE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.EXECVE).Build(), Version: 2, } } diff --git a/vql/common/yarax.go b/vql/common/yarax.go index 13fb6815f..3e05efd25 100644 --- a/vql/common/yarax.go +++ b/vql/common/yarax.go @@ -39,7 +39,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/uploads" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/functions" vfilter "www.velocidex.com/golang/vfilter" @@ -428,7 +427,7 @@ func (self *yaraXscanReporter) scanRange( } n, err := f.Read(buf[:to_read]) - if n == 0 { + if n == 0 || err != nil { return } @@ -501,9 +500,8 @@ type yaraXscanReporter struct { ctx context.Context // Internal scan state - scope vfilter.Scope - rules *yara_x.Rules - fast_buffer_scan bool + scope vfilter.Scope + rules *yara_x.Rules } func (self *yaraXscanReporter) getMeta(rule *yara_x.Rule) *ordereddict.Dict { @@ -626,7 +624,7 @@ func (self YaraXScanPlugin) Info( ArgType: type_map.AddType(scope, &YaraXScanPluginArgs{}), // EXECVE is needed because we load the yarax DLL dynamically. - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.FILESYSTEM_READ, acls.EXECVE).Build(), Version: 2, } diff --git a/vql/darwin/xattr.go b/vql/darwin/xattr.go index 3fd4c0f2f..6de677cdd 100644 --- a/vql/darwin/xattr.go +++ b/vql/darwin/xattr.go @@ -4,6 +4,7 @@ package darwin import ( "context" + "sort" "golang.org/x/sys/unix" @@ -126,7 +127,10 @@ func List(path string) ([]string, error) { if err != nil { return nil, err } - return stripPrefix(nullTermToStrings(buf[:size])), nil + res := stripPrefix(nullTermToStrings(buf[:size])) + sort.Strings(res) + + return res, nil } // Associates data as an extended attribute of path. diff --git a/vql/debug/nanny.go b/vql/debug/nanny.go index d6b9a7a05..452b8b723 100644 --- a/vql/debug/nanny.go +++ b/vql/debug/nanny.go @@ -7,7 +7,6 @@ import ( "github.com/Velocidex/ordereddict" config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/utils/faults" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -55,7 +54,7 @@ func (self *FaultSetFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "fault", Doc: "Set faults in the fault injector.", ArgType: type_map.AddType(scope, &FaultSetFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions().Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions().Build(), } } diff --git a/vql/efi/efivariables.go b/vql/efi/efivariables.go index 9167a1666..63e984620 100644 --- a/vql/efi/efivariables.go +++ b/vql/efi/efivariables.go @@ -5,7 +5,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -68,6 +67,7 @@ func init() { Doc: "Enumerate efi variables.", Function: runEfiVariables, ArgType: &EfiVariablesArgs{}, - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), }) } diff --git a/vql/filesystem/cat.go b/vql/filesystem/cat.go index 601132a50..277832a51 100644 --- a/vql/filesystem/cat.go +++ b/vql/filesystem/cat.go @@ -11,7 +11,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -114,8 +113,9 @@ func (self CatPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfil Doc: `Read files in chunks. This is mostly useful for character devices on Linux or special files which can not be read in blocks.`, - ArgType: type_map.AddType(scope, &CatPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + ArgType: type_map.AddType(scope, &CatPluginArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/filesystem/copy.go b/vql/filesystem/copy.go index 60cd29a34..8994c2c44 100644 --- a/vql/filesystem/copy.go +++ b/vql/filesystem/copy.go @@ -30,7 +30,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/artifacts" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -177,11 +176,12 @@ func (self CopyFunction) Call(ctx context.Context, func (self CopyFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "copy", - Doc: "Copy a file.", - ArgType: type_map.AddType(scope, &CopyFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE, acls.FILESYSTEM_READ).Build(), - Version: 3, + Name: "copy", + Doc: "Copy a file.", + ArgType: type_map.AddType(scope, &CopyFunctionArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.FILESYSTEM_WRITE, acls.FILESYSTEM_READ).Build(), + Version: 3, } } diff --git a/vql/filesystem/filesystem.go b/vql/filesystem/filesystem.go index bf4daa49f..673429da8 100644 --- a/vql/filesystem/filesystem.go +++ b/vql/filesystem/filesystem.go @@ -30,7 +30,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/glob" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/psutils" "www.velocidex.com/golang/vfilter" @@ -179,11 +178,12 @@ func (self GlobPlugin) Call( func (self GlobPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: "glob", - Doc: "Retrieve files based on a list of glob expressions", - ArgType: type_map.AddType(scope, &GlobPluginArgs{}), - Version: 3, - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Name: "glob", + Doc: "Retrieve files based on a list of glob expressions", + ArgType: type_map.AddType(scope, &GlobPluginArgs{}), + Version: 3, + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.FILESYSTEM_READ).Build(), } } @@ -298,10 +298,11 @@ func (self ReadFilePlugin) Name() string { func (self ReadFilePlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: "read_file", - Doc: "Read files in chunks.", - ArgType: type_map.AddType(scope, &ReadFileArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Name: "read_file", + Doc: "Read files in chunks.", + ArgType: type_map.AddType(scope, &ReadFileArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.FILESYSTEM_READ).Build(), } } @@ -366,7 +367,7 @@ func (self ReadFileFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap Name: "read_file", Doc: "Read a file into a string.", ArgType: type_map.AddType(scope, &ReadFileFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } @@ -424,7 +425,7 @@ func (self StatPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfi Doc: "Get file information. Unlike glob() this does not support wildcards.", ArgType: type_map.AddType(scope, &StatArgs{}), Version: 2, - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } @@ -467,7 +468,7 @@ func (self StatFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *v Name: "stat", Doc: "Get file information. Unlike glob() this does not support wildcards.", ArgType: type_map.AddType(scope, &StatArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/filesystem/rm.go b/vql/filesystem/rm.go index 02b46599a..55f5f6b09 100644 --- a/vql/filesystem/rm.go +++ b/vql/filesystem/rm.go @@ -9,7 +9,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors/file" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -97,10 +96,11 @@ func RemoveFile( func (self _RmFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "rm", - Doc: "Remove a file from the filesystem using the API.", - ArgType: type_map.AddType(scope, &_RmRequest{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), + Name: "rm", + Doc: "Remove a file from the filesystem using the API.", + ArgType: type_map.AddType(scope, &_RmRequest{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.FILESYSTEM_WRITE).Build(), } } diff --git a/vql/filesystem/tempfile.go b/vql/filesystem/tempfile.go index a937f7464..75d983e9e 100644 --- a/vql/filesystem/tempfile.go +++ b/vql/filesystem/tempfile.go @@ -25,7 +25,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" utils_tempfile "www.velocidex.com/golang/velociraptor/utils/tempfile" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -121,10 +120,11 @@ func (self *TempfileFunction) Call(ctx context.Context, func (self TempfileFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "tempfile", - Doc: "Create a temporary file and write some data into it.", - ArgType: type_map.AddType(scope, &_TempfileRequest{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), + Name: "tempfile", + Doc: "Create a temporary file and write some data into it.", + ArgType: type_map.AddType(scope, &_TempfileRequest{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.FILESYSTEM_WRITE).Build(), } } @@ -185,10 +185,11 @@ func (self *TempdirFunction) Call(ctx context.Context, func (self TempdirFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "tempdir", - Doc: "Create a temporary directory. The directory will be removed when the query ends.", - ArgType: type_map.AddType(scope, &_TempdirRequest{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), + Name: "tempdir", + Doc: "Create a temporary directory. The directory will be removed when the query ends.", + ArgType: type_map.AddType(scope, &_TempdirRequest{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.FILESYSTEM_WRITE).Build(), } } diff --git a/vql/filesystem/vfs.go b/vql/filesystem/vfs.go index d0fb0642e..a6bef4d95 100644 --- a/vql/filesystem/vfs.go +++ b/vql/filesystem/vfs.go @@ -7,7 +7,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -147,11 +146,12 @@ func listDir( func (self VFSListDirectoryPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: "vfs_ls", - Doc: "List directory and build a VFS object", - ArgType: type_map.AddType(scope, &VFSListDirectoryPluginArgs{}), - Version: 1, - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Name: "vfs_ls", + Doc: "List directory and build a VFS object", + ArgType: type_map.AddType(scope, &VFSListDirectoryPluginArgs{}), + Version: 1, + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/filesystem/write_file.go b/vql/filesystem/write_file.go index b94ef8824..3d30d6267 100644 --- a/vql/filesystem/write_file.go +++ b/vql/filesystem/write_file.go @@ -5,7 +5,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -48,7 +47,7 @@ func (self WriteFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) * Name: "write_file", Doc: "Writes a string onto a file.", ArgType: type_map.AddType(scope, &WriteFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.FILESYSTEM_WRITE, acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/functions/expand.go b/vql/functions/expand.go index f6de7f821..7a237db3d 100644 --- a/vql/functions/expand.go +++ b/vql/functions/expand.go @@ -6,7 +6,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -44,10 +43,11 @@ func (self ExpandPath) Call( func (self ExpandPath) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "expand", - Doc: "Expand the path using the environment.", - ArgType: type_map.AddType(scope, &ExpandPathArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Name: "expand", + Doc: "Expand the path using the environment.", + ArgType: type_map.AddType(scope, &ExpandPathArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), } } diff --git a/vql/functions/gunzip.go b/vql/functions/gunzip.go index 6337c3c4f..3574350cd 100644 --- a/vql/functions/gunzip.go +++ b/vql/functions/gunzip.go @@ -65,7 +65,7 @@ func (self *Gunzip) Call(ctx context.Context, return false } - return string(resB.Bytes()) + return resB.String() } func (self Gunzip) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { diff --git a/vql/functions/hash.go b/vql/functions/hash.go index bfd074742..002ca5952 100644 --- a/vql/functions/hash.go +++ b/vql/functions/hash.go @@ -31,7 +31,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/constants" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -199,11 +198,12 @@ func (self *HashFunction) Call(ctx context.Context, func (self HashFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "hash", - Doc: "Calculate the hash of a file.", - ArgType: type_map.AddType(scope, &HashFunctionArgs{}), - Version: 3, - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Name: "hash", + Doc: "Calculate the hash of a file.", + ArgType: type_map.AddType(scope, &HashFunctionArgs{}), + Version: 3, + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/functions/pid.go b/vql/functions/pid.go index c68c79d97..3ed910a3b 100644 --- a/vql/functions/pid.go +++ b/vql/functions/pid.go @@ -23,7 +23,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" ) @@ -45,9 +44,10 @@ func (self *GetPidFunction) Call(ctx context.Context, func (self GetPidFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "getpid", - Doc: "Returns the current pid of the process.", - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Name: "getpid", + Doc: "Returns the current pid of the process.", + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), } } diff --git a/vql/functions/pskill.go b/vql/functions/pskill.go index 2d0cf8b92..184ed9d2f 100644 --- a/vql/functions/pskill.go +++ b/vql/functions/pskill.go @@ -22,7 +22,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/psutils" "www.velocidex.com/golang/vfilter" @@ -66,10 +65,11 @@ func (self *PsKillFunction) Call(ctx context.Context, func (self PsKillFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "pskill", - Doc: "Kill the specified process.", - ArgType: type_map.AddType(scope, &PsKillFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.EXECVE).Build(), + Name: "pskill", + Doc: "Kill the specified process.", + ArgType: type_map.AddType(scope, &PsKillFunctionArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.EXECVE).Build(), } } diff --git a/vql/functions/tlsh.go b/vql/functions/tlsh.go index c88723535..cb50cd376 100644 --- a/vql/functions/tlsh.go +++ b/vql/functions/tlsh.go @@ -8,7 +8,6 @@ import ( "github.com/glaslos/tlsh" "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -58,10 +57,11 @@ func (self *TLSHashFunction) Call(ctx context.Context, func (self TLSHashFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "tlsh_hash", - Doc: "Calculate the tlsh hash of a file.", - ArgType: type_map.AddType(scope, &TLSHashFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Name: "tlsh_hash", + Doc: "Calculate the tlsh hash of a file.", + ArgType: type_map.AddType(scope, &TLSHashFunctionArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/golang/background.go b/vql/golang/background.go index 04cba0952..8419ea578 100644 --- a/vql/golang/background.go +++ b/vql/golang/background.go @@ -43,11 +43,10 @@ func (self *BackgroundFunction) Call(ctx context.Context, // We still materialize the entire row but we discard the // results. _ = vfilter.MaterializedLazyRow(ctx, item, scope) - select { - case <-ctx.Done(): - return - } } + + // Wait for the query to tear down. + <-sub_ctx.Done() }() return true diff --git a/vql/golang/goroutines.go b/vql/golang/goroutines.go index 23bda76a6..d4aecceb6 100644 --- a/vql/golang/goroutines.go +++ b/vql/golang/goroutines.go @@ -13,7 +13,6 @@ import ( "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/services/debug" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -128,10 +127,11 @@ func PrintProfile(profile *Profile, output_chan chan vfilter.Row, verbose bool) func (self GoRoutinesPlugin) Info( scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: "profile_goroutines", - Doc: "Enumerates all running goroutines.", - ArgType: type_map.AddType(scope, &GoRoutinesPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Name: "profile_goroutines", + Doc: "Enumerates all running goroutines.", + ArgType: type_map.AddType(scope, &GoRoutinesPluginArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), } } diff --git a/vql/golang/memory.go b/vql/golang/memory.go index 6a49341e4..5d34fb859 100644 --- a/vql/golang/memory.go +++ b/vql/golang/memory.go @@ -6,7 +6,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -63,10 +62,11 @@ func (self MemoryAllocationsPlugin) Call(ctx context.Context, func (self MemoryAllocationsPlugin) Info( scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: "profile_memory", - Doc: "Enumerates all in-use memory within the runtime and tie it to allocation sites.", - ArgType: type_map.AddType(scope, &MemoryAllocationsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Name: "profile_memory", + Doc: "Enumerates all in-use memory within the runtime and tie it to allocation sites.", + ArgType: type_map.AddType(scope, &MemoryAllocationsPluginArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), } } diff --git a/vql/golang/profile.go b/vql/golang/profile.go index dc13cb887..9bc93e963 100644 --- a/vql/golang/profile.go +++ b/vql/golang/profile.go @@ -15,9 +15,7 @@ import ( "www.velocidex.com/golang/velociraptor/actions" "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services/debug" - "www.velocidex.com/golang/velociraptor/utils/tempfile" utils_tempfile "www.velocidex.com/golang/velociraptor/utils/tempfile" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -76,7 +74,7 @@ func writeMetrics( func writeProfile( ctx context.Context, scope vfilter.Scope, output_chan chan vfilter.Row, name string, debug int64) { - tmpfile, err := tempfile.TempFile("tmp*.tmp") + tmpfile, err := utils_tempfile.TempFile("tmp*.tmp") if err != nil { scope.Log("profile: %s", err) return @@ -120,7 +118,7 @@ func writeCPUProfile( ctx context.Context, scope vfilter.Scope, output_chan chan vfilter.Row, duration int64) { - tmpfile, err := tempfile.TempFile("tmp*.tmp") + tmpfile, err := utils_tempfile.TempFile("tmp*.tmp") if err != nil { scope.Log("profile: %s", err) return @@ -159,7 +157,7 @@ func writeTraceProfile( ctx context.Context, scope vfilter.Scope, output_chan chan vfilter.Row, duration int64) { - tmpfile, err := tempfile.TempFile("tmp*.tmp") + tmpfile, err := utils_tempfile.TempFile("tmp*.tmp") if err != nil { scope.Log("profile: %s", err) return @@ -294,11 +292,12 @@ func (self *ProfilePlugin) Call(ctx context.Context, func (self ProfilePlugin) Info( scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: "profile", - Doc: "Returns a profile dump from the running process.", - ArgType: type_map.AddType(scope, &ProfilePluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), - Version: 2, + Name: "profile", + Doc: "Returns a profile dump from the running process.", + ArgType: type_map.AddType(scope, &ProfilePluginArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), + Version: 2, } } @@ -345,7 +344,7 @@ func init() { Set("Query", item.Query) if item.Duration == 0 { row.Update("Status", "RUNNING"). - Update("Duration", time.Now().Sub(item.Start). + Update("Duration", time.Since(item.Start). Round(time.Second).String()) } else { row.Update("Status", "FINISHED"). @@ -377,7 +376,7 @@ func init() { row := ordereddict.NewDict(). Set("Status", "RUNNING"). - Set("Duration", time.Now().Sub(item.Start). + Set("Duration", time.Since(item.Start). Round(time.Millisecond).String()). Set("Started", item.Start). Set("Query", item.Query) diff --git a/vql/linux/audit.go b/vql/linux/audit.go index e9844cfec..23105fbd0 100644 --- a/vql/linux/audit.go +++ b/vql/linux/audit.go @@ -14,7 +14,6 @@ import ( "github.com/elastic/go-libaudit/v2/auparse" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/utils/dict" @@ -51,9 +50,10 @@ type AuditPlugin struct{} func (self AuditPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: "audit", - Doc: "Register as an audit daemon in the kernel.", - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Name: "audit", + Doc: "Register as an audit daemon in the kernel.", + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), } } diff --git a/vql/linux/compatibility.go b/vql/linux/compatibility.go index bd6c44cfb..19e13265e 100644 --- a/vql/linux/compatibility.go +++ b/vql/linux/compatibility.go @@ -10,7 +10,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" ) @@ -24,7 +23,8 @@ func init() { vfilter.GenericFunction{ ArgType: &LookupSidFunctionArgs{}, FunctionName: "lookupSID", - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), Function: func( ctx context.Context, scope vfilter.Scope, diff --git a/vql/linux/connections.go b/vql/linux/connections.go index 40afe29be..dc201d5f0 100755 --- a/vql/linux/connections.go +++ b/vql/linux/connections.go @@ -24,7 +24,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/psutils" "www.velocidex.com/golang/vfilter" @@ -77,7 +76,8 @@ func init() { vql_subsystem.RegisterPlugin( &vfilter.GenericListPlugin{ PluginName: "connections", - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), Function: func( ctx context.Context, scope vfilter.Scope, diff --git a/vql/linux/ebpf/ebpf.go b/vql/linux/ebpf/ebpf.go index df295db5d..285dc6a6d 100644 --- a/vql/linux/ebpf/ebpf.go +++ b/vql/linux/ebpf/ebpf.go @@ -14,7 +14,6 @@ import ( "github.com/Velocidex/tracee_velociraptor/manager" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -35,11 +34,12 @@ type EBPFEventPlugin struct{} func (self EBPFEventPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: "watch_ebpf", - Doc: "Watch for events from eBPF.", - ArgType: type_map.AddType(scope, &EBPFEventPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), - Version: 2, + Name: "watch_ebpf", + Doc: "Watch for events from eBPF.", + ArgType: type_map.AddType(scope, &EBPFEventPluginArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), + Version: 2, } } diff --git a/vql/linux/sysinfo.go b/vql/linux/sysinfo.go index 52000913f..a5da06d63 100644 --- a/vql/linux/sysinfo.go +++ b/vql/linux/sysinfo.go @@ -10,7 +10,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" ) @@ -19,9 +18,10 @@ type LinuxSysinfoFunction struct{} func (self LinuxSysinfoFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "sysinfo", - Doc: "Collect system information on Linux clients", - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Name: "sysinfo", + Doc: "Collect system information on Linux clients", + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), } } diff --git a/vql/materializer/materialize.go b/vql/materializer/materialize.go index 84684daa7..942043e1c 100644 --- a/vql/materializer/materialize.go +++ b/vql/materializer/materialize.go @@ -12,7 +12,6 @@ import ( "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/utils/tempfile" utils_tempfile "www.velocidex.com/golang/velociraptor/utils/tempfile" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/filesystem" @@ -39,7 +38,7 @@ func NewTempFileMatrializer( name string, rows []types.Row) (*TempFileMatrializer, error) { // name is a VQL identifier so should be safe. - tmpfile, err := tempfile.TempFile( + tmpfile, err := utils_tempfile.TempFile( "VQL_" + utils.SanitizeString(name) + "_.jsonl") if err != nil { return nil, err @@ -144,11 +143,7 @@ func (self TempFileMatrializer) Eval( // Support Associative protocol func (self TempFileMatrializer) Applicable(a types.Any, b types.Any) bool { _, ok := a.(*TempFileMatrializer) - if !ok { - return false - } - - return true + return ok } // Just delegate to our contained rows array. diff --git a/vql/networking/host.go b/vql/networking/host.go index 6733d94fb..3cb2cec9b 100644 --- a/vql/networking/host.go +++ b/vql/networking/host.go @@ -7,7 +7,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/functions" "www.velocidex.com/golang/velociraptor/vql/tools/dns" @@ -123,11 +122,12 @@ func (self *HostFunction) Call(ctx context.Context, func (self *HostFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "host", - Doc: "Perform a DNS resolution.", - ArgType: type_map.AddType(scope, &HostFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), - Version: 2, + Name: "host", + Doc: "Perform a DNS resolution.", + ArgType: type_map.AddType(scope, &HostFunctionArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), + Version: 2, } } diff --git a/vql/networking/http_client.go b/vql/networking/http_client.go index f76c792a7..55af09ce0 100644 --- a/vql/networking/http_client.go +++ b/vql/networking/http_client.go @@ -37,7 +37,6 @@ import ( "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/utils" "www.velocidex.com/golang/velociraptor/utils/tempfile" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/filesystem" "www.velocidex.com/golang/velociraptor/vql/functions" @@ -590,11 +589,12 @@ func (self _HttpPlugin) Name() string { func (self _HttpPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: self.Name(), - Doc: "Make a http request.", - ArgType: type_map.AddType(scope, &HttpPluginRequest{}), - Version: 3, - Metadata: vql.VQLMetadata().Permissions(acls.NETWORK).Build(), + Name: self.Name(), + Doc: "Make a http request.", + ArgType: type_map.AddType(scope, &HttpPluginRequest{}), + Version: 3, + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.NETWORK).Build(), } } diff --git a/vql/networking/mail.go b/vql/networking/mail.go index 611259737..8b0a4be8a 100644 --- a/vql/networking/mail.go +++ b/vql/networking/mail.go @@ -29,7 +29,6 @@ import ( "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -312,11 +311,12 @@ func (self MailFunction) mergeSecretToRequest( func (self MailFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "mail", - Doc: "Send Email to a remote server.", - ArgType: type_map.AddType(scope, &MailPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.NETWORK).Build(), - Version: 2, + Name: "mail", + Doc: "Send Email to a remote server.", + ArgType: type_map.AddType(scope, &MailPluginArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.NETWORK).Build(), + Version: 2, } } diff --git a/vql/networking/netcat.go b/vql/networking/netcat.go index 4f90301d6..e311c3f7c 100644 --- a/vql/networking/netcat.go +++ b/vql/networking/netcat.go @@ -8,7 +8,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -143,10 +142,11 @@ func (self NetcatPlugin) connectOnce( func (self NetcatPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: "netcat", - Doc: "Make a tcp connection and read data from a socket.", - ArgType: type_map.AddType(scope, &NetcatPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.NETWORK).Build(), + Name: "netcat", + Doc: "Make a tcp connection and read data from a socket.", + ArgType: type_map.AddType(scope, &NetcatPluginArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.NETWORK).Build(), } } diff --git a/vql/networking/netstat_linux.go b/vql/networking/netstat_linux.go index b8c522eb3..7e7668e9f 100644 --- a/vql/networking/netstat_linux.go +++ b/vql/networking/netstat_linux.go @@ -19,7 +19,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" ) @@ -241,7 +240,8 @@ var _Netstat = vfilter.GenericListPlugin{ Doc: "Collect network information.", Function: runNetstat, ArgType: &NetstatArgs{}, - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), } func init() { diff --git a/vql/networking/network.go b/vql/networking/network.go index bf096e81f..061144db1 100644 --- a/vql/networking/network.go +++ b/vql/networking/network.go @@ -23,7 +23,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" ) @@ -33,9 +32,10 @@ type InterfacesPlugin struct { func (self InterfacesPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.PluginInfo { return &vfilter.PluginInfo{ - Name: "interfaces", - Doc: "List all active interfaces.", - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Name: "interfaces", + Doc: "List all active interfaces.", + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.MACHINE_STATE).Build(), } } diff --git a/vql/networking/tls_test.go b/vql/networking/tls_test.go index de1aa985a..e97e4b783 100644 --- a/vql/networking/tls_test.go +++ b/vql/networking/tls_test.go @@ -118,7 +118,7 @@ func TestTLSVerification(t *testing.T) { }, }, } - _, data, err = testHTTPConnection(config_obj, "https://www.google.com") + _, _, err = testHTTPConnection(config_obj, "https://www.google.com") assert.Error(t, err) assert.Contains(t, err.Error(), "Server certificate had no known thumbprint") diff --git a/vql/networking/transport.go b/vql/networking/transport.go index 092a5f591..13755ae80 100644 --- a/vql/networking/transport.go +++ b/vql/networking/transport.go @@ -8,7 +8,6 @@ import ( "sync" "time" - "www.velocidex.com/golang/velociraptor/config/proto" config_proto "www.velocidex.com/golang/velociraptor/config/proto" ) @@ -45,7 +44,7 @@ func (self *TransportCacheType) Set(extra_roots string, t *http.Transport) { } // Try to cache the HTTP Transport to allow it to use connections better. -func GetHttpTransport(config_obj *proto.ClientConfig, extra_roots string) (*http.Transport, error) { +func GetHttpTransport(config_obj *config_proto.ClientConfig, extra_roots string) (*http.Transport, error) { transport, pres := TransportCache.Get(extra_roots) if pres { @@ -62,7 +61,7 @@ func GetHttpTransport(config_obj *proto.ClientConfig, extra_roots string) (*http } // Create a new transport without caching it. -func GetNewHttpTransport(config_obj *proto.ClientConfig, extra_roots string) ( +func GetNewHttpTransport(config_obj *config_proto.ClientConfig, extra_roots string) ( *http.Transport, error) { if config_obj == nil { config_obj = &config_proto.ClientConfig{} diff --git a/vql/networking/upload.go b/vql/networking/upload.go index 23715f28a..ab95a3f64 100644 --- a/vql/networking/upload.go +++ b/vql/networking/upload.go @@ -26,7 +26,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/artifacts" "www.velocidex.com/golang/velociraptor/uploads" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/functions" "www.velocidex.com/golang/vfilter" @@ -132,7 +131,7 @@ func (self UploadFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) "client this will upload the file into the flow and store " + "it in the server's file store.", ArgType: type_map.AddType(scope, &UploadFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), Version: 3, } } @@ -245,7 +244,7 @@ func (self UploadDirectoryFunction) Info(scope vfilter.Scope, type_map *vfilter. Name: "upload_directory", Doc: "Upload a file to an upload directory. The final filename will be the output directory path followed by the filename path.", ArgType: type_map.AddType(scope, &UploadDirectoryFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), } } diff --git a/vql/parsers/authenticode/authenticode.go b/vql/parsers/authenticode/authenticode.go index 33ecfed3b..f515790d8 100644 --- a/vql/parsers/authenticode/authenticode.go +++ b/vql/parsers/authenticode/authenticode.go @@ -34,7 +34,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/readers" "www.velocidex.com/golang/vfilter" @@ -154,7 +153,7 @@ func (self AuthenticodeFunction) Info( Doc: "This plugin uses the Windows API to extract authenticode " + "signature details from PE files.", ArgType: type_map.AddType(scope, &AuthenticodeArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), } } diff --git a/vql/parsers/binary.go b/vql/parsers/binary.go index 41ed18471..15fd11966 100644 --- a/vql/parsers/binary.go +++ b/vql/parsers/binary.go @@ -7,7 +7,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/constants" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/readers" vfilter "www.velocidex.com/golang/vfilter" @@ -32,7 +31,7 @@ func (self ParseBinaryFunction) Info(scope vfilter.Scope, type_map *vfilter.Type Name: "parse_binary", Doc: "Parse a binary file into a datastructure using a profile.", ArgType: type_map.AddType(scope, &ParseBinaryFunctionArg{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), Version: 2, } } diff --git a/vql/parsers/crypto/pubkey.go b/vql/parsers/crypto/pubkey.go index 9baea2448..36b9e6887 100644 --- a/vql/parsers/crypto/pubkey.go +++ b/vql/parsers/crypto/pubkey.go @@ -16,7 +16,6 @@ import ( "www.velocidex.com/golang/velociraptor/constants" crypto_utils "www.velocidex.com/golang/velociraptor/crypto/utils" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -141,10 +140,11 @@ func encryptPGP(recip []*openpgp.Entity, w io.Writer) error { wc, err := openpgp.Encrypt(w, recip, signer, nil, nil) - defer wc.Close() if err != nil { return err } + defer wc.Close() + if _, err := io.Copy(wc, r); err != nil { return err } @@ -253,7 +253,7 @@ func (self PKEncryptFunction) Info( Name: "pk_encrypt", Doc: "Encrypt files using pubkey encryption", ArgType: type_map.AddType(scope, &PKEncryptArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), } } diff --git a/vql/parsers/csv/csv.go b/vql/parsers/csv/csv.go index d29083119..a9b636021 100644 --- a/vql/parsers/csv/csv.go +++ b/vql/parsers/csv/csv.go @@ -31,7 +31,6 @@ import ( "www.velocidex.com/golang/velociraptor/config" "www.velocidex.com/golang/velociraptor/file_store/csv" "www.velocidex.com/golang/velociraptor/json" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -169,7 +168,7 @@ func (self ParseCSVPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Name: "parse_csv", Doc: "Parses events from a CSV file.", ArgType: type_map.AddType(scope, &ParseCSVPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } @@ -228,7 +227,7 @@ func (self _WatchCSVPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Doc: "Watch a CSV file and stream events from it. " + "Note: This is an event plugin which does not complete.", ArgType: type_map.AddType(scope, &ParseCSVPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } @@ -319,7 +318,7 @@ func (self WriteCSVPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Name: "write_csv", Doc: "Write a query into a CSV file.", ArgType: type_map.AddType(scope, &WriteCSVPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), } } diff --git a/vql/parsers/ese/ese.go b/vql/parsers/ese/ese.go index 8c696db3b..8582b21c0 100644 --- a/vql/parsers/ese/ese.go +++ b/vql/parsers/ese/ese.go @@ -28,7 +28,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/readers" vfilter "www.velocidex.com/golang/vfilter" @@ -240,7 +239,7 @@ func (self _ESEPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfi Name: "parse_ese", Doc: "Opens an ESE file and dump a table.", ArgType: type_map.AddType(scope, &_ESEArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } @@ -318,7 +317,7 @@ func (self _ESECatalogPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "parse_ese_catalog", Doc: "Opens an ESE file and dump the schema.", ArgType: type_map.AddType(scope, &_ESECatalogArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/parsers/ese/profile_gen.go b/vql/parsers/ese/profile_gen.go index a967869e0..fc9fc55e0 100644 --- a/vql/parsers/ese/profile_gen.go +++ b/vql/parsers/ese/profile_gen.go @@ -1,169 +1,156 @@ - package ese // Autogenerated code from vtype_profile.json. Do not edit. import ( - "encoding/binary" - "fmt" - "bytes" - "io" - "sort" - "strings" - "unicode/utf16" - "unicode/utf8" + "bytes" + "encoding/binary" + "fmt" + "io" + "sort" + "strings" + "unicode/utf16" + "unicode/utf8" ) var ( - // Depending on autogenerated code we may use this. Add a reference - // to shut the compiler up. - _ = bytes.MinRead - _ = fmt.Sprintf - _ = utf16.Decode - _ = binary.LittleEndian - _ = utf8.RuneError - _ = sort.Strings - _ = strings.Join - _ = io.Copy + // Depending on autogenerated code we may use this. Add a reference + // to shut the compiler up. + _ = bytes.MinRead + _ = fmt.Sprintf + _ = utf16.Decode + _ = binary.LittleEndian + _ = utf8.RuneError + _ = sort.Strings + _ = strings.Join + _ = io.Copy ) -func indent(text string) string { - result := []string{} - lines := strings.Split(text,"\n") - for _, line := range lines { - result = append(result, " " + line) - } - return strings.Join(result, "\n") -} - - type MiscProfile struct { - Off_Misc_Misc int64 - Off_SID_Revision int64 - Off_SID_SubAuthCount int64 - Off_SID_Authority int64 - Off_SID_Authority2 int64 - Off_SID_Subauthority int64 + Off_Misc_Misc int64 + Off_SID_Revision int64 + Off_SID_SubAuthCount int64 + Off_SID_Authority int64 + Off_SID_Authority2 int64 + Off_SID_Subauthority int64 } func NewMiscProfile() *MiscProfile { - // Specific offsets can be tweaked to cater for slight version mismatches. - self := &MiscProfile{0,0,1,2,4,8} - return self + // Specific offsets can be tweaked to cater for slight version mismatches. + self := &MiscProfile{0, 0, 1, 2, 4, 8} + return self } func (self *MiscProfile) Misc(reader io.ReaderAt, offset int64) *Misc { - return &Misc{Reader: reader, Offset: offset, Profile: self} + return &Misc{Reader: reader, Offset: offset, Profile: self} } func (self *MiscProfile) SID(reader io.ReaderAt, offset int64) *SID { - return &SID{Reader: reader, Offset: offset, Profile: self} + return &SID{Reader: reader, Offset: offset, Profile: self} } - type Misc struct { - Reader io.ReaderAt - Offset int64 - Profile *MiscProfile + Reader io.ReaderAt + Offset int64 + Profile *MiscProfile } func (self *Misc) Size() int { - return 0 + return 0 } - func (self *Misc) Misc() string { - return ParseTerminatedUTF16String(self.Reader, self.Profile.Off_Misc_Misc + self.Offset) + return ParseTerminatedUTF16String(self.Reader, self.Profile.Off_Misc_Misc+self.Offset) } type SID struct { - Reader io.ReaderAt - Offset int64 - Profile *MiscProfile + Reader io.ReaderAt + Offset int64 + Profile *MiscProfile } func (self *SID) Size() int { - return 16 + return 16 } func (self *SID) Revision() byte { - return ParseUint8(self.Reader, self.Profile.Off_SID_Revision + self.Offset) + return ParseUint8(self.Reader, self.Profile.Off_SID_Revision+self.Offset) } func (self *SID) SubAuthCount() byte { - return ParseUint8(self.Reader, self.Profile.Off_SID_SubAuthCount + self.Offset) + return ParseUint8(self.Reader, self.Profile.Off_SID_SubAuthCount+self.Offset) } func (self *SID) Authority() uint16 { - return ParseUint16(self.Reader, self.Profile.Off_SID_Authority + self.Offset) + return ParseUint16(self.Reader, self.Profile.Off_SID_Authority+self.Offset) } func (self *SID) Authority2() uint32 { - return ParseUint32(self.Reader, self.Profile.Off_SID_Authority2 + self.Offset) + return ParseUint32(self.Reader, self.Profile.Off_SID_Authority2+self.Offset) } func (self *SID) Subauthority() []uint32 { - return ParseArray_uint32(self.Profile, self.Reader, self.Profile.Off_SID_Subauthority + self.Offset, 100) + return ParseArray_uint32(self.Profile, self.Reader, self.Profile.Off_SID_Subauthority+self.Offset, 100) } func ParseArray_uint32(profile *MiscProfile, reader io.ReaderAt, offset int64, count int) []uint32 { - result := make([]uint32, 0, count) - for i:=0; i 0 { reader = utils.NewOffsetReader(reader, arg.BaseOffset, diff --git a/vql/parsers/pe_dump.go b/vql/parsers/pe_dump.go index 838479f8a..72424e493 100644 --- a/vql/parsers/pe_dump.go +++ b/vql/parsers/pe_dump.go @@ -13,9 +13,7 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/constants" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/utils/tempfile" utils_tempfile "www.velocidex.com/golang/velociraptor/utils/tempfile" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/filesystem" vfilter "www.velocidex.com/golang/vfilter" @@ -35,7 +33,7 @@ func (self _PEDumpFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Name: "pe_dump", Doc: "Dump a PE file from process memory.", ArgType: type_map.AddType(scope, &_PEDumpFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), } } @@ -98,7 +96,7 @@ func (self _PEDumpFunction) Call( var memory_buffer *utils.MemoryBuffer if arg.InMemory == 0 { - tmpfile, err = tempfile.TempFile("tmp*exe") + tmpfile, err = utils_tempfile.TempFile("tmp*exe") if err != nil { scope.Log("pe_dump: %v", err) return false diff --git a/vql/parsers/plist.go b/vql/parsers/plist.go index 79e90368a..b8254dca1 100644 --- a/vql/parsers/plist.go +++ b/vql/parsers/plist.go @@ -9,7 +9,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/json" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -42,7 +41,7 @@ func (self PlistFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) * Name: "plist", Doc: "Parse plist file", ArgType: type_map.AddType(scope, &_PlistFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } @@ -115,7 +114,7 @@ func (self _PlistPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *v Name: "plist", Doc: "Parses a plist file.", ArgType: type_map.AddType(scope, &_PlistPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/parsers/prefetch.go b/vql/parsers/prefetch.go index 55cb07367..ecf29b337 100644 --- a/vql/parsers/prefetch.go +++ b/vql/parsers/prefetch.go @@ -9,7 +9,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -107,7 +106,7 @@ func (self _PrefetchPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Name: "prefetch", Doc: "Parses a prefetch file.", ArgType: type_map.AddType(scope, &_PrefetchPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/parsers/pst_parser.go b/vql/parsers/pst_parser.go index 09ca5e6fc..a8c8d7b37 100644 --- a/vql/parsers/pst_parser.go +++ b/vql/parsers/pst_parser.go @@ -20,7 +20,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -211,7 +210,7 @@ func (self *PSTParser) Info(scope vfilter.Scope, typeMap *vfilter.TypeMap) *vfil Name: "parse_pst", Doc: "Parse a PST file and extract email data.", ArgType: typeMap.AddType(scope, &PSTParserArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/parsers/recyclebin.go b/vql/parsers/recyclebin.go index c4eff23a3..8718329e2 100644 --- a/vql/parsers/recyclebin.go +++ b/vql/parsers/recyclebin.go @@ -8,7 +8,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" recyclebin "www.velocidex.com/golang/velociraptor/vql/parsers/recyclebin" vfilter "www.velocidex.com/golang/vfilter" @@ -42,7 +41,7 @@ func (self _RecycleBinPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "parse_recyclebin", Doc: "Parses a $I file found in the $Recycle.Bin", ArgType: type_map.AddType(scope, &_RecycleBinPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/parsers/regexparser.go b/vql/parsers/regexparser.go index ed28b8a12..d2af02852 100644 --- a/vql/parsers/regexparser.go +++ b/vql/parsers/regexparser.go @@ -26,7 +26,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -184,7 +183,7 @@ func (self _ParseFileWithRegex) Info(scope vfilter.Scope, type_map *vfilter.Type Name: "parse_records_with_regex", Doc: "Parses a file with a set of regexp and yields matches as records.", ArgType: type_map.AddType(scope, &_ParseFileWithRegexArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/parsers/splitparser.go b/vql/parsers/splitparser.go index 0a9a6d4a1..cc503ad26 100644 --- a/vql/parsers/splitparser.go +++ b/vql/parsers/splitparser.go @@ -29,7 +29,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -221,7 +220,7 @@ func (self SplitRecordParser) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "split_records", Doc: "Parses files by splitting lines into records.", ArgType: type_map.AddType(scope, &_SplitRecordParserArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), Version: 2, } } diff --git a/vql/parsers/sql/sql.go b/vql/parsers/sql/sql.go index b2e897bc6..c1eeb8795 100644 --- a/vql/parsers/sql/sql.go +++ b/vql/parsers/sql/sql.go @@ -15,7 +15,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -175,7 +174,7 @@ func (self SQLPlugin) Call( // item in the columns slice. row_values := make([]interface{}, len(columns)) row_pointers := make([]interface{}, len(columns)) - for i, _ := range columns { + for i := range columns { row_pointers[i] = &row_values[i] } @@ -217,7 +216,7 @@ func (self SQLPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfil Name: "sql", Doc: "Run queries against sqlite, mysql, and postgres databases", ArgType: type_map.AddType(scope, &SQLPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/parsers/sql/sql_cache.go b/vql/parsers/sql/sql_cache.go index 1be520cc8..a3c9b32bf 100644 --- a/vql/parsers/sql/sql_cache.go +++ b/vql/parsers/sql/sql_cache.go @@ -17,7 +17,6 @@ import ( "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/services/debug" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/utils/tempfile" utils_tempfile "www.velocidex.com/golang/velociraptor/utils/tempfile" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" @@ -408,7 +407,7 @@ func _MakeTempfile(ctx context.Context, scope vfilter.Scope) ( string, error) { - tmpfile, err := tempfile.TempFile("tmp*.sqlite") + tmpfile, err := utils_tempfile.TempFile("tmp*.sqlite") if err != nil { return "", err } diff --git a/vql/parsers/syslog/scanner.go b/vql/parsers/syslog/scanner.go index 86311796a..ea8d460e2 100644 --- a/vql/parsers/syslog/scanner.go +++ b/vql/parsers/syslog/scanner.go @@ -16,7 +16,6 @@ import ( "www.velocidex.com/golang/velociraptor/artifacts" config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -39,7 +38,7 @@ func (self ScannerPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) * Name: "parse_lines", Doc: "Parse a file separated into lines.", ArgType: type_map.AddType(scope, &ScannerPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } @@ -325,7 +324,7 @@ func (self WatchSyslogPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "watch_syslog", Doc: "Watch a syslog file and stream events from it. ", ArgType: type_map.AddType(scope, &WatchSyslogPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), Version: 2, } } diff --git a/vql/parsers/syslog/watcher_test.go b/vql/parsers/syslog/watcher_test.go index d6fc90455..2feb1f0ed 100644 --- a/vql/parsers/syslog/watcher_test.go +++ b/vql/parsers/syslog/watcher_test.go @@ -136,11 +136,8 @@ func (self *SyslogWatcherTestSuite) clearLines() { func (self *SyslogWatcherTestSuite) getLines() []vfilter.Row { self.mu.Lock() defer self.mu.Unlock() - result := []vfilter.Row{} - for _, i := range self.result { - result = append(result, i) - } - return result + + return append([]vfilter.Row{}, self.result...) } func (self *SyslogWatcherTestSuite) TestSyslogReader() { diff --git a/vql/parsers/usn/carver.go b/vql/parsers/usn/carver.go index 74da5735e..736148e60 100644 --- a/vql/parsers/usn/carver.go +++ b/vql/parsers/usn/carver.go @@ -12,7 +12,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors/ntfs/readers" "www.velocidex.com/golang/velociraptor/acls" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -195,7 +194,7 @@ func (self CarveUSNPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Doc: "Carve for the USN journal entries from a device.", ArgType: type_map.AddType(scope, &CarveUSNPluginArgs{}), Version: 2, - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/parsers/usn/usn.go b/vql/parsers/usn/usn.go index 4fc0c0380..20ed6e46f 100644 --- a/vql/parsers/usn/usn.go +++ b/vql/parsers/usn/usn.go @@ -14,7 +14,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/uploads" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -212,7 +211,7 @@ func (self USNPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfil Doc: "Parse the USN journal from a device.", ArgType: type_map.AddType(scope, &USNPluginArgs{}), Version: 2, - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/parsers/usn/watcher.go b/vql/parsers/usn/watcher.go index 7e47a5a7b..70d0f9734 100644 --- a/vql/parsers/usn/watcher.go +++ b/vql/parsers/usn/watcher.go @@ -6,7 +6,6 @@ import ( "sync" "time" - "www.velocidex.com/golang/go-ntfs/parser" ntfs "www.velocidex.com/golang/go-ntfs/parser" "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/accessors/ntfs/readers" @@ -119,7 +118,7 @@ func (self *USNWatcherService) Register( // Distribute the event to all interested listeners. func (self *USNWatcherService) distributeEvent( - event *parser.USN_RECORD, key string) { + event *ntfs.USN_RECORD, key string) { self.mu.Lock() handlers, pres := self.registrations[key] diff --git a/vql/parsers/xml.go b/vql/parsers/xml.go index cecb4acc3..92e1018c2 100644 --- a/vql/parsers/xml.go +++ b/vql/parsers/xml.go @@ -24,7 +24,7 @@ import ( "github.com/clbanning/mxj" "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" + vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -77,7 +77,7 @@ func (self _ParseXMLFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "parse_xml", Doc: "Parse an XML document into a map.", ArgType: type_map.AddType(scope, &_ParseXMLFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), Version: 2, } } diff --git a/vql/parsers/yaml.go b/vql/parsers/yaml.go index ee0c3adb4..b8d475129 100644 --- a/vql/parsers/yaml.go +++ b/vql/parsers/yaml.go @@ -10,7 +10,6 @@ import ( "www.velocidex.com/golang/velociraptor/json" json_tools "www.velocidex.com/golang/velociraptor/tools/json" utils "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -126,7 +125,7 @@ func (self ParseYamlFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "parse_yaml", Doc: "Parse yaml into an object.", ArgType: type_map.AddType(scope, &ParseYamlFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), Version: 2, } } diff --git a/vql/readers/paged_reader_test.go b/vql/readers/paged_reader_test.go index 679aff968..3274fcee4 100644 --- a/vql/readers/paged_reader_test.go +++ b/vql/readers/paged_reader_test.go @@ -73,7 +73,6 @@ func (self *TestSuite) TearDownTest() { func (self *TestSuite) TestPagedReader() { // Open 10 paged readers - This should close 5 - readers := make([]*AccessorReader, 0, 10) buff := make([]byte, 4) for i := 0; i < 10; i++ { @@ -83,7 +82,6 @@ func (self *TestSuite) TestPagedReader() { _, err = reader.ReadAt(buff, 0) assert.NoError(self.T(), err) assert.Equal(self.T(), binary.LittleEndian.Uint32(buff), uint32(i)) - readers = append(readers, reader) } for i := 0; i < 10; i++ { diff --git a/vql/remapping/install.go b/vql/remapping/install.go index b9d274e23..1966be556 100644 --- a/vql/remapping/install.go +++ b/vql/remapping/install.go @@ -273,7 +273,8 @@ func evaluateScopeQuery( return nil, fmt.Errorf( "While evaluating remapping scope: Only LET statements allowed in this context") } - for _ = range vql.Eval(ctx, sub_scope) { + + for range vql.Eval(ctx, sub_scope) { } } diff --git a/vql/remapping/mocker.go b/vql/remapping/mocker.go index a3a680126..32f704bb4 100644 --- a/vql/remapping/mocker.go +++ b/vql/remapping/mocker.go @@ -79,9 +79,8 @@ func NewMockerPlugin(name string, results []types.Any) *MockerPlugin { ctx: &_MockerCtx{}, } - for _, item := range results { - result.ctx.results = append(result.ctx.results, item) - } + result.ctx.results = append(result.ctx.results, results...) + return result } diff --git a/vql/remapping/remapping_test.go b/vql/remapping/remapping_test.go index e5b0933ef..daea95a93 100644 --- a/vql/remapping/remapping_test.go +++ b/vql/remapping/remapping_test.go @@ -154,7 +154,9 @@ func (self *RemapTestSuite) TestRemapByPlugin() { vql, err := vfilter.Parse(` LET _ <= remap(config=RemappingConfig, clear=TRUE) `) - for _ = range vql.Eval(self.Ctx, scope) { + assert.NoError(self.T(), err) + + for range vql.Eval(self.Ctx, scope) { } self.checkQueries(scope) diff --git a/vql/server/backup.go b/vql/server/backup.go index e048de80e..e618ab156 100644 --- a/vql/server/backup.go +++ b/vql/server/backup.go @@ -8,7 +8,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/paths" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -86,7 +85,7 @@ func (self BackupPlugin) Info(scope vfilter.Scope, Name: "backup", Doc: "Generates a backup file.", ArgType: type_map.AddType(scope, &BackupPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), } } diff --git a/vql/server/clients/delete.go b/vql/server/clients/delete.go index b53297bf1..cc17b7a0a 100644 --- a/vql/server/clients/delete.go +++ b/vql/server/clients/delete.go @@ -8,7 +8,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -105,7 +104,7 @@ func (self DeleteClientPlugin) Info( Name: "client_delete", Doc: "Delete all information related to a client. ", ArgType: type_map.AddType(scope, &DeleteClientArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.DELETE_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.DELETE_RESULTS).Build(), } } diff --git a/vql/server/clients/new.go b/vql/server/clients/new.go index fc6d00621..c5c193749 100644 --- a/vql/server/clients/new.go +++ b/vql/server/clients/new.go @@ -12,7 +12,6 @@ import ( "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -147,7 +146,7 @@ func (self NewClientFunction) Info( Name: "client_create", Doc: "Create a new client in the data store.", ArgType: type_map.AddType(scope, &NewClientArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), Version: 2, } } diff --git a/vql/server/compress.go b/vql/server/compress.go index bfaedfd73..50a1449a4 100644 --- a/vql/server/compress.go +++ b/vql/server/compress.go @@ -27,7 +27,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors/file" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -108,7 +107,7 @@ func (self Compress) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilt Name: "compress", Doc: "Compress a file in the server's FileStore. ", ArgType: type_map.AddType(scope, &CompressArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE, acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE, acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/server/crypto.go b/vql/server/crypto.go index 2009e54fa..e23c6e9d0 100644 --- a/vql/server/crypto.go +++ b/vql/server/crypto.go @@ -5,7 +5,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -46,7 +45,7 @@ func (self ServerFrontendCertFunction) Info( Name: "server_frontend_cert", Doc: "Get Server Frontend Certificate", ArgType: type_map.AddType(scope, &vfilter.Empty{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), } } diff --git a/vql/server/crypto/reader.go b/vql/server/crypto/reader.go index 3cf1cb736..287a8a767 100644 --- a/vql/server/crypto/reader.go +++ b/vql/server/crypto/reader.go @@ -9,7 +9,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/crypto/storage" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -113,7 +112,7 @@ func (self ReadCryptFilePlugin) Info(scope vfilter.Scope, type_map *vfilter.Type Name: "read_crypto_file", Doc: "Read a previously stored encrypted local storage file.", ArgType: type_map.AddType(scope, &ReadCryptFilePluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), Version: 2, } } diff --git a/vql/server/crypto/writer.go b/vql/server/crypto/writer.go index 83f59b6b9..e0c619089 100644 --- a/vql/server/crypto/writer.go +++ b/vql/server/crypto/writer.go @@ -13,7 +13,6 @@ import ( config_proto "www.velocidex.com/golang/velociraptor/config/proto" crypto_proto "www.velocidex.com/golang/velociraptor/crypto/proto" "www.velocidex.com/golang/velociraptor/crypto/storage" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -153,7 +152,7 @@ func (self WriteCryptFilePlugin) Info(scope vfilter.Scope, type_map *vfilter.Typ Name: "write_crypto_file", Doc: "Write a query into an encrypted local storage file.", ArgType: type_map.AddType(scope, &WriteCryptFilePluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), } } diff --git a/vql/server/downloads/downloads.go b/vql/server/downloads/downloads.go index adca9d22d..aa9d1c50f 100644 --- a/vql/server/downloads/downloads.go +++ b/vql/server/downloads/downloads.go @@ -30,7 +30,6 @@ import ( "www.velocidex.com/golang/velociraptor/uploads" "www.velocidex.com/golang/velociraptor/utils" "www.velocidex.com/golang/velociraptor/utils/files" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -119,7 +118,7 @@ func (self CreateFlowDownload) Info(scope vfilter.Scope, type_map *vfilter.TypeM Name: "create_flow_download", Doc: "Creates a download pack for the flow.", ArgType: type_map.AddType(scope, &CreateFlowDownloadArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.PREPARE_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.PREPARE_RESULTS).Build(), Version: 2, } } @@ -188,7 +187,7 @@ func (self CreateHuntDownload) Info(scope vfilter.Scope, type_map *vfilter.TypeM Name: "create_hunt_download", Doc: "Creates a download pack for a hunt.", ArgType: type_map.AddType(scope, &CreateHuntDownloadArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.PREPARE_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.PREPARE_RESULTS).Build(), Version: 2, } } diff --git a/vql/server/elastic.go b/vql/server/elastic.go index 2cb0bab57..33e82ace4 100644 --- a/vql/server/elastic.go +++ b/vql/server/elastic.go @@ -55,7 +55,6 @@ import ( "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/networking" vfilter "www.velocidex.com/golang/vfilter" @@ -461,7 +460,7 @@ func (self _ElasticPlugin) Info( return &vfilter.PluginInfo{ Name: "elastic_upload", Doc: "Upload rows to elastic.", - Metadata: vql.VQLMetadata().Permissions(acls.NETWORK).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.NETWORK).Build(), ArgType: type_map.AddType(scope, &_ElasticPluginArgs{}), Version: 2, } diff --git a/vql/server/events.go b/vql/server/events.go index d9fd15926..a81ed56d8 100644 --- a/vql/server/events.go +++ b/vql/server/events.go @@ -6,7 +6,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -75,11 +74,12 @@ func (self *SendEventFunction) Call(ctx context.Context, func (self SendEventFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "send_event", - Doc: "Sends an event to a server event monitoring queue.", - ArgType: type_map.AddType(scope, &SendEventArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN, acls.PUBLISH).Build(), - Version: 2, + Name: "send_event", + Doc: "Sends an event to a server event monitoring queue.", + ArgType: type_map.AddType(scope, &SendEventArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.SERVER_ADMIN, acls.PUBLISH).Build(), + Version: 2, } } diff --git a/vql/server/flows/create.go b/vql/server/flows/create.go index fb226ac9b..754ebac24 100644 --- a/vql/server/flows/create.go +++ b/vql/server/flows/create.go @@ -27,7 +27,6 @@ import ( flows_proto "www.velocidex.com/golang/velociraptor/flows/proto" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/acl_managers" "www.velocidex.com/golang/velociraptor/vql/tools/collector" @@ -201,7 +200,7 @@ func (self ScheduleCollectionFunction) Info(scope vfilter.Scope, type_map *vfilt Name: "collect_client", Doc: "Launch an artifact collection against a client.", ArgType: type_map.AddType(scope, &ScheduleCollectionFunctionArg{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.COLLECT_CLIENT, acls.COLLECT_SERVER, acls.COLLECT_BASIC).Build(), Version: 2, } diff --git a/vql/server/flows/delete.go b/vql/server/flows/delete.go index 8431aa751..91800a32e 100644 --- a/vql/server/flows/delete.go +++ b/vql/server/flows/delete.go @@ -6,7 +6,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -90,7 +89,7 @@ func (self DeleteFlowPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap Name: "delete_flow", Doc: "Delete all the files that make up a flow.", ArgType: type_map.AddType(scope, &DeleteFlowPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.DELETE_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.DELETE_RESULTS).Build(), Version: 2, } } diff --git a/vql/server/flows/flows.go b/vql/server/flows/flows.go index 689c407e2..405829192 100644 --- a/vql/server/flows/flows.go +++ b/vql/server/flows/flows.go @@ -9,7 +9,6 @@ import ( "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/result_sets" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -134,7 +133,7 @@ func (self FlowsPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vf Name: "flows", Doc: "Retrieve the flows launched on each client.", ArgType: type_map.AddType(scope, &FlowsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } @@ -194,7 +193,7 @@ func (self CancelFlowFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeM Name: "cancel_flow", Doc: "Cancels the flow.", ArgType: type_map.AddType(scope, &FlowsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.COLLECT_SERVER, acls.COLLECT_CLIENT).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.COLLECT_SERVER, acls.COLLECT_CLIENT).Build(), } } @@ -266,7 +265,7 @@ func (self EnumerateFlowPlugin) Info(scope vfilter.Scope, type_map *vfilter.Type Name: "enumerate_flow", Doc: "Enumerate all the files that make up a flow.", ArgType: type_map.AddType(scope, &FlowsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } @@ -330,7 +329,7 @@ func (self GetFlowFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Name: "get_flow", Doc: "Gets flow details.", ArgType: type_map.AddType(scope, &FlowsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.COLLECT_CLIENT, acls.COLLECT_SERVER).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.COLLECT_CLIENT, acls.COLLECT_SERVER).Build(), } } diff --git a/vql/server/flows/logs.go b/vql/server/flows/logs.go index f743c5afd..0ff535450 100644 --- a/vql/server/flows/logs.go +++ b/vql/server/flows/logs.go @@ -9,7 +9,6 @@ import ( "www.velocidex.com/golang/velociraptor/paths" "www.velocidex.com/golang/velociraptor/result_sets" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -82,7 +81,7 @@ func (self FlowLogsPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Name: "flow_logs", Doc: "Retrieve the query logs of a flow.", ArgType: type_map.AddType(scope, &FlowLogsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } diff --git a/vql/server/flows/monitoring.go b/vql/server/flows/monitoring.go index 5ed56a9c2..e2ce42572 100644 --- a/vql/server/flows/monitoring.go +++ b/vql/server/flows/monitoring.go @@ -27,7 +27,6 @@ import ( "www.velocidex.com/golang/velociraptor/result_sets" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/functions" "www.velocidex.com/golang/vfilter" @@ -147,7 +146,7 @@ func (self MonitoringPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap Name: "monitoring", Doc: "Read event monitoring log from a client (i.e. that was collected using client event artifacts).", ArgType: type_map.AddType(scope, &MonitoringPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } @@ -187,7 +186,7 @@ func (self WatchMonitoringPlugin) Call( return } - journal, _ := services.GetJournal(config_obj) + journal, err := services.GetJournal(config_obj) if err != nil { return } @@ -235,7 +234,8 @@ func (self WatchMonitoringPlugin) Call( case <-ctx.Done(): return - case output_chan <- row: + case output_chan <- row. + Update("_Source", arg.Artifact): } } }() @@ -251,7 +251,7 @@ func (self WatchMonitoringPlugin) Info(scope vfilter.Scope, "client_id is not provided we watch the global journal which contains " + "events from all clients.", ArgType: type_map.AddType(scope, &WatchMonitoringPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } diff --git a/vql/server/flows/parallel.go b/vql/server/flows/parallel.go index dee254587..eff821e09 100644 --- a/vql/server/flows/parallel.go +++ b/vql/server/flows/parallel.go @@ -11,7 +11,6 @@ import ( config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/result_sets" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -171,7 +170,7 @@ func (self ParallelPlugin) Info( Name: "parallelize", Doc: "Runs query on result batches in parallel.", ArgType: type_map.AddType(scope, &ParallelPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } diff --git a/vql/server/flows/parallel_test.go b/vql/server/flows/parallel_test.go index 562c9d293..9b89f3bba 100644 --- a/vql/server/flows/parallel_test.go +++ b/vql/server/flows/parallel_test.go @@ -173,6 +173,7 @@ func (self *TestSuite) TestHuntsSource() { hunt_rs_writer, err := result_sets.NewResultSetWriter( file_store_factory, hunt_path_manager, nil, utils.SyncCompleter, true /* truncate */) + assert.NoError(self.T(), err) gen := &ConstantIdGenerator{} defer utils.SetIdGenerator(gen)() diff --git a/vql/server/flows/results.go b/vql/server/flows/results.go index 11cf71506..7b7034cd9 100644 --- a/vql/server/flows/results.go +++ b/vql/server/flows/results.go @@ -34,7 +34,6 @@ import ( "www.velocidex.com/golang/velociraptor/result_sets" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/server/hunts" "www.velocidex.com/golang/vfilter" @@ -309,7 +308,7 @@ func (self SourcePlugin) Info( Name: "source", Doc: "Retrieve rows from stored result sets. This is a one stop show for retrieving stored result set for post processing.", ArgType: type_map.AddType(scope, &SourcePluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), Version: 2, } } @@ -587,7 +586,7 @@ func (self FlowResultsPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "flow_results", Doc: "Retrieve the results of a flow.", ArgType: type_map.AddType(scope, &FlowResultsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } diff --git a/vql/server/flows/upload_transactions.go b/vql/server/flows/upload_transactions.go index bf7f8aa53..6fc009718 100644 --- a/vql/server/flows/upload_transactions.go +++ b/vql/server/flows/upload_transactions.go @@ -7,7 +7,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -86,7 +85,7 @@ func (self UploadTransactionsPlugin) Info(scope vfilter.Scope, type_map *vfilter Name: "upload_transactions", Doc: "View the outstanding transactions for uploads.", ArgType: type_map.AddType(scope, &UploadTransactionsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } diff --git a/vql/server/flows/uploads.go b/vql/server/flows/uploads.go index 8963c5e77..f1d5e6403 100644 --- a/vql/server/flows/uploads.go +++ b/vql/server/flows/uploads.go @@ -14,7 +14,6 @@ import ( "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/uploads" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -257,7 +256,7 @@ func (self UploadsPlugins) Info( Name: "uploads", Doc: "Retrieve information about a flow's uploads.", ArgType: type_map.AddType(scope, &UploadsPluginsArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), Version: 2, } } diff --git a/vql/server/hunts/create.go b/vql/server/hunts/create.go index 0114915e5..b75a47de2 100644 --- a/vql/server/hunts/create.go +++ b/vql/server/hunts/create.go @@ -31,7 +31,6 @@ import ( "www.velocidex.com/golang/velociraptor/paths/artifacts" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/acl_managers" "www.velocidex.com/golang/velociraptor/vql/functions" @@ -303,7 +302,7 @@ func (self ScheduleHuntFunction) Info(scope vfilter.Scope, type_map *vfilter.Typ Name: "hunt", Doc: "Launch an artifact collection against a client.", ArgType: type_map.AddType(scope, &ScheduleHuntFunctionArg{}), - Metadata: vql.VQLMetadata().Permissions(acls.START_HUNT, acls.ORG_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.START_HUNT, acls.ORG_ADMIN).Build(), Version: 3, } } @@ -450,7 +449,7 @@ func (self AddToHuntFunction) Info(scope vfilter.Scope, Name: "hunt_add", Doc: "Assign a client to a hunt.", ArgType: type_map.AddType(scope, &AddToHuntFunctionArg{}), - Metadata: vql.VQLMetadata().Permissions(acls.START_HUNT).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.START_HUNT).Build(), Version: 2, } } diff --git a/vql/server/hunts/delete.go b/vql/server/hunts/delete.go index 5b06e7187..b59675c9c 100644 --- a/vql/server/hunts/delete.go +++ b/vql/server/hunts/delete.go @@ -9,7 +9,6 @@ import ( api_proto "www.velocidex.com/golang/velociraptor/api/proto" "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -171,7 +170,7 @@ func (self DeleteHuntPlugin) Info( Name: "hunt_delete", Doc: "Delete a hunt. ", ArgType: type_map.AddType(scope, &DeleteHuntArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), Version: 2, } } diff --git a/vql/server/hunts/hunts.go b/vql/server/hunts/hunts.go index 09f8d7c6f..bdaa29e1b 100644 --- a/vql/server/hunts/hunts.go +++ b/vql/server/hunts/hunts.go @@ -34,7 +34,6 @@ import ( "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/services/hunt_dispatcher" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -130,7 +129,7 @@ func (self HuntsPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vf Name: "hunts", Doc: "Retrieve the list of hunts.", ArgType: type_map.AddType(scope, &HuntsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } @@ -357,7 +356,7 @@ func (self HuntResultsPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "hunt_results", Doc: "Retrieve the results of a hunt.", ArgType: type_map.AddType(scope, &HuntResultsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), Version: 2, } } @@ -454,7 +453,7 @@ func (self HuntFlowsPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Name: "hunt_flows", Doc: "Retrieve the flows launched by a hunt.", ArgType: type_map.AddType(scope, &HuntFlowsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), Version: 2, } } diff --git a/vql/server/hunts/info.go b/vql/server/hunts/info.go index afffe58a8..3715d599f 100644 --- a/vql/server/hunts/info.go +++ b/vql/server/hunts/info.go @@ -8,7 +8,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -75,7 +74,7 @@ func (self HuntInfoFunction) Info(scope vfilter.Scope, Name: "hunt_info", Doc: "Retrieve the hunt information.", ArgType: type_map.AddType(scope, &HuntInfoFunctionArg{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } diff --git a/vql/server/hunts/stop.go b/vql/server/hunts/stop.go index 61bc072d9..1d802475f 100644 --- a/vql/server/hunts/stop.go +++ b/vql/server/hunts/stop.go @@ -9,7 +9,6 @@ import ( api_proto "www.velocidex.com/golang/velociraptor/api/proto" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -143,7 +142,7 @@ func (self UpdateHuntFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeM Name: "hunt_update", Doc: "Update a hunt.", ArgType: type_map.AddType(scope, &UpdateHuntFunctionArg{}), - Metadata: vql.VQLMetadata().Permissions(acls.START_HUNT).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.START_HUNT).Build(), Version: 2, } } diff --git a/vql/server/inventory.go b/vql/server/inventory.go index 2c9b6d975..2819f1143 100644 --- a/vql/server/inventory.go +++ b/vql/server/inventory.go @@ -14,7 +14,6 @@ import ( "www.velocidex.com/golang/velociraptor/paths" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -139,7 +138,7 @@ func (self *InventoryAddFunction) Info( Name: "inventory_add", Doc: "Add tool to ThirdParty inventory.", ArgType: type_map.AddType(scope, &InventoryAddFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), Version: 2, } } @@ -214,7 +213,7 @@ func (self *InventoryGetFunction) Info( Name: "inventory_get", Doc: "Get tool info from inventory service.", ArgType: type_map.AddType(scope, &InventoryGetFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), Version: 2, } } diff --git a/vql/server/kill.go b/vql/server/kill.go index 44b3e3650..f3bfd0769 100644 --- a/vql/server/kill.go +++ b/vql/server/kill.go @@ -18,7 +18,6 @@ import ( "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -96,7 +95,7 @@ func (self KillClientFunction) Info( Name: "killkillkill", Doc: "Kills the client and forces a restart - this is very aggresive!", ArgType: type_map.AddType(scope, &KillClientFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), } } diff --git a/vql/server/links.go b/vql/server/links.go index c5cf8684e..0f44c755d 100644 --- a/vql/server/links.go +++ b/vql/server/links.go @@ -9,7 +9,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -242,7 +241,7 @@ func (self *LinkToFunction) Info( Name: "link_to", Doc: "Create a url linking to a particular part in the Velociraptor GUI.", ArgType: type_map.AddType(scope, &LinkToFunctionArgs{}), - Metadata: vql.VQLMetadata().Build(), + Metadata: vql_subsystem.VQLMetadata().Build(), Version: 2, } } diff --git a/vql/server/logging.go b/vql/server/logging.go index 7963a39d2..c0d380c14 100644 --- a/vql/server/logging.go +++ b/vql/server/logging.go @@ -11,7 +11,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/logging" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -161,7 +160,7 @@ func (self LogsPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfi // Requires SERVER_ADMIN because this provides access to all // server logs - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), Version: 2, } } diff --git a/vql/server/monitoring/add_monitoring.go b/vql/server/monitoring/add_monitoring.go index cfabac1d0..3c6994bca 100644 --- a/vql/server/monitoring/add_monitoring.go +++ b/vql/server/monitoring/add_monitoring.go @@ -8,7 +8,6 @@ import ( actions_proto "www.velocidex.com/golang/velociraptor/actions/proto" flows_proto "www.velocidex.com/golang/velociraptor/flows/proto" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vql_utils "www.velocidex.com/golang/velociraptor/vql/utils" "www.velocidex.com/golang/vfilter" @@ -135,7 +134,7 @@ func (self AddClientMonitoringFunction) Info(scope vfilter.Scope, type_map *vfil Name: "add_client_monitoring", Doc: "Adds a new artifact to the client monitoring table.", ArgType: type_map.AddType(scope, &AddClientMonitoringFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.COLLECT_CLIENT).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.COLLECT_CLIENT).Build(), } } @@ -295,7 +294,7 @@ func (self AddServerMonitoringFunction) Info(scope vfilter.Scope, type_map *vfil Name: "add_server_monitoring", Doc: "Adds a new artifact to the server monitoring table.", ArgType: type_map.AddType(scope, &AddServerMonitoringFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.COLLECT_SERVER).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.COLLECT_SERVER).Build(), } } diff --git a/vql/server/monitoring/add_monitoring_test.go b/vql/server/monitoring/add_monitoring_test.go index 15218bf2a..8577824a1 100644 --- a/vql/server/monitoring/add_monitoring_test.go +++ b/vql/server/monitoring/add_monitoring_test.go @@ -160,7 +160,7 @@ func (self *MonitoringTestSuite) TestAddServerMonitoring() { log_buffer.Reset() - res = AddServerMonitoringFunction{}.Call( + _ = AddServerMonitoringFunction{}.Call( sub_ctx, scope, ordereddict.NewDict(). Set("artifact", "System.Hunt.Creation"). Set("parameters", ordereddict.NewDict(). diff --git a/vql/server/monitoring/delete.go b/vql/server/monitoring/delete.go index b51e65d8b..1179b018b 100644 --- a/vql/server/monitoring/delete.go +++ b/vql/server/monitoring/delete.go @@ -7,7 +7,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -107,7 +106,7 @@ func (self DeleteEventsPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeM Name: "delete_events", Doc: "Delete all the files that make up a flow.", ArgType: type_map.AddType(scope, &DeleteEventsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.DELETE_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.DELETE_RESULTS).Build(), } } diff --git a/vql/server/monitoring/event_monitoring.go b/vql/server/monitoring/event_monitoring.go index 6b86bcc1b..3c8169dea 100644 --- a/vql/server/monitoring/event_monitoring.go +++ b/vql/server/monitoring/event_monitoring.go @@ -10,7 +10,6 @@ import ( "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/paths" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -64,7 +63,7 @@ func (self GetClientMonitoring) Info(scope vfilter.Scope, type_map *vfilter.Type Name: "get_client_monitoring", Doc: "Retrieve the current client monitoring state.", ArgType: type_map.AddType(scope, &GetClientMonitoringArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } @@ -149,7 +148,7 @@ func (self SetClientMonitoring) Info(scope vfilter.Scope, type_map *vfilter.Type Name: "set_client_monitoring", Doc: "Sets the current client monitoring state.", ArgType: type_map.AddType(scope, &SetClientMonitoringArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.COLLECT_CLIENT).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.COLLECT_CLIENT).Build(), } } @@ -211,7 +210,7 @@ func (self GetServerMonitoring) Info(scope vfilter.Scope, type_map *vfilter.Type Name: "get_server_monitoring", Doc: "Retrieve the current client monitoring state.", ArgType: type_map.AddType(scope, &GetServerMonitoringArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } @@ -295,7 +294,7 @@ func (self SetServerMonitoring) Info(scope vfilter.Scope, type_map *vfilter.Type Name: "set_server_monitoring", Doc: "Sets the current server monitoring state (this function is deprecated, use add_server_monitoring and remove_server_monitoring).", ArgType: type_map.AddType(scope, &SetServerMonitoringArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.COLLECT_SERVER).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.COLLECT_SERVER).Build(), } } diff --git a/vql/server/monitoring/monitoring_logs.go b/vql/server/monitoring/monitoring_logs.go index 1fdc073ed..4a294e598 100644 --- a/vql/server/monitoring/monitoring_logs.go +++ b/vql/server/monitoring/monitoring_logs.go @@ -30,7 +30,6 @@ import ( artifact_paths "www.velocidex.com/golang/velociraptor/paths/artifacts" "www.velocidex.com/golang/velociraptor/result_sets" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/functions" "www.velocidex.com/golang/vfilter" @@ -143,7 +142,7 @@ func (self MonitoringLogsPlugin) Info( Name: "monitoring_logs", Doc: "Retrieve log messages from client event monitoring for the specified client id and artifact", ArgType: type_map.AddType(scope, &MonitoringLogsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } diff --git a/vql/server/monitoring/rm_monitoring.go b/vql/server/monitoring/rm_monitoring.go index d9ebae84e..848c14fcc 100644 --- a/vql/server/monitoring/rm_monitoring.go +++ b/vql/server/monitoring/rm_monitoring.go @@ -6,7 +6,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -78,7 +77,7 @@ func (self RemoveClientMonitoringFunction) Info(scope vfilter.Scope, type_map *v Name: "rm_client_monitoring", Doc: "Remove an artifact from the client monitoring table.", ArgType: type_map.AddType(scope, &RemoveClientMonitoringFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.COLLECT_CLIENT).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.COLLECT_CLIENT).Build(), } } @@ -145,7 +144,7 @@ func (self RemoveServerMonitoringFunction) Info(scope vfilter.Scope, type_map *v Name: "rm_server_monitoring", Doc: "Remove an artifact from the server monitoring table.", ArgType: type_map.AddType(scope, &RemoveServerMonitoringFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.COLLECT_SERVER).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.COLLECT_SERVER).Build(), } } diff --git a/vql/server/notebooks/create.go b/vql/server/notebooks/create.go index 6e10b44c4..2ec45e795 100644 --- a/vql/server/notebooks/create.go +++ b/vql/server/notebooks/create.go @@ -8,7 +8,6 @@ import ( api_proto "www.velocidex.com/golang/velociraptor/api/proto" "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -111,7 +110,7 @@ func (self CreateNotebookFunction) Info(scope vfilter.Scope, type_map *vfilter.T Name: "notebook_create", Doc: "Create a new notebook.", ArgType: type_map.AddType(scope, &CreateNotebookFunctionArg{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.COLLECT_SERVER).Build(), } } diff --git a/vql/server/notebooks/delete.go b/vql/server/notebooks/delete.go index 87b2ed478..f7c7c4907 100644 --- a/vql/server/notebooks/delete.go +++ b/vql/server/notebooks/delete.go @@ -6,7 +6,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -78,7 +77,7 @@ func (self DeleteNotebookPlugin) Info( Name: "notebook_delete", Doc: "Delete a notebook with all its cells. ", ArgType: type_map.AddType(scope, &DeleteNotebookArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), } } diff --git a/vql/server/notebooks/download.go b/vql/server/notebooks/download.go index b6ca2878c..e5e21da21 100644 --- a/vql/server/notebooks/download.go +++ b/vql/server/notebooks/download.go @@ -7,7 +7,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -69,7 +68,7 @@ func (self CreateNotebookDownload) Info(scope vfilter.Scope, type_map *vfilter.T Name: "create_notebook_download", Doc: "Creates a notebook export zip file.", ArgType: type_map.AddType(scope, &CreateNotebookDownloadArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.PREPARE_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.PREPARE_RESULTS).Build(), Version: 2, } } diff --git a/vql/server/notebooks/export.go b/vql/server/notebooks/export.go index d1cbca814..0118392c5 100644 --- a/vql/server/notebooks/export.go +++ b/vql/server/notebooks/export.go @@ -33,7 +33,6 @@ import ( "www.velocidex.com/golang/velociraptor/result_sets" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -118,7 +117,7 @@ func (self ExportNotebookFunction) Info(scope vfilter.Scope, type_map *vfilter.T Name: "notebook_export", Doc: "Exports a notebook to a zip file or HTML.", ArgType: type_map.AddType(scope, &ExportNotebookArg{}), - Metadata: vql.VQLMetadata().Permissions(acls.PREPARE_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.PREPARE_RESULTS).Build(), } } diff --git a/vql/server/notebooks/get.go b/vql/server/notebooks/get.go index 6ef05d24b..b61a16692 100644 --- a/vql/server/notebooks/get.go +++ b/vql/server/notebooks/get.go @@ -8,7 +8,6 @@ import ( api_proto "www.velocidex.com/golang/velociraptor/api/proto" config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -109,7 +108,7 @@ func (self GetNotebookFunction) Info(scope vfilter.Scope, type_map *vfilter.Type Name: "notebook_get", Doc: "Get a notebook.", ArgType: type_map.AddType(scope, &GetNotebookFunctionArg{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.READ_RESULTS).Build(), Version: 2, } diff --git a/vql/server/notebooks/list.go b/vql/server/notebooks/list.go index 6a4f61a6b..81d2a5763 100644 --- a/vql/server/notebooks/list.go +++ b/vql/server/notebooks/list.go @@ -8,7 +8,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -105,7 +104,7 @@ func (self ListNotebookPlugin) Info( Name: "notebooks", Doc: "List all notebooks", ArgType: type_map.AddType(scope, &ListNotebookArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN, acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN, acls.READ_RESULTS).Build(), } } diff --git a/vql/server/notebooks/notebooks_test.go b/vql/server/notebooks/notebooks_test.go index e6e50a3d1..cd5476285 100644 --- a/vql/server/notebooks/notebooks_test.go +++ b/vql/server/notebooks/notebooks_test.go @@ -254,7 +254,7 @@ func (self *NotebookTestSuite) TestCreateNotebook() { // Now export the notebook to html // Export the notebook to html. - res_any = ExportNotebookFunction{}.Call(self.Ctx, scope, + _ = ExportNotebookFunction{}.Call(self.Ctx, scope, ordereddict.NewDict(). Set("notebook_id", notebook.NotebookId). Set("type", "html"). diff --git a/vql/server/notebooks/update.go b/vql/server/notebooks/update.go index c1fa86e49..6453fc248 100644 --- a/vql/server/notebooks/update.go +++ b/vql/server/notebooks/update.go @@ -11,7 +11,6 @@ import ( "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -176,7 +175,7 @@ func (self UpdateNotebookCellFunction) Info(scope vfilter.Scope, type_map *vfilt Name: "notebook_update_cell", Doc: "Update a notebook cell.", ArgType: type_map.AddType(scope, &UpdateNotebookCellFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.COLLECT_SERVER).Build(), Version: 2, } @@ -294,7 +293,7 @@ func (self UpdateNotebookFunction) Info(scope vfilter.Scope, type_map *vfilter.T Name: "notebook_update", Doc: "Update a notebook metadata.", ArgType: type_map.AddType(scope, &UpdateNotebookFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.COLLECT_SERVER).Build(), } } diff --git a/vql/server/orgs/create.go b/vql/server/orgs/create.go index 973ba2c4b..db02749f0 100644 --- a/vql/server/orgs/create.go +++ b/vql/server/orgs/create.go @@ -7,7 +7,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -89,7 +88,7 @@ func (self OrgCreateFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "org_create", Doc: "Creates a new organization.", ArgType: type_map.AddType(scope, &OrgCreateFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.ORG_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.ORG_ADMIN).Build(), } } diff --git a/vql/server/orgs/delete.go b/vql/server/orgs/delete.go index c6a4ffdba..102134206 100644 --- a/vql/server/orgs/delete.go +++ b/vql/server/orgs/delete.go @@ -7,7 +7,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/logging" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -84,7 +83,7 @@ func (self OrgDeleteFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "org_delete", Doc: "Deletes an Org from the server.", ArgType: type_map.AddType(scope, &OrgDeleteFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.ORG_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.ORG_ADMIN).Build(), Version: 2, } } diff --git a/vql/server/repository.go b/vql/server/repository.go index c3c7347f3..40f5045ec 100644 --- a/vql/server/repository.go +++ b/vql/server/repository.go @@ -10,7 +10,6 @@ import ( artifacts_proto "www.velocidex.com/golang/velociraptor/artifacts/proto" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vql_utils "www.velocidex.com/golang/velociraptor/vql/utils" "www.velocidex.com/golang/vfilter" @@ -179,7 +178,7 @@ func (self ArtifactSetFunction) Info( Name: "artifact_set", Doc: "Sets an artifact into the global repository.", ArgType: type_map.AddType(scope, &ArtifactSetFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.ARTIFACT_WRITER, acls.SERVER_ARTIFACT_WRITER).Build(), Version: 2, } @@ -263,7 +262,7 @@ func (self ArtifactDeleteFunction) Info( Name: "artifact_delete", Doc: "Deletes an artifact from the global repository.", ArgType: type_map.AddType(scope, &ArtifactDeleteFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.ARTIFACT_WRITER, acls.SERVER_ARTIFACT_WRITER).Build(), } } @@ -394,7 +393,7 @@ func (self ArtifactsPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Name: "artifact_definitions", Doc: "Dump artifact definitions.", ArgType: type_map.AddType(scope, &ArtifactsPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } @@ -503,7 +502,7 @@ func (self ArtifactSetMetadataFunction) Info( Name: "artifact_set_metadata", Doc: "Sets metadata about the artifact.", ArgType: type_map.AddType(scope, &ArtifactSetMetadataFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.ARTIFACT_WRITER, acls.SERVER_ARTIFACT_WRITER).Build(), Version: 2, } @@ -556,7 +555,7 @@ func (self *ArtifactImportFunction) Call(ctx context.Context, // supposed to actually return rows (they should be only LET // statements). for _, vql := range vqls { - for _ = range vql.Eval(ctx, scope) { + for range vql.Eval(ctx, scope) { } } } @@ -570,7 +569,7 @@ func (self ArtifactImportFunction) Info( Name: "import", Doc: "Imports an artifact into the current scope. This only works in notebooks!", ArgType: type_map.AddType(scope, &ArtifactImportFunctionArgs{}), - Metadata: vql.VQLMetadata().Build(), + Metadata: vql_subsystem.VQLMetadata().Build(), } } diff --git a/vql/server/secrets/add.go b/vql/server/secrets/add.go index 6bc9ad571..a11639b43 100644 --- a/vql/server/secrets/add.go +++ b/vql/server/secrets/add.go @@ -6,7 +6,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -70,7 +69,7 @@ func (self AddSecretFunction) Info( Name: "secret_add", Doc: "Add a new secret", ArgType: type_map.AddType(scope, &AddSecretFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), } } diff --git a/vql/server/secrets/grant.go b/vql/server/secrets/grant.go index 6eb250451..e0548d4e2 100644 --- a/vql/server/secrets/grant.go +++ b/vql/server/secrets/grant.go @@ -7,7 +7,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" api_proto "www.velocidex.com/golang/velociraptor/api/proto" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -85,7 +84,7 @@ func (self ModifySecretFunction) Info( Name: "secret_modify", Doc: "Modify the secret", ArgType: type_map.AddType(scope, &ModifySecretFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.SERVER_ADMIN).Build(), Version: 2, } } diff --git a/vql/server/secrets/list.go b/vql/server/secrets/list.go index 2f12c8ba8..57f8cecc9 100644 --- a/vql/server/secrets/list.go +++ b/vql/server/secrets/list.go @@ -48,6 +48,8 @@ func (self SecretsPlugin) Call( org_config_obj, ok := vql_subsystem.GetServerConfig(scope) if !ok { + scope.Log("secrets: Command can only run on the server") + return } secrets, err := services.GetSecretsService(org_config_obj) diff --git a/vql/server/splunk.go b/vql/server/splunk.go index d1b897b11..d98b8845a 100644 --- a/vql/server/splunk.go +++ b/vql/server/splunk.go @@ -36,7 +36,6 @@ import ( "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/functions" "www.velocidex.com/golang/velociraptor/vql/networking" @@ -423,7 +422,7 @@ func (self _SplunkPlugin) Info( Name: "splunk_upload", Doc: "Upload rows to splunk.", ArgType: type_map.AddType(scope, &_SplunkPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.NETWORK).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.NETWORK).Build(), Version: 2, } } diff --git a/vql/server/timelines/create.go b/vql/server/timelines/create.go index 09f99afce..52363bae4 100644 --- a/vql/server/timelines/create.go +++ b/vql/server/timelines/create.go @@ -8,7 +8,6 @@ import ( "www.velocidex.com/golang/velociraptor/paths/artifacts" "www.velocidex.com/golang/velociraptor/services" timelines_proto "www.velocidex.com/golang/velociraptor/timelines/proto" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -82,7 +81,7 @@ func (self *AddTimelineFunction) Call(ctx context.Context, for event := range arg.Query.Eval(sub_ctx, scope) { select { case <-ctx.Done(): - break + return case in <- event: } @@ -124,7 +123,7 @@ func (self AddTimelineFunction) Info( Name: "timeline_add", Doc: "Add a new query to a timeline.", ArgType: type_map.AddType(scope, &AddTimelineFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), Version: 2, } } diff --git a/vql/server/timelines/delete.go b/vql/server/timelines/delete.go index 8d8d2b0bf..1820d1466 100644 --- a/vql/server/timelines/delete.go +++ b/vql/server/timelines/delete.go @@ -7,7 +7,6 @@ import ( "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/paths/artifacts" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -94,7 +93,7 @@ func (self DeleteTimelineFunction) Info( Name: "timeline_delete", Doc: "Delete a super timeline.", ArgType: type_map.AddType(scope, &DeleteTimelineFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.NOTEBOOK_EDITOR).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.NOTEBOOK_EDITOR).Build(), Version: 2, } } diff --git a/vql/server/timelines/reader.go b/vql/server/timelines/reader.go index e8e90ceaa..a81922fa7 100644 --- a/vql/server/timelines/reader.go +++ b/vql/server/timelines/reader.go @@ -9,7 +9,6 @@ import ( "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/functions" "www.velocidex.com/golang/vfilter" @@ -114,7 +113,7 @@ func (self TimelinePlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Name: "timeline", Doc: "Read a timeline. You can create a timeline with the timeline_add() function", ArgType: type_map.AddType(scope, &TimelinePluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), Version: 2, } } @@ -183,10 +182,6 @@ func (self TimelineListPlugin) Call( } for _, item := range timelines { - timelines := []string{} - for _, t := range item.Timelines { - timelines = append(timelines, t.Id) - } select { case <-ctx.Done(): return @@ -203,7 +198,7 @@ func (self TimelineListPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeM Name: "timelines", Doc: "List all timelines in a notebook", ArgType: type_map.AddType(scope, &TimelineListPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.READ_RESULTS).Build(), } } diff --git a/vql/sigma/evaluator/correlation.go b/vql/sigma/evaluator/correlation.go index 36ec7fc78..fdbd491a6 100644 --- a/vql/sigma/evaluator/correlation.go +++ b/vql/sigma/evaluator/correlation.go @@ -147,7 +147,7 @@ func (self *valueCount) addEvent( } field := utils.ToString(field_any[0]) - count, _ := self.value_map[field] + count := self.value_map[field] self.value_map[field] = count + 1 } @@ -161,7 +161,7 @@ func (self *valueCount) evictEvent( } field := utils.ToString(field_any[0]) - count, _ := self.value_map[field] + count := self.value_map[field] self.value_map[field] = count - 1 if count-1 <= 0 { delete(self.value_map, field) @@ -194,7 +194,7 @@ func (self *temporal) addEvent( name = rule.ID } - count, _ := self.value_map[name] + count := self.value_map[name] self.value_map[name] = count + 1 } @@ -206,7 +206,7 @@ func (self *temporal) evictEvent( name = rule.ID } - count, _ := self.value_map[name] + count := self.value_map[name] self.value_map[name] = count - 1 if count-1 <= 0 { delete(self.value_map, name) diff --git a/vql/sigma/evaluator/modifiers/expand.go b/vql/sigma/evaluator/modifiers/expand.go new file mode 100644 index 000000000..4c466f21f --- /dev/null +++ b/vql/sigma/evaluator/modifiers/expand.go @@ -0,0 +1,31 @@ +package modifiers + +import ( + "context" + "os" + + "www.velocidex.com/golang/velociraptor/utils" + "www.velocidex.com/golang/velociraptor/vql/common" + "www.velocidex.com/golang/vfilter/types" +) + +type expandModifier struct{} + +func (expandModifier) Modify(ctx context.Context, scope types.Scope, + value []any, expected []any) (new_value []any, new_expected []any, err error) { + + for _, e := range expected { + expected_str := coerceString(e) + + // Skip blocked env strings. + if utils.InString(common.ShadowedEnv, expected_str) { + continue + } + + expected_str = os.Getenv(expected_str) + if expected_str != "" { + new_expected = append(new_expected, expected_str) + } + } + return value, new_expected, nil +} diff --git a/vql/sigma/evaluator/modifiers/modifiers.go b/vql/sigma/evaluator/modifiers/modifiers.go index 9c2334ba0..54b635957 100644 --- a/vql/sigma/evaluator/modifiers/modifiers.go +++ b/vql/sigma/evaluator/modifiers/modifiers.go @@ -43,6 +43,7 @@ var ValueModifiers = map[string]ValueModifier{ "windash": windash{}, "base64": b64{}, "base64offset": b64offset{}, + "expand": expandModifier{}, "cidr": AnyComparator{cidr{}}, "wide": wide{}, "gt": AnyComparator{gt{}}, @@ -129,7 +130,7 @@ func (startswith) Matches( type windash struct{} -var cmdflagRegex = regexp.MustCompile("\\s-([a-zA-Z0-9])") +var cmdflagRegex = regexp.MustCompile(`\s-([a-zA-Z0-9])`) func (windash) Modify(ctx context.Context, scope types.Scope, value []any, expected []any) (new_value []any, new_expected []any, err error) { diff --git a/vql/sigma/sigma_test.go b/vql/sigma/sigma_test.go index 597fe98e7..95ff58a20 100644 --- a/vql/sigma/sigma_test.go +++ b/vql/sigma/sigma_test.go @@ -740,7 +740,7 @@ func (self *SigmaTestSuite) TestSigmaModifiers() { if test_case.log_regex != "" { assert.Regexp(self.T(), test_case.log_regex, - string(log_collector.Bytes())) + log_collector.String()) } os.Stderr.Write(log_collector.Bytes()) @@ -1124,7 +1124,7 @@ func (self *SigmaTestSuite) TestSigmaCorrelations() { if test_case.log_regex != "" { assert.Regexp(self.T(), test_case.log_regex, - string(log_collector.Bytes())) + log_collector.String()) } os.Stderr.Write(log_collector.Bytes()) diff --git a/vql/sorter/mergesort.go b/vql/sorter/mergesort.go index 0770aac22..5d2cd2fcf 100644 --- a/vql/sorter/mergesort.go +++ b/vql/sorter/mergesort.go @@ -10,7 +10,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/utils/tempfile" utils_tempfile "www.velocidex.com/golang/velociraptor/utils/tempfile" "www.velocidex.com/golang/vfilter" vsort "www.velocidex.com/golang/vfilter/sort" @@ -298,7 +297,7 @@ func (self *dataFile) prepareFile(scope vfilter.Scope, items []vfilter.Row) { go func() { defer self.mu.Unlock() - tmpfile, err := tempfile.TempFile("vql") + tmpfile, err := utils_tempfile.TempFile("vql") if err != nil { scope.Log("Unable to create tempfile: %v", err) return diff --git a/vql/sorter/mergesort_test.go b/vql/sorter/mergesort_test.go index 4962a07ea..9566dc410 100644 --- a/vql/sorter/mergesort_test.go +++ b/vql/sorter/mergesort_test.go @@ -32,9 +32,10 @@ func TestDataFile(t *testing.T) { // Check the content of the backing file. fd, err := os.Open(data_file.fd.Name()) - defer fd.Close() assert.NoError(t, err) + defer fd.Close() + serialized, err := ioutil.ReadAll(fd) assert.NoError(t, err) diff --git a/vql/tools/atexit.go b/vql/tools/atexit.go index aeea8981d..164c3dca6 100644 --- a/vql/tools/atexit.go +++ b/vql/tools/atexit.go @@ -58,7 +58,7 @@ func (self AtExitFunction) Call( time.Duration(timeout)*time.Second) defer cancel() - for _ = range t.Eval(ctx, subscope) { + for range t.Eval(ctx, subscope) { } }) if err != nil { diff --git a/vql/tools/collector/collector.go b/vql/tools/collector/collector.go index 68178625c..9a7da5c2e 100644 --- a/vql/tools/collector/collector.go +++ b/vql/tools/collector/collector.go @@ -20,7 +20,6 @@ import ( "www.velocidex.com/golang/velociraptor/reporting" "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/functions" "www.velocidex.com/golang/vfilter" @@ -189,7 +188,7 @@ func (self CollectPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) * Name: "collect", Doc: "Collect artifacts into a local file.", ArgType: type_map.AddType(scope, &CollectPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), Version: 2, } } diff --git a/vql/tools/collector/collector_manager.go b/vql/tools/collector/collector_manager.go index bcb495385..e4fe2ea63 100644 --- a/vql/tools/collector/collector_manager.go +++ b/vql/tools/collector/collector_manager.go @@ -472,7 +472,7 @@ func (self *collectionManager) SetTimeout(ns float64) { case <-time.After(time.Duration(ns) * time.Nanosecond): self.scope.Log("collect: Timeout Error: Collection timed out after %v", - time.Now().Sub(start)) + time.Since(start)) // Cancel the main context. self.cancel() } diff --git a/vql/tools/collector/collector_test.go b/vql/tools/collector/collector_test.go index 10b8e7351..131f958a6 100644 --- a/vql/tools/collector/collector_test.go +++ b/vql/tools/collector/collector_test.go @@ -17,7 +17,6 @@ import ( "www.velocidex.com/golang/velociraptor/file_store" "www.velocidex.com/golang/velociraptor/file_store/api" "www.velocidex.com/golang/velociraptor/file_store/test_utils" - "www.velocidex.com/golang/velociraptor/flows/proto" flows_proto "www.velocidex.com/golang/velociraptor/flows/proto" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/logging" @@ -257,7 +256,7 @@ func (self *TestSuite) TestCollectionWithDirectories() { scope = self.mockInfo(scope) - for _ = range (collector.CollectPlugin{}).Call(self.Ctx, + for range (collector.CollectPlugin{}).Call(self.Ctx, scope, ordereddict.NewDict(). Set("artifacts", []string{"Custom.Uploader"}). Set("args", ordereddict.NewDict(). @@ -367,6 +366,8 @@ func (self *TestSuite) TestCollectionWithArtifacts() { results = append(results, row) } + _ = results + zip_contents, err := openZipFile(output_file.Name()) assert.NoError(self.T(), err) @@ -408,6 +409,8 @@ func (self *TestSuite) TestCollectionWithTypes() { results = append(results, row) } + _ = results + zip_contents, err := openZipFile(output_file.Name()) assert.NoError(self.T(), err) @@ -448,6 +451,8 @@ func (self *TestSuite) TestCollectionWithUpload() { results = append(results, row) } + _ = results + zip_contents, err := openZipFile(output_file.Name()) assert.NoError(self.T(), err) @@ -462,7 +467,7 @@ func (self *TestSuite) TestCollectionWithUpload() { Set("client_id", "C.30b949dd33e1330a"). Set("hostname", "MyNewHost"). Set("filename", output_file.Name())) - context, ok := result.(*proto.ArtifactCollectorContext) + context, ok := result.(*flows_proto.ArtifactCollectorContext) assert.True(self.T(), ok) golden.Set("artifacts_with_results", context.ArtifactsWithResults) @@ -471,7 +476,7 @@ func (self *TestSuite) TestCollectionWithUpload() { flow_path_manager := paths.NewFlowPathManager( "C.30b949dd33e1330a", "F.1234") - data, err := readImportedFile(self.Ctx, scope, self.ConfigObj, + data, err := readImportedFile(scope, self.ConfigObj, flow_path_manager.UploadMetadata()) assert.NoError(self.T(), err) @@ -484,7 +489,7 @@ func (self *TestSuite) TestCollectionWithUpload() { json.MustMarshalIndent(golden)) } -func readImportedFile(ctx context.Context, +func readImportedFile( scope vfilter.Scope, config_obj *config_proto.Config, src api.FSPathSpec) (string, error) { @@ -495,7 +500,7 @@ func readImportedFile(ctx context.Context, return "", err } - data, err := ioutil.ReadAll(reader) + data, err := io.ReadAll(reader) if err != nil && err != io.EOF { return "", err } diff --git a/vql/tools/collector/import.go b/vql/tools/collector/import.go index 05e6f054e..31c85d82d 100644 --- a/vql/tools/collector/import.go +++ b/vql/tools/collector/import.go @@ -29,7 +29,6 @@ import ( "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/services/hunt_dispatcher" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/server/clients" "www.velocidex.com/golang/vfilter" @@ -531,48 +530,6 @@ func (self ImportCollectionFunction) getClientIdFromHostnameOrCollection( ctx, scope, config_obj, client_id, hostname) } -func (self ImportCollectionFunction) checkClientIdExists( - ctx context.Context, - config_obj *config_proto.Config, - scope vfilter.Scope, - client_info *services.ClientInfo) error { - - // This is a well known client - if client_info.ClientId == constants.VELOCIRAPTOR_SERVER_CLIENT_ID { - return nil - } - - client_info_manager, err := services.GetClientInfoManager(config_obj) - if err != nil { - return err - } - - _, err = client_info_manager.Get(ctx, client_info.ClientId) - if err == nil { - return nil - } - - scope.Log("Info: ClientId %v (%v) not found, creating a new client", - client_info.ClientId, client_info.Hostname) - - // If we made it here, client id doesn't exist, so then we can - // create a new client - res := clients.NewClientFunction{}.Call(ctx, scope, ordereddict.NewDict(). - Set("client_id", client_info.ClientId). - Set("first_seen_at", utils.GetTime().Now()). - Set("last_seen_at", utils.GetTime().Now()). - Set("hostname", client_info.Hostname). - Set("labels", client_info.Labels). - Set("os", client_info.System). - Set("mac_addresses", client_info.MacAddresses)) - - if utils.IsNil(res) { - return errors.New("Failed to create new client.") - } - - return nil -} - func (self ImportCollectionFunction) copyResultSet( ctx context.Context, config_obj *config_proto.Config, @@ -714,11 +671,12 @@ func (self ImportCollectionFunction) copyFile( func (self ImportCollectionFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "import_collection", - Doc: "Imports an offline collection zip file (experimental).", - ArgType: type_map.AddType(scope, &ImportCollectionFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.COLLECT_SERVER, acls.FILESYSTEM_READ).Build(), - Version: 2, + Name: "import_collection", + Doc: "Imports an offline collection zip file (experimental).", + ArgType: type_map.AddType(scope, &ImportCollectionFunctionArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.COLLECT_SERVER, acls.FILESYSTEM_READ).Build(), + Version: 2, } } diff --git a/vql/tools/collector/import_hunt_test.go b/vql/tools/collector/import_hunt_test.go index e55f641a2..4412459f7 100644 --- a/vql/tools/collector/import_hunt_test.go +++ b/vql/tools/collector/import_hunt_test.go @@ -172,7 +172,7 @@ func (self *TestSuite) TestCreateAndImportHunt() { Set("Original Flow", self.snapshotHuntFlow()) // Now delete the old hunt - for _ = range (&hunts.DeleteHuntPlugin{}).Call(ctx, scope, + for range (&hunts.DeleteHuntPlugin{}).Call(ctx, scope, ordereddict.NewDict().Set("hunt_id", hunt.HuntId). Set("really_do_it", true)) { } diff --git a/vql/tools/collector/import_test.go b/vql/tools/collector/import_test.go index ecfc8c54d..d41aaa8c4 100644 --- a/vql/tools/collector/import_test.go +++ b/vql/tools/collector/import_test.go @@ -12,7 +12,6 @@ import ( "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/file_store/path_specs" "www.velocidex.com/golang/velociraptor/file_store/test_utils" - "www.velocidex.com/golang/velociraptor/flows/proto" flows_proto "www.velocidex.com/golang/velociraptor/flows/proto" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/logging" @@ -148,7 +147,7 @@ func (self *TestSuite) TestCreateAndImportCollection() { Set("Original Flow", self.snapshotHuntFlow()) // Now delete the old flow - for _ = range (&flows.DeleteFlowPlugin{}).Call(ctx, scope, + for range (&flows.DeleteFlowPlugin{}).Call(ctx, scope, ordereddict.NewDict(). Set("client_id", client_id). Set("flow_id", flow_id). @@ -208,7 +207,7 @@ func (self *TestSuite) TestImportCollectionFromFixture() { // with the TestHost hostname in the host.json file. Set("hostname", "MyNewHost"). Set("filename", import_file_path)) - context, ok := result.(*proto.ArtifactCollectorContext) + context, ok := result.(*flows_proto.ArtifactCollectorContext) assert.True(self.T(), ok) // Check the import was successful. @@ -241,7 +240,7 @@ func (self *TestSuite) TestImportCollectionFromFixture() { Set("client_id", "auto"). Set("hostname", "MyNewHost"). Set("filename", import_file_path)) - context2, ok := result2.(*proto.ArtifactCollectorContext) + context2, ok := result2.(*flows_proto.ArtifactCollectorContext) assert.True(self.T(), ok) // The new flow was created on the same client id as before. @@ -254,7 +253,7 @@ func (self *TestSuite) TestImportCollectionFromFixture() { ordereddict.NewDict(). Set("client_id", spec_client_id). Set("filename", import_file_path)) - context3, ok := result3.(*proto.ArtifactCollectorContext) + context3, ok := result3.(*flows_proto.ArtifactCollectorContext) assert.True(self.T(), ok) assert.Equal(self.T(), context3.ClientId, spec_client_id) @@ -293,7 +292,7 @@ func (self *TestSuite) TestImportX509CollectionFromFixture() { Set("client_id", "auto"). Set("hostname", "MyNewHost"). Set("filename", import_file_path)) - context, ok := result.(*proto.ArtifactCollectorContext) + context, ok := result.(*flows_proto.ArtifactCollectorContext) assert.True(self.T(), ok) assert.Equal(self.T(), []string{"Demo.Plugins.GUI"}, diff --git a/vql/tools/index/index.go b/vql/tools/index/index.go index 95b7175df..349248a45 100644 --- a/vql/tools/index/index.go +++ b/vql/tools/index/index.go @@ -14,7 +14,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors/file" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -235,7 +234,7 @@ func (self IndexPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vf Name: "index", Doc: "Create a local index from a query.", ArgType: type_map.AddType(scope, &IndexPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), Version: 2, } } @@ -353,7 +352,7 @@ func (self IndexSearchPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "index_search", Doc: "Search a previously created index.", ArgType: type_map.AddType(scope, &IndexSearchPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), Version: 1, } } diff --git a/vql/tools/logscale/logscale.go b/vql/tools/logscale/logscale.go index 837c75f43..a606eb706 100644 --- a/vql/tools/logscale/logscale.go +++ b/vql/tools/logscale/logscale.go @@ -508,16 +508,13 @@ func (self *LogScaleQueue) postEvents(ctx context.Context, scope vfilter.Scope, } else { _, err = io.Copy(body, resp.Body) if err != nil { - if resp != nil { - resp.Body.Close() - } + resp.Body.Close() + self.Log(scope, "copy of response failed: %v, %v", resp.Status, err) return err } self.Log(scope, "request failed: %v, %s", resp.Status, body) - if resp != nil { - resp.Body.Close() - } + resp.Body.Close() } retry, _ := self.shouldRetryRequest(ctx, resp, err) diff --git a/vql/tools/logscale/logscale_test.go b/vql/tools/logscale/logscale_test.go index f797c07c9..6f57a7328 100644 --- a/vql/tools/logscale/logscale_test.go +++ b/vql/tools/logscale/logscale_test.go @@ -39,7 +39,6 @@ var ( validUrl = "https://cloud.community.humio.com/api" validAuthToken = "valid-ingest-token" validWorkerCount = 1 - invalidWorkerCount = -11 testTimestampStringTZ = "2023-04-05T13:36:51-04:00" testTimestampUNIX = uint64(1680716211) // json ints are uint64 testTimestamp = "2023-04-05T17:36:51Z" @@ -56,12 +55,7 @@ type LogScaleQueueTestSuite struct { scope vfilter.Scope ctx context.Context - repoManager services.RepositoryManager - timestamp time.Time - clients []string - - server *httptest.Server - start time.Time + start time.Time restoreClock func() wantConnRefused bool @@ -803,7 +797,7 @@ func (self *LogScaleQueueTestSuite) TestQueueEvents_Queued() { require.Equal(self.T(), len(rows), int(atomic.LoadInt64(&self.queue.currentQueueDepth))) // Nothing is clearing the queue, so clear it so we don't get stuck during close - for _, _ = range rows { + for range rows { <-self.queue.listener.Output() } } @@ -1063,6 +1057,7 @@ func (self *LogScaleQueueTestSuite) TestProcessEvents_ShutdownWhileFailing() { self.queue.endpointUrl = "http://localhost:1" + apiEndpoint wg.Done() }) + assert.NoError(self.T(), err) err = self.queue.Open(self.ctx, self.scope, server.URL, validAuthToken) require.NoError(self.T(), err) @@ -1106,6 +1101,7 @@ func (self *LogScaleQueueTestSuite) TestProcessEvents_ShutdownAfterRecovery() { self.updateEndpointUrl(server) }) + assert.NoError(self.T(), err) err = self.queue.addDebugCallback(26, func(count int) { server.Close() @@ -1113,10 +1109,12 @@ func (self *LogScaleQueueTestSuite) TestProcessEvents_ShutdownAfterRecovery() { self.updateEndpointUrl(server) }) + assert.NoError(self.T(), err) err = self.queue.addDebugCallback(99, func(count int) { wg1.Done() }) + assert.NoError(self.T(), err) err = self.queue.Open(self.ctx, self.scope, server.URL, validAuthToken) require.NoError(self.T(), err) @@ -1160,6 +1158,7 @@ func (self *LogScaleQueueTestSuite) TestProcessEvents_4xx() { self.updateEndpointUrl(server) }) + assert.NoError(self.T(), err) err = self.queue.addDebugCallback(30, func(count int) { server.Close() @@ -1167,10 +1166,12 @@ func (self *LogScaleQueueTestSuite) TestProcessEvents_4xx() { self.updateEndpointUrl(server) }) + assert.NoError(self.T(), err) err = self.queue.addDebugCallback(99, func(count int) { wg1.Done() }) + assert.NoError(self.T(), err) err = self.queue.Open(self.ctx, self.scope, server.URL, validAuthToken) require.NoError(self.T(), err) diff --git a/vql/tools/logscale/plugin.go b/vql/tools/logscale/plugin.go index 46884841d..6c67ec891 100644 --- a/vql/tools/logscale/plugin.go +++ b/vql/tools/logscale/plugin.go @@ -10,7 +10,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/networking" vfilter "www.velocidex.com/golang/vfilter" @@ -264,7 +263,7 @@ func (self logscalePlugin) Info( Doc: "Upload rows to LogScale ingestion server.", ArgType: type_map.AddType(scope, &logscalePluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.NETWORK).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.NETWORK).Build(), } } diff --git a/vql/tools/lru/cache.go b/vql/tools/lru/cache.go index e0c2b192e..f40662145 100644 --- a/vql/tools/lru/cache.go +++ b/vql/tools/lru/cache.go @@ -6,7 +6,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -52,7 +51,7 @@ func (self _CacheFunc) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfi Name: "cache", Doc: "Creates a cache object", ArgType: type_map.AddType(scope, &_CacheFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_WRITE).Build(), Version: 2, } } diff --git a/vql/tools/magic.go b/vql/tools/magic.go index 65fb3b0aa..1c1035d90 100644 --- a/vql/tools/magic.go +++ b/vql/tools/magic.go @@ -13,7 +13,6 @@ import ( "www.velocidex.com/golang/velociraptor/accessors" "www.velocidex.com/golang/velociraptor/acls" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -144,7 +143,7 @@ func (self MagicFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) * Doc: "Identify a file using magic rules.", ArgType: type_map.AddType(scope, &MagicFunctionArgs{}), Version: 1, - Metadata: vql.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.FILESYSTEM_READ).Build(), } } diff --git a/vql/tools/packaging/package.go b/vql/tools/packaging/package.go index c0067b77c..4aa42b251 100644 --- a/vql/tools/packaging/package.go +++ b/vql/tools/packaging/package.go @@ -17,7 +17,6 @@ import ( config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/json" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/tools" "www.velocidex.com/golang/vfilter" @@ -355,7 +354,7 @@ func (self CreatePackagePlugin) Info(scope vfilter.Scope, type_map *vfilter.Type Name: self.name, Doc: self.description, ArgType: type_map.AddType(scope, &CreatePackageArgs{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.COLLECT_SERVER, acls.FILESYSTEM_WRITE, acls.SERVER_ADMIN).Build(), } } diff --git a/vql/tools/process/dummy.go b/vql/tools/process/dummy.go index 24bc4af91..fcb6c9938 100644 --- a/vql/tools/process/dummy.go +++ b/vql/tools/process/dummy.go @@ -26,8 +26,6 @@ type DummyProcessTracker struct { mu sync.Mutex lookup map[string]*ProcessEntry age time.Time - - max_items int64 } // Refresh the local cache to avoid having to make too many pslist calls. diff --git a/vql/tools/process/mock_test.go b/vql/tools/process/mock_test.go index 9a349363d..5dedddefd 100644 --- a/vql/tools/process/mock_test.go +++ b/vql/tools/process/mock_test.go @@ -46,9 +46,7 @@ func (self _MockPslist) Call( w := plugin_responses_sync mu.Unlock() - select { - case <-w: - } + <-w go func() { defer close(output_chan) diff --git a/vql/tools/process/tracker_test.go b/vql/tools/process/tracker_test.go index 8aec38831..ffbe4f437 100644 --- a/vql/tools/process/tracker_test.go +++ b/vql/tools/process/tracker_test.go @@ -279,11 +279,14 @@ func (self *ProcessTrackerTestSuite) runTC( scope := manager.BuildScope(builder) rows := make([]*ordereddict.Dict, 0) mvql, err := vfilter.MultiParse(test_case.Query) + assert.NoError(self.T(), err) + for _, vql := range mvql { for row := range vql.Eval(ctx, scope) { rows = append(rows, vfilter.RowToDict(ctx, scope, row)) } } + scope.Close() return rows @@ -360,6 +363,8 @@ FROM scope() scope := manager.BuildScope(builder) mvql, err := vfilter.MultiParse(query) + assert.NoError(self.T(), err) + for _, vql := range mvql { for row := range vql.Eval(self.Ctx, scope) { golden += json.StringIndent(row) diff --git a/vql/tools/query.go b/vql/tools/query.go index a90af84fa..7ae873729 100644 --- a/vql/tools/query.go +++ b/vql/tools/query.go @@ -9,7 +9,6 @@ import ( "www.velocidex.com/golang/velociraptor/actions" "www.velocidex.com/golang/velociraptor/executor/throttler" "www.velocidex.com/golang/velociraptor/services" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/acl_managers" "www.velocidex.com/golang/vfilter" @@ -268,7 +267,7 @@ func (self QueryPlugin) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vf Name: "query", Doc: "Evaluate a VQL query.", ArgType: type_map.AddType(scope, &QueryPluginArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.IMPERSONATION).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.IMPERSONATION).Build(), Version: 2, } } diff --git a/vql/tools/rekey.go b/vql/tools/rekey.go index 626b00fa5..4b136bb8d 100644 --- a/vql/tools/rekey.go +++ b/vql/tools/rekey.go @@ -10,7 +10,6 @@ import ( config_proto "www.velocidex.com/golang/velociraptor/config/proto" crypto_utils "www.velocidex.com/golang/velociraptor/crypto/utils" "www.velocidex.com/golang/velociraptor/services/writeback" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -105,7 +104,7 @@ func (self RekeyFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) * Name: "rekey", Doc: "Causes the client to rekey and regenerate a new client ID. DANGEROUS! This will change the client's identity and it will appear as a new client in the GUI.", ArgType: type_map.AddType(scope, &RekeyFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.EXECVE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.EXECVE).Build(), } } diff --git a/vql/tools/repack.go b/vql/tools/repack.go index 4ce422db3..60f94a905 100644 --- a/vql/tools/repack.go +++ b/vql/tools/repack.go @@ -35,7 +35,6 @@ import ( "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/third_party/zip" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -315,6 +314,7 @@ func resizeEmbeddedSize( // size so we can just increase it to the required size. if utils.BytesEqual(exe_bytes[:len(generic_re)], generic_re) { resize_bytes := make([]byte, len(exe_bytes)+required_size) + //lint:file-ignore S1001 - should use copy(to, from) for i := 0; i < len(exe_bytes); i++ { resize_bytes[i] = exe_bytes[i] } @@ -606,11 +606,12 @@ func appendPayload(exe_bytes []byte, payload []byte) []byte { func (self RepackFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { return &vfilter.FunctionInfo{ - Name: "repack", - Doc: "Repack and upload a repacked binary or MSI to the server.", - ArgType: type_map.AddType(scope, &RepackFunctionArgs{}), - Metadata: vql.VQLMetadata().Permissions(acls.COLLECT_SERVER, acls.FILESYSTEM_WRITE).Build(), - Version: 2, + Name: "repack", + Doc: "Repack and upload a repacked binary or MSI to the server.", + ArgType: type_map.AddType(scope, &RepackFunctionArgs{}), + Metadata: vql_subsystem.VQLMetadata().Permissions( + acls.COLLECT_SERVER, acls.FILESYSTEM_WRITE).Build(), + Version: 2, } } diff --git a/vql/tools/rsyslog/connect.go b/vql/tools/rsyslog/connect.go index b14340471..3f95c2572 100644 --- a/vql/tools/rsyslog/connect.go +++ b/vql/tools/rsyslog/connect.go @@ -42,18 +42,20 @@ func (self *Logger) Connect() (err error) { KeepAlive: time.Second * 60, } self.netConn, err = tls.DialWithDialer(dialer, "tcp", self.raddr, tls_config) + if err != nil { + return err + } case "udp", "tcp": self.netConn, err = net.DialTimeout(self.network, self.raddr, self.connectTimeout) + if err != nil { + return err + } default: return fmt.Errorf("Network protocol %s not supported", self.network) } - if err != nil { - return err - } - // Add reference to this connection which should be closed. files.Add(self.raddr) diff --git a/vql/tools/rsyslog/rsyslog.go b/vql/tools/rsyslog/rsyslog.go index e943b2963..d341a9010 100644 --- a/vql/tools/rsyslog/rsyslog.go +++ b/vql/tools/rsyslog/rsyslog.go @@ -14,7 +14,6 @@ import ( config_proto "www.velocidex.com/golang/velociraptor/config/proto" "www.velocidex.com/golang/velociraptor/constants" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -137,7 +136,7 @@ func (self RsyslogFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) Doc: "Send an RFC5424 compliant remote syslog message.", ArgType: type_map.AddType(scope, &RsyslogFunctionArgs{}), Version: 2, - Metadata: vql.VQLMetadata().Permissions(acls.NETWORK).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.NETWORK).Build(), } } diff --git a/vql/tools/s3_upload_minio.go b/vql/tools/s3_upload_minio.go index fea32495a..ddfb24b08 100644 --- a/vql/tools/s3_upload_minio.go +++ b/vql/tools/s3_upload_minio.go @@ -22,7 +22,6 @@ import ( "www.velocidex.com/golang/velociraptor/services" "www.velocidex.com/golang/velociraptor/uploads" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/velociraptor/vql/networking" "www.velocidex.com/golang/vfilter" @@ -229,7 +228,7 @@ func (self S3UploadFunction) Info( Name: "upload_s3", Doc: "Upload files to S3.", ArgType: type_map.AddType(scope, &S3UploadArgs{}), - Metadata: vql.VQLMetadata().Permissions( + Metadata: vql_subsystem.VQLMetadata().Permissions( acls.NETWORK, acls.FILESYSTEM_READ).Build(), Version: 3, } diff --git a/vql/tools/s3_upload_test.go b/vql/tools/s3_upload_test.go index 893dd3ca6..684fb2930 100644 --- a/vql/tools/s3_upload_test.go +++ b/vql/tools/s3_upload_test.go @@ -97,7 +97,7 @@ func (self *S3TestSuite) TestUpload() { s3.SetPageSize(2) result := []string{} - result_regex := regexp.MustCompile("/velociraptor/hello_\\d+.txt") + result_regex := regexp.MustCompile(`/velociraptor/hello_\d+.txt`) snapshot := vtesting.GetMetrics(self.T(), "s3_ops_list_objects") // We upload 10 files to the bucket. diff --git a/vql/tools/starlark.go b/vql/tools/starlark.go index 4dda245d1..4f2393187 100644 --- a/vql/tools/starlark.go +++ b/vql/tools/starlark.go @@ -405,7 +405,7 @@ func makeKwargsTuple(ctx context.Context, scope vfilter.Scope, return t.Items(), nil default: - return nil, errors.New(fmt.Sprintf("Unsupported Type %T", starlark_args)) + return nil, fmt.Errorf("Unsupported Type %T", starlark_args) } starlark_args.(*starlarkstruct.Struct).ToStringDict(new_string_dict) diff --git a/vql/tools/template.go b/vql/tools/template.go index be1a2d285..3bb0fc3ee 100644 --- a/vql/tools/template.go +++ b/vql/tools/template.go @@ -10,7 +10,6 @@ import ( "github.com/Velocidex/ordereddict" "www.velocidex.com/golang/velociraptor/reporting" "www.velocidex.com/golang/velociraptor/utils" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -66,7 +65,7 @@ func (self *TemplateFunction) Call(ctx context.Context, return vfilter.Null{} } - return string(buffer.Bytes()) + return buffer.String() } tmpl := text_template.New("").Funcs(sprig.TxtFuncMap()).Funcs( @@ -110,7 +109,7 @@ func (self *TemplateFunction) Call(ctx context.Context, return vfilter.Null{} } - return string(buffer.Bytes()) + return buffer.String() } func (self *TemplateFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMap) *vfilter.FunctionInfo { @@ -118,7 +117,7 @@ func (self *TemplateFunction) Info(scope vfilter.Scope, type_map *vfilter.TypeMa Name: "template", Doc: "Expand a Go style template .", ArgType: type_map.AddType(scope, &TemplateFunctionArgs{}), - Metadata: vql.VQLMetadata().Build(), + Metadata: vql_subsystem.VQLMetadata().Build(), Version: 2, } } diff --git a/vql/unimplemented_test.go b/vql/unimplemented_test.go index 1a0f66c49..ac13053a3 100644 --- a/vql/unimplemented_test.go +++ b/vql/unimplemented_test.go @@ -47,6 +47,8 @@ SELECT * FROM %s() rows = append(rows, row) } + _ = rows + vtesting.MemoryLogsContain(self.T(), "Plugin .+ is not implemented for this architecture") version_check := common.GetVersion{}.Call( diff --git a/vql/utils.go b/vql/utils.go index aa7c30b74..b30ad7fc1 100644 --- a/vql/utils.go +++ b/vql/utils.go @@ -98,7 +98,7 @@ func GetBoolFromRow(scope vfilter.Scope, } // Sometimes we encode bools in string values -var boolRegEx = regexp.MustCompile("(?i)^\\s*(true|Y|1)\\s*$") +var boolRegEx = regexp.MustCompile(`(?i)^\s*(true|Y|1)\s*$`) func GetBoolFromString(value string) bool { return boolRegEx.MatchString(value) diff --git a/vql/windows/wmi/wmi.go b/vql/windows/wmi/wmi.go index fb2ffea18..984ec52fe 100644 --- a/vql/windows/wmi/wmi.go +++ b/vql/windows/wmi/wmi.go @@ -35,7 +35,6 @@ import ( ole "github.com/go-ole/go-ole" "github.com/go-ole/go-ole/oleutil" "www.velocidex.com/golang/velociraptor/acls" - "www.velocidex.com/golang/velociraptor/vql" vql_subsystem "www.velocidex.com/golang/velociraptor/vql" vfilter "www.velocidex.com/golang/vfilter" "www.velocidex.com/golang/vfilter/arg_parser" @@ -236,6 +235,6 @@ func init() { Doc: "Execute simple WMI queries synchronously.", Function: runWMIQuery, ArgType: &WMIQueryArgs{}, - Metadata: vql.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), + Metadata: vql_subsystem.VQLMetadata().Permissions(acls.MACHINE_STATE).Build(), }) }