Files
seaweedfs/weed/pb/filer_pb/filer.pb.go
T
Chris LuandDevin 9620e7ebfe filer: auto-enable per-path commit records when a peer has its own store (#12062)
* filer: enable per-path commit records only when a peer has its own store

Since seaweedfs#11698 every metadata change writes a per-path commit
record into the filer store (an MpTs key, plus an MpDl key on deletes),
and the records stay after the path is deleted. They order the events a
filer replays from peer filers that keep their own store, since replay
only runs when peerSignature != f.Signature.

Filers that all share one store (one Redis, MySQL, TiKV, ...) never
replay each other's events, so the records are never read, yet each
change still costs one or two extra store writes and the key count grows
with every path ever changed — unbounded growth for in-memory stores.

This turns the records off by default and latches them on the first time
a peer reports a different store signature — no option needed. The latch
is persisted in the store (MpRep) so it survives restarts and converges
filers sharing a store even before they discover the peer themselves.
While off, a filer keeps an MpOff marker so enabling later bumps the
records' generation (MpGen, folded into each record key) past the
unrecorded window: a record older than a change made while off cannot
let an older replayed peer event win. Ordering for unrecorded changes
falls back to the entry's mtime, the same as entries written before the
records existed.

Supersedes the manual option approach in seaweedfs#12060.

* filer: keep delete tombstones while records off, harden enable path

Review on the first commit:

- A delete committed while the records were off left no entry and no
  usable tombstone: after enabling, an older replayed create could
  resurrect the path. Deletes and rename sources are now always recorded
  under the generation-0 MpDl key — they are never fenced by a
  generation bump, and they cannot go stale because every delete is
  recorded. Creates/updates still write nothing while off.

- bumpPathCommitGen could regress MpGen under concurrent bumpers on a
  shared store. It now loops: each pass writes only a generation higher
  than any it has seen, so concurrent bumps converge upward.

- doSubscribeToOneFiler proceeded into replay when
  enablePathCommitRecords failed, running the whole session without
  ordering. It now aborts the subscribe so the reconnect retries with
  the records on.

* filer: bind pending commit-record repairs to their generation

A failed MpTs write kept in metaTsPending could land after a shared-store
generation bump, writing a pre-bump timestamp as a current-generation
record and overriding newer unrecorded state. Each pending change record
now carries the generation it failed under: repairs write it only while
that generation is current, and ordering reads ignore it otherwise.
Pending delete records need no binding — MpDl keys are never fenced.

* filer: never move the local records' generation backward

The converge loop in bumpPathCommitGen seeded from zero and both it and
syncPathCommitGen stored unconditionally: a stale writer could leave the
stored generation below what this filer already adopted, and the next
sync or bump then walked the local value back — orphaning records it
wrote under the higher generation. The bump now seeds from the local
generation and every store only moves it forward.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* filer: name a records generation after the off marker it consumes

Two filers consuming the same off marker each counted one past the
stored generation, so the second could store N+2 after the first
stored N+1 and write records under a key the other could not read
until the next check. The bump now takes the marker's own timestamp —
filers racing on one marker land on one value — a marker older than
the stored generation is cleaned as a leftover, and a stored value
that already passed the bump is adopted instead of counted past. A
newly enabling filer whose marker was already consumed names its own
off window with the current time, so its unrecorded period is still
fenced.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* filer: tell a fresh off marker from one the generation already consumed

A marker whose timestamp reads at or below the stored generation was
dropped as leftover, but a new off period can also read that old — the
off filer's clock lagging, or a host clock moving back — and dropping
it kept records from before that period live, so stale replay could
win.

The stored generation now names the marker it was bumped for: a marker
the store still shows is consumed unless it is that one, however old
it reads, and only the consumed marker itself is cleared without a
bump. The generation trails in the value, so a whole-slice read still
yields it on stores written before the pair was stored. Enabling
fences the filer's own off window with the current time instead of a
marker a sharer may already have consumed.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* filer: cover racing off-marker consumers settling on one generation

* filer: adopt the stored generation, not the consumed marker it names

A filer syncing with no off marker present read the value's first field —
the consumed marker's timestamp — so a restart after a lagging-clock off
period under-counted the generation and kept records the bump dropped.

* filer: re-check the off marker before consuming it

A sync whose marker read ran behind a later off period's consume cycle
still bumped for its stale read: the stored generation already covered a
different marker, so the bump overwrote the consumed name, counted the
generation past records a newer consumption meant to keep, and cleared
whatever marker was live by then. Each pass now re-reads the marker and
only bumps or clears while it is still the one the pass saw.

* filer: keep a failed generation read from resetting the records' generation

The final generation read ignored errors and then stored whatever gen
held — possibly zero — so a transient store failure could hide records
the current generation wrote. Unexpected read errors now return before
the local generation changes.

Also cover a sync whose marker read runs behind another consumer's
delete: it must adopt the stored generation, not bump for the stale read.

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* filer: fail a bump that cannot verify the stored generation

A generation read that failed mid-bump was treated as absent: the
write could land below a generation a racing bumper had stored, or
re-store a marker that bumper had already consumed. Read failures
now abort the pass like every other store error on the path.

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* filer: cover generation reads that fail instead of returning a value

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* filer: carry the commit timestamp on the entry itself

The per-path MpTs record only exists because a commit timestamp had
nowhere else to live. Stamping commit_ts_ns on the entry before its
store write - and reusing that stamp as the emitted event's TsNs -
makes the entry its own commit record: replay and bootstrap traversal
order on it with zero extra writes for creates and updates.

Deletes still need a durable key since a removed entry cannot carry a
timestamp, so MpDl tombstones stay (one write per delete, growth
bounded by delete history). Entries predating the field fall back to
mtime, matching what peers and old records already assume.

This replaces the MpTs/MpOff/MpGen/MpRep machinery entirely: shared-
store filers write nothing extra, and dedicated-store replication
keeps last-writer-wins ordering plus tombstone coverage for deletes
and ancestor drops.

* filer: keep a directory update replay from tombstoning its subtree

A same-path update wrote a delete record before the delete-and-reinsert,
so a directory metadata change read as a subtree delete: a later peer
event for a child older than the update was then skipped even though
nobody deleted the children, leaving files missing on this filer. Only
file updates take the tombstone now — the re-inserted directory entry's
own commit stamp orders the path itself.

* filer: order unstamped entries by their recorded commit before mtime

Entries written before stamping existed have no CommitTsNs, so the
ordering check fell back to the client-settable mtime and dropped the
MpTs record those versions wrote: an entry committed at event time 300
with mtime 100 lost to a delayed peer event at 200 after upgrade. Read
the legacy record for unstamped entries in localCommitTsNs, CommitTsNs,
and the traverse stamp (which also stopped falling back to mtime,
regressing entry_ts_ns to 0).

* filer: release queued rename event stamps when the rename fails

Each moved entry carried an in-flight stamp its queued event would
adopt at emit time. When the move succeeded but a later child move or
the commit failed, the handler rolled back without emitting the queued
events or releasing their stamps, pinning the delivered and flushed
watermarks below the aborted rename forever. Release every queued
stamp on both failure exits in both rename handlers.

* filer: apply a directory update replay with an in-place upsert

Deleting the stored entry before inserting its replacement left a
window where the directory had no entry and no ordering record — a
tombstone cannot stand in for it without reading as a subtree delete
that suppresses the children's own records. A stale peer event accepted
in that gap could replay an older update or delete and sweep the
directory's children. Upsert the replacement instead: the entry keeps
its recorded commit order across the whole update, and a directory has
no chunks or hard links for a delete to release.

* filer: update an existing directory entry on replay instead of upserting

InsertEntry is not an upsert on SQL stores configured without upsert
support — PostgreSQL with enableUpsert=false issues a plain INSERT and
its duplicate-key error does not match the MySQL-only fallback, so a
replay updating a present directory failed on every retry. Pick
UpdateEntry when the entry exists and InsertEntry when it is absent;
UpdateEntry touches no row that is not there.

* filer: detect a shared-store delete racing a replayed directory update

UpdateEntry reports success even when the row was deleted between the
find and the update — the UPDATE changes zero rows and the replayed
change is dropped while the subscription offset advances. Re-read the
entry after the update and retry the write, re-checking the recorded
commit order each pass so a newer peer change wins instead of being
resurrected over.

* filer: declare commit_ts_ns in field-number order

Field 6 sits between extended and hard_link_id; the declaration now
reads in the same order. Wire format unchanged. Also syncs the Java
client's checked-in copy of filer.proto, which the pb Makefile copies
on gen.

* filer: option to skip delete tombstones entirely

filer.options.deleteTombstones=false stops writing MpDl records on
deletes - a single filer or shared-store cluster never replays peer
events, so the tombstones are dead weight. The tradeoff is explicit:
if a dedicated-store peer does replicate, a stale event can resurrect
a deleted path.

* filer: drop delete tombstones entirely

Deletes no longer write MpDl records, and the pending-repair machinery
they needed is gone with them: per-mutation metadata overhead is now
zero for every store topology. Ordering information lives only on the
entry itself via commit_ts_ns.

The accepted tradeoff: a dedicated-store peer replaying an event older
than a delete can resurrect the path, and a kept directory no longer
fences stale child creates. Recorded tombstones and MpTs records left
by older builds are still read, so upgrades keep the protections they
already have.

* filer: stop reading legacy per-path records too

Drops the MpTs/MpDl read path along with the writes: meta_path_ts.go
keeps only the entry-field readers (CommitTsNs, EntryCommitTsNs,
localCommitTsNs). Entries written before stamping existed fall back to
mtime, and tombstones or commit records older builds left behind no
longer fence replayed events.

* filer: trim commit timestamp comments

---------

Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-25 11:37:06 -07:00

8312 lines
273 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.6
// protoc v7.35.0
// source: filer.proto
package filer_pb
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
unsafe "unsafe"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type SSEType int32
const (
SSEType_NONE SSEType = 0 // No server-side encryption
SSEType_SSE_C SSEType = 1 // Server-Side Encryption with Customer-Provided Keys
SSEType_SSE_KMS SSEType = 2 // Server-Side Encryption with KMS-Managed Keys
SSEType_SSE_S3 SSEType = 3 // Server-Side Encryption with S3-Managed Keys
)
// Enum value maps for SSEType.
var (
SSEType_name = map[int32]string{
0: "NONE",
1: "SSE_C",
2: "SSE_KMS",
3: "SSE_S3",
}
SSEType_value = map[string]int32{
"NONE": 0,
"SSE_C": 1,
"SSE_KMS": 2,
"SSE_S3": 3,
}
)
func (x SSEType) Enum() *SSEType {
p := new(SSEType)
*p = x
return p
}
func (x SSEType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (SSEType) Descriptor() protoreflect.EnumDescriptor {
return file_filer_proto_enumTypes[0].Descriptor()
}
func (SSEType) Type() protoreflect.EnumType {
return &file_filer_proto_enumTypes[0]
}
func (x SSEType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use SSEType.Descriptor instead.
func (SSEType) EnumDescriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{0}
}
// Structured error codes for filer entry operations.
// Values are stable — do not reorder or reuse numbers.
type FilerError int32
const (
FilerError_OK FilerError = 0
FilerError_ENTRY_NAME_TOO_LONG FilerError = 1 // name exceeds max_file_name_length
FilerError_PARENT_IS_FILE FilerError = 2 // parent path component is a file, not a directory
FilerError_EXISTING_IS_DIRECTORY FilerError = 3 // cannot overwrite directory with file
FilerError_EXISTING_IS_FILE FilerError = 4 // cannot overwrite file with directory
FilerError_ENTRY_ALREADY_EXISTS FilerError = 5 // O_EXCL and entry already exists
FilerError_PRECONDITION_FAILED FilerError = 6 // WriteCondition not satisfied
FilerError_READ_ONLY FilerError = 7 // path matches a read-only storage rule (e.g. bucket over quota)
)
// Enum value maps for FilerError.
var (
FilerError_name = map[int32]string{
0: "OK",
1: "ENTRY_NAME_TOO_LONG",
2: "PARENT_IS_FILE",
3: "EXISTING_IS_DIRECTORY",
4: "EXISTING_IS_FILE",
5: "ENTRY_ALREADY_EXISTS",
6: "PRECONDITION_FAILED",
7: "READ_ONLY",
}
FilerError_value = map[string]int32{
"OK": 0,
"ENTRY_NAME_TOO_LONG": 1,
"PARENT_IS_FILE": 2,
"EXISTING_IS_DIRECTORY": 3,
"EXISTING_IS_FILE": 4,
"ENTRY_ALREADY_EXISTS": 5,
"PRECONDITION_FAILED": 6,
"READ_ONLY": 7,
}
)
func (x FilerError) Enum() *FilerError {
p := new(FilerError)
*p = x
return p
}
func (x FilerError) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (FilerError) Descriptor() protoreflect.EnumDescriptor {
return file_filer_proto_enumTypes[1].Descriptor()
}
func (FilerError) Type() protoreflect.EnumType {
return &file_filer_proto_enumTypes[1]
}
func (x FilerError) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use FilerError.Descriptor instead.
func (FilerError) EnumDescriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{1}
}
type PosixLockOp int32
const (
PosixLockOp_TRY_LOCK PosixLockOp = 0 // grant lock or report conflict (non-blocking)
PosixLockOp_UNLOCK PosixLockOp = 1 // release lock's owner's locks over its range
PosixLockOp_GET_LK PosixLockOp = 2 // report a conflicting lock, if any
PosixLockOp_RELEASE_POSIX_OWNER PosixLockOp = 3 // drop the owner's fcntl locks (flush-time)
PosixLockOp_RELEASE_FLOCK_OWNER PosixLockOp = 4 // drop the owner's flock locks (release-time)
PosixLockOp_KEEP_ALIVE PosixLockOp = 5 // renew the session's lease on this owner (lock.sid)
)
// Enum value maps for PosixLockOp.
var (
PosixLockOp_name = map[int32]string{
0: "TRY_LOCK",
1: "UNLOCK",
2: "GET_LK",
3: "RELEASE_POSIX_OWNER",
4: "RELEASE_FLOCK_OWNER",
5: "KEEP_ALIVE",
}
PosixLockOp_value = map[string]int32{
"TRY_LOCK": 0,
"UNLOCK": 1,
"GET_LK": 2,
"RELEASE_POSIX_OWNER": 3,
"RELEASE_FLOCK_OWNER": 4,
"KEEP_ALIVE": 5,
}
)
func (x PosixLockOp) Enum() *PosixLockOp {
p := new(PosixLockOp)
*p = x
return p
}
func (x PosixLockOp) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (PosixLockOp) Descriptor() protoreflect.EnumDescriptor {
return file_filer_proto_enumTypes[2].Descriptor()
}
func (PosixLockOp) Type() protoreflect.EnumType {
return &file_filer_proto_enumTypes[2]
}
func (x PosixLockOp) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use PosixLockOp.Descriptor instead.
func (PosixLockOp) EnumDescriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{2}
}
type WriteCondition_Kind int32
const (
WriteCondition_NONE WriteCondition_Kind = 0 // unconditional
WriteCondition_IF_NOT_EXISTS WriteCondition_Kind = 1 // fail if the entry exists (If-None-Match: *)
WriteCondition_IF_EXISTS WriteCondition_Kind = 2 // fail if the entry is absent (If-Match: *)
WriteCondition_IF_ETAG_MATCH WriteCondition_Kind = 3 // fail if absent or etag matches none of the set (If-Match)
WriteCondition_IF_ETAG_NOT_MATCH WriteCondition_Kind = 4 // fail if present and etag matches any of the set (If-None-Match)
WriteCondition_IF_UNMODIFIED_SINCE WriteCondition_Kind = 5 // fail if present and mtime > unix_time
WriteCondition_IF_MODIFIED_SINCE WriteCondition_Kind = 6 // fail if present and mtime <= unix_time
WriteCondition_IF_EXTENDED_NOT_EQUAL WriteCondition_Kind = 7 // fail if present and extended[ext_key] == ext_value
WriteCondition_IF_EXTENDED_TIME_ELAPSED WriteCondition_Kind = 8 // fail if present and extended[ext_key] (unix seconds) is in the future
WriteCondition_IF_CHUNKS_EQUAL WriteCondition_Kind = 9 // fail unless the stored chunk fid multiset equals fids (absent entry = no chunks)
WriteCondition_IF_ENTRY_EQUAL WriteCondition_Kind = 10 // fail unless the stored entry equals expected_entry
)
// Enum value maps for WriteCondition_Kind.
var (
WriteCondition_Kind_name = map[int32]string{
0: "NONE",
1: "IF_NOT_EXISTS",
2: "IF_EXISTS",
3: "IF_ETAG_MATCH",
4: "IF_ETAG_NOT_MATCH",
5: "IF_UNMODIFIED_SINCE",
6: "IF_MODIFIED_SINCE",
7: "IF_EXTENDED_NOT_EQUAL",
8: "IF_EXTENDED_TIME_ELAPSED",
9: "IF_CHUNKS_EQUAL",
10: "IF_ENTRY_EQUAL",
}
WriteCondition_Kind_value = map[string]int32{
"NONE": 0,
"IF_NOT_EXISTS": 1,
"IF_EXISTS": 2,
"IF_ETAG_MATCH": 3,
"IF_ETAG_NOT_MATCH": 4,
"IF_UNMODIFIED_SINCE": 5,
"IF_MODIFIED_SINCE": 6,
"IF_EXTENDED_NOT_EQUAL": 7,
"IF_EXTENDED_TIME_ELAPSED": 8,
"IF_CHUNKS_EQUAL": 9,
"IF_ENTRY_EQUAL": 10,
}
)
func (x WriteCondition_Kind) Enum() *WriteCondition_Kind {
p := new(WriteCondition_Kind)
*p = x
return p
}
func (x WriteCondition_Kind) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (WriteCondition_Kind) Descriptor() protoreflect.EnumDescriptor {
return file_filer_proto_enumTypes[3].Descriptor()
}
func (WriteCondition_Kind) Type() protoreflect.EnumType {
return &file_filer_proto_enumTypes[3]
}
func (x WriteCondition_Kind) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use WriteCondition_Kind.Descriptor instead.
func (WriteCondition_Kind) EnumDescriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{13, 0}
}
type ObjectMutation_Type int32
const (
ObjectMutation_PUT ObjectMutation_Type = 0 // create or replace the entry (entry field)
ObjectMutation_DELETE ObjectMutation_Type = 1 // delete the entry at directory/name (no error if absent)
ObjectMutation_PATCH_EXTENDED ObjectMutation_Type = 2 // merge set_extended / remove delete_extended on the entry
ObjectMutation_RECOMPUTE_LATEST ObjectMutation_Type = 3 // scan a directory and re-point a parent entry (recompute)
)
// Enum value maps for ObjectMutation_Type.
var (
ObjectMutation_Type_name = map[int32]string{
0: "PUT",
1: "DELETE",
2: "PATCH_EXTENDED",
3: "RECOMPUTE_LATEST",
}
ObjectMutation_Type_value = map[string]int32{
"PUT": 0,
"DELETE": 1,
"PATCH_EXTENDED": 2,
"RECOMPUTE_LATEST": 3,
}
)
func (x ObjectMutation_Type) Enum() *ObjectMutation_Type {
p := new(ObjectMutation_Type)
*p = x
return p
}
func (x ObjectMutation_Type) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ObjectMutation_Type) Descriptor() protoreflect.EnumDescriptor {
return file_filer_proto_enumTypes[4].Descriptor()
}
func (ObjectMutation_Type) Type() protoreflect.EnumType {
return &file_filer_proto_enumTypes[4]
}
func (x ObjectMutation_Type) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ObjectMutation_Type.Descriptor instead.
func (ObjectMutation_Type) EnumDescriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{14, 0}
}
type LookupDirectoryEntryRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupDirectoryEntryRequest) Reset() {
*x = LookupDirectoryEntryRequest{}
mi := &file_filer_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupDirectoryEntryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupDirectoryEntryRequest) ProtoMessage() {}
func (x *LookupDirectoryEntryRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[0]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupDirectoryEntryRequest.ProtoReflect.Descriptor instead.
func (*LookupDirectoryEntryRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{0}
}
func (x *LookupDirectoryEntryRequest) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *LookupDirectoryEntryRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type LookupDirectoryEntryResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Entry *Entry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"`
// filer log position stamped before the entry read: every event at or
// below it is reflected in the returned entry
LogTsNs int64 `protobuf:"varint,2,opt,name=log_ts_ns,json=logTsNs,proto3" json:"log_ts_ns,omitempty"`
// signature of the filer whose clock stamped log_ts_ns; positions are
// only comparable with events that filer logged
LogSignature int32 `protobuf:"varint,3,opt,name=log_signature,json=logSignature,proto3" json:"log_signature,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupDirectoryEntryResponse) Reset() {
*x = LookupDirectoryEntryResponse{}
mi := &file_filer_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupDirectoryEntryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupDirectoryEntryResponse) ProtoMessage() {}
func (x *LookupDirectoryEntryResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupDirectoryEntryResponse.ProtoReflect.Descriptor instead.
func (*LookupDirectoryEntryResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{1}
}
func (x *LookupDirectoryEntryResponse) GetEntry() *Entry {
if x != nil {
return x.Entry
}
return nil
}
func (x *LookupDirectoryEntryResponse) GetLogTsNs() int64 {
if x != nil {
return x.LogTsNs
}
return 0
}
func (x *LookupDirectoryEntryResponse) GetLogSignature() int32 {
if x != nil {
return x.LogSignature
}
return 0
}
type ListEntriesRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"`
StartFromFileName string `protobuf:"bytes,3,opt,name=startFromFileName,proto3" json:"startFromFileName,omitempty"`
InclusiveStartFrom bool `protobuf:"varint,4,opt,name=inclusiveStartFrom,proto3" json:"inclusiveStartFrom,omitempty"`
Limit uint32 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"`
SnapshotTsNs int64 `protobuf:"varint,6,opt,name=snapshot_ts_ns,json=snapshotTsNs,proto3" json:"snapshot_ts_ns,omitempty"`
// Leave the chunk list out of every entry in the response. The attributes
// still carry the file size, so a listing that only reads attributes can
// ask for this and skip the largest part of the payload.
OmitChunks bool `protobuf:"varint,7,opt,name=omit_chunks,json=omitChunks,proto3" json:"omit_chunks,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListEntriesRequest) Reset() {
*x = ListEntriesRequest{}
mi := &file_filer_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListEntriesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListEntriesRequest) ProtoMessage() {}
func (x *ListEntriesRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListEntriesRequest.ProtoReflect.Descriptor instead.
func (*ListEntriesRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{2}
}
func (x *ListEntriesRequest) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *ListEntriesRequest) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
func (x *ListEntriesRequest) GetStartFromFileName() string {
if x != nil {
return x.StartFromFileName
}
return ""
}
func (x *ListEntriesRequest) GetInclusiveStartFrom() bool {
if x != nil {
return x.InclusiveStartFrom
}
return false
}
func (x *ListEntriesRequest) GetLimit() uint32 {
if x != nil {
return x.Limit
}
return 0
}
func (x *ListEntriesRequest) GetSnapshotTsNs() int64 {
if x != nil {
return x.SnapshotTsNs
}
return 0
}
func (x *ListEntriesRequest) GetOmitChunks() bool {
if x != nil {
return x.OmitChunks
}
return false
}
type ListEntriesResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Entry *Entry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"`
SnapshotTsNs int64 `protobuf:"varint,2,opt,name=snapshot_ts_ns,json=snapshotTsNs,proto3" json:"snapshot_ts_ns,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListEntriesResponse) Reset() {
*x = ListEntriesResponse{}
mi := &file_filer_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListEntriesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListEntriesResponse) ProtoMessage() {}
func (x *ListEntriesResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListEntriesResponse.ProtoReflect.Descriptor instead.
func (*ListEntriesResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{3}
}
func (x *ListEntriesResponse) GetEntry() *Entry {
if x != nil {
return x.Entry
}
return nil
}
func (x *ListEntriesResponse) GetSnapshotTsNs() int64 {
if x != nil {
return x.SnapshotTsNs
}
return 0
}
type RemoteEntry struct {
state protoimpl.MessageState `protogen:"open.v1"`
StorageName string `protobuf:"bytes,1,opt,name=storage_name,json=storageName,proto3" json:"storage_name,omitempty"`
LastLocalSyncTsNs int64 `protobuf:"varint,2,opt,name=last_local_sync_ts_ns,json=lastLocalSyncTsNs,proto3" json:"last_local_sync_ts_ns,omitempty"`
RemoteETag string `protobuf:"bytes,3,opt,name=remote_e_tag,json=remoteETag,proto3" json:"remote_e_tag,omitempty"`
RemoteMtime int64 `protobuf:"varint,4,opt,name=remote_mtime,json=remoteMtime,proto3" json:"remote_mtime,omitempty"`
RemoteSize int64 `protobuf:"varint,5,opt,name=remote_size,json=remoteSize,proto3" json:"remote_size,omitempty"`
// unset when the remote listing does not report encodings (S3);
// empty when the remote object authoritatively has none
RemoteContentEncoding *string `protobuf:"bytes,6,opt,name=remote_content_encoding,json=remoteContentEncoding,proto3,oneof" json:"remote_content_encoding,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RemoteEntry) Reset() {
*x = RemoteEntry{}
mi := &file_filer_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RemoteEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteEntry) ProtoMessage() {}
func (x *RemoteEntry) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RemoteEntry.ProtoReflect.Descriptor instead.
func (*RemoteEntry) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{4}
}
func (x *RemoteEntry) GetStorageName() string {
if x != nil {
return x.StorageName
}
return ""
}
func (x *RemoteEntry) GetLastLocalSyncTsNs() int64 {
if x != nil {
return x.LastLocalSyncTsNs
}
return 0
}
func (x *RemoteEntry) GetRemoteETag() string {
if x != nil {
return x.RemoteETag
}
return ""
}
func (x *RemoteEntry) GetRemoteMtime() int64 {
if x != nil {
return x.RemoteMtime
}
return 0
}
func (x *RemoteEntry) GetRemoteSize() int64 {
if x != nil {
return x.RemoteSize
}
return 0
}
func (x *RemoteEntry) GetRemoteContentEncoding() string {
if x != nil && x.RemoteContentEncoding != nil {
return *x.RemoteContentEncoding
}
return ""
}
type Entry struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
IsDirectory bool `protobuf:"varint,2,opt,name=is_directory,json=isDirectory,proto3" json:"is_directory,omitempty"`
Chunks []*FileChunk `protobuf:"bytes,3,rep,name=chunks,proto3" json:"chunks,omitempty"`
Attributes *FuseAttributes `protobuf:"bytes,4,opt,name=attributes,proto3" json:"attributes,omitempty"`
Extended map[string][]byte `protobuf:"bytes,5,rep,name=extended,proto3" json:"extended,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// filer-local commit timestamp of the version stored here: the meta log
// event's ts_ns for the mutation that produced this entry, or 0 for
// entries written before the field existed
CommitTsNs int64 `protobuf:"varint,6,opt,name=commit_ts_ns,json=commitTsNs,proto3" json:"commit_ts_ns,omitempty"`
HardLinkId []byte `protobuf:"bytes,7,opt,name=hard_link_id,json=hardLinkId,proto3" json:"hard_link_id,omitempty"`
HardLinkCounter int32 `protobuf:"varint,8,opt,name=hard_link_counter,json=hardLinkCounter,proto3" json:"hard_link_counter,omitempty"` // only exists in hard link meta data
Content []byte `protobuf:"bytes,9,opt,name=content,proto3" json:"content,omitempty"` // if not empty, the file content
RemoteEntry *RemoteEntry `protobuf:"bytes,10,opt,name=remote_entry,json=remoteEntry,proto3" json:"remote_entry,omitempty"`
Quota int64 `protobuf:"varint,11,opt,name=quota,proto3" json:"quota,omitempty"` // for bucket only. Positive/Negative means enabled/disabled.
WormEnforcedAtTsNs int64 `protobuf:"varint,12,opt,name=worm_enforced_at_ts_ns,json=wormEnforcedAtTsNs,proto3" json:"worm_enforced_at_ts_ns,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Entry) Reset() {
*x = Entry{}
mi := &file_filer_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Entry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Entry) ProtoMessage() {}
func (x *Entry) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Entry.ProtoReflect.Descriptor instead.
func (*Entry) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{5}
}
func (x *Entry) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Entry) GetIsDirectory() bool {
if x != nil {
return x.IsDirectory
}
return false
}
func (x *Entry) GetChunks() []*FileChunk {
if x != nil {
return x.Chunks
}
return nil
}
func (x *Entry) GetAttributes() *FuseAttributes {
if x != nil {
return x.Attributes
}
return nil
}
func (x *Entry) GetExtended() map[string][]byte {
if x != nil {
return x.Extended
}
return nil
}
func (x *Entry) GetCommitTsNs() int64 {
if x != nil {
return x.CommitTsNs
}
return 0
}
func (x *Entry) GetHardLinkId() []byte {
if x != nil {
return x.HardLinkId
}
return nil
}
func (x *Entry) GetHardLinkCounter() int32 {
if x != nil {
return x.HardLinkCounter
}
return 0
}
func (x *Entry) GetContent() []byte {
if x != nil {
return x.Content
}
return nil
}
func (x *Entry) GetRemoteEntry() *RemoteEntry {
if x != nil {
return x.RemoteEntry
}
return nil
}
func (x *Entry) GetQuota() int64 {
if x != nil {
return x.Quota
}
return 0
}
func (x *Entry) GetWormEnforcedAtTsNs() int64 {
if x != nil {
return x.WormEnforcedAtTsNs
}
return 0
}
type FullEntry struct {
state protoimpl.MessageState `protogen:"open.v1"`
Dir string `protobuf:"bytes,1,opt,name=dir,proto3" json:"dir,omitempty"`
Entry *Entry `protobuf:"bytes,2,opt,name=entry,proto3" json:"entry,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FullEntry) Reset() {
*x = FullEntry{}
mi := &file_filer_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FullEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FullEntry) ProtoMessage() {}
func (x *FullEntry) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FullEntry.ProtoReflect.Descriptor instead.
func (*FullEntry) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{6}
}
func (x *FullEntry) GetDir() string {
if x != nil {
return x.Dir
}
return ""
}
func (x *FullEntry) GetEntry() *Entry {
if x != nil {
return x.Entry
}
return nil
}
type EventNotification struct {
state protoimpl.MessageState `protogen:"open.v1"`
OldEntry *Entry `protobuf:"bytes,1,opt,name=old_entry,json=oldEntry,proto3" json:"old_entry,omitempty"`
NewEntry *Entry `protobuf:"bytes,2,opt,name=new_entry,json=newEntry,proto3" json:"new_entry,omitempty"`
DeleteChunks bool `protobuf:"varint,3,opt,name=delete_chunks,json=deleteChunks,proto3" json:"delete_chunks,omitempty"`
NewParentPath string `protobuf:"bytes,4,opt,name=new_parent_path,json=newParentPath,proto3" json:"new_parent_path,omitempty"`
IsFromOtherCluster bool `protobuf:"varint,5,opt,name=is_from_other_cluster,json=isFromOtherCluster,proto3" json:"is_from_other_cluster,omitempty"`
Signatures []int32 `protobuf:"varint,6,rep,packed,name=signatures,proto3" json:"signatures,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *EventNotification) Reset() {
*x = EventNotification{}
mi := &file_filer_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *EventNotification) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EventNotification) ProtoMessage() {}
func (x *EventNotification) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EventNotification.ProtoReflect.Descriptor instead.
func (*EventNotification) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{7}
}
func (x *EventNotification) GetOldEntry() *Entry {
if x != nil {
return x.OldEntry
}
return nil
}
func (x *EventNotification) GetNewEntry() *Entry {
if x != nil {
return x.NewEntry
}
return nil
}
func (x *EventNotification) GetDeleteChunks() bool {
if x != nil {
return x.DeleteChunks
}
return false
}
func (x *EventNotification) GetNewParentPath() string {
if x != nil {
return x.NewParentPath
}
return ""
}
func (x *EventNotification) GetIsFromOtherCluster() bool {
if x != nil {
return x.IsFromOtherCluster
}
return false
}
func (x *EventNotification) GetSignatures() []int32 {
if x != nil {
return x.Signatures
}
return nil
}
type FileChunk struct {
state protoimpl.MessageState `protogen:"open.v1"`
FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId,proto3" json:"file_id,omitempty"` // to be deprecated
Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
Size uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
ModifiedTsNs int64 `protobuf:"varint,4,opt,name=modified_ts_ns,json=modifiedTsNs,proto3" json:"modified_ts_ns,omitempty"`
ETag string `protobuf:"bytes,5,opt,name=e_tag,json=eTag,proto3" json:"e_tag,omitempty"`
SourceFileId string `protobuf:"bytes,6,opt,name=source_file_id,json=sourceFileId,proto3" json:"source_file_id,omitempty"` // to be deprecated
Fid *FileId `protobuf:"bytes,7,opt,name=fid,proto3" json:"fid,omitempty"`
SourceFid *FileId `protobuf:"bytes,8,opt,name=source_fid,json=sourceFid,proto3" json:"source_fid,omitempty"`
CipherKey []byte `protobuf:"bytes,9,opt,name=cipher_key,json=cipherKey,proto3" json:"cipher_key,omitempty"`
IsCompressed bool `protobuf:"varint,10,opt,name=is_compressed,json=isCompressed,proto3" json:"is_compressed,omitempty"`
IsChunkManifest bool `protobuf:"varint,11,opt,name=is_chunk_manifest,json=isChunkManifest,proto3" json:"is_chunk_manifest,omitempty"` // content is a list of FileChunks
SseType SSEType `protobuf:"varint,12,opt,name=sse_type,json=sseType,proto3,enum=filer_pb.SSEType" json:"sse_type,omitempty"` // Server-side encryption type
SseMetadata []byte `protobuf:"bytes,13,opt,name=sse_metadata,json=sseMetadata,proto3" json:"sse_metadata,omitempty"` // Serialized SSE metadata for this chunk (SSE-C, SSE-KMS, or SSE-S3)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FileChunk) Reset() {
*x = FileChunk{}
mi := &file_filer_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FileChunk) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FileChunk) ProtoMessage() {}
func (x *FileChunk) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FileChunk.ProtoReflect.Descriptor instead.
func (*FileChunk) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{8}
}
func (x *FileChunk) GetFileId() string {
if x != nil {
return x.FileId
}
return ""
}
func (x *FileChunk) GetOffset() int64 {
if x != nil {
return x.Offset
}
return 0
}
func (x *FileChunk) GetSize() uint64 {
if x != nil {
return x.Size
}
return 0
}
func (x *FileChunk) GetModifiedTsNs() int64 {
if x != nil {
return x.ModifiedTsNs
}
return 0
}
func (x *FileChunk) GetETag() string {
if x != nil {
return x.ETag
}
return ""
}
func (x *FileChunk) GetSourceFileId() string {
if x != nil {
return x.SourceFileId
}
return ""
}
func (x *FileChunk) GetFid() *FileId {
if x != nil {
return x.Fid
}
return nil
}
func (x *FileChunk) GetSourceFid() *FileId {
if x != nil {
return x.SourceFid
}
return nil
}
func (x *FileChunk) GetCipherKey() []byte {
if x != nil {
return x.CipherKey
}
return nil
}
func (x *FileChunk) GetIsCompressed() bool {
if x != nil {
return x.IsCompressed
}
return false
}
func (x *FileChunk) GetIsChunkManifest() bool {
if x != nil {
return x.IsChunkManifest
}
return false
}
func (x *FileChunk) GetSseType() SSEType {
if x != nil {
return x.SseType
}
return SSEType_NONE
}
func (x *FileChunk) GetSseMetadata() []byte {
if x != nil {
return x.SseMetadata
}
return nil
}
type FileChunkManifest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Chunks []*FileChunk `protobuf:"bytes,1,rep,name=chunks,proto3" json:"chunks,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FileChunkManifest) Reset() {
*x = FileChunkManifest{}
mi := &file_filer_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FileChunkManifest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FileChunkManifest) ProtoMessage() {}
func (x *FileChunkManifest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FileChunkManifest.ProtoReflect.Descriptor instead.
func (*FileChunkManifest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{9}
}
func (x *FileChunkManifest) GetChunks() []*FileChunk {
if x != nil {
return x.Chunks
}
return nil
}
type FileId struct {
state protoimpl.MessageState `protogen:"open.v1"`
VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
FileKey uint64 `protobuf:"varint,2,opt,name=file_key,json=fileKey,proto3" json:"file_key,omitempty"`
Cookie uint32 `protobuf:"fixed32,3,opt,name=cookie,proto3" json:"cookie,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FileId) Reset() {
*x = FileId{}
mi := &file_filer_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FileId) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FileId) ProtoMessage() {}
func (x *FileId) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[10]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FileId.ProtoReflect.Descriptor instead.
func (*FileId) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{10}
}
func (x *FileId) GetVolumeId() uint32 {
if x != nil {
return x.VolumeId
}
return 0
}
func (x *FileId) GetFileKey() uint64 {
if x != nil {
return x.FileKey
}
return 0
}
func (x *FileId) GetCookie() uint32 {
if x != nil {
return x.Cookie
}
return 0
}
type FuseAttributes struct {
state protoimpl.MessageState `protogen:"open.v1"`
FileSize uint64 `protobuf:"varint,1,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"`
Mtime int64 `protobuf:"varint,2,opt,name=mtime,proto3" json:"mtime,omitempty"` // unix time in seconds
FileMode uint32 `protobuf:"varint,3,opt,name=file_mode,json=fileMode,proto3" json:"file_mode,omitempty"`
Uid uint32 `protobuf:"varint,4,opt,name=uid,proto3" json:"uid,omitempty"`
Gid uint32 `protobuf:"varint,5,opt,name=gid,proto3" json:"gid,omitempty"`
Crtime int64 `protobuf:"varint,6,opt,name=crtime,proto3" json:"crtime,omitempty"` // unix time in seconds
Mime string `protobuf:"bytes,7,opt,name=mime,proto3" json:"mime,omitempty"`
TtlSec int32 `protobuf:"varint,10,opt,name=ttl_sec,json=ttlSec,proto3" json:"ttl_sec,omitempty"`
UserName string `protobuf:"bytes,11,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` // for hdfs
GroupName []string `protobuf:"bytes,12,rep,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` // for hdfs
SymlinkTarget string `protobuf:"bytes,13,opt,name=symlink_target,json=symlinkTarget,proto3" json:"symlink_target,omitempty"`
Md5 []byte `protobuf:"bytes,14,opt,name=md5,proto3" json:"md5,omitempty"`
Rdev uint32 `protobuf:"varint,16,opt,name=rdev,proto3" json:"rdev,omitempty"`
Inode uint64 `protobuf:"varint,17,opt,name=inode,proto3" json:"inode,omitempty"`
Ctime int64 `protobuf:"varint,18,opt,name=ctime,proto3" json:"ctime,omitempty"` // unix time in seconds, inode change time
MtimeNs int32 `protobuf:"varint,19,opt,name=mtime_ns,json=mtimeNs,proto3" json:"mtime_ns,omitempty"` // nanosecond component of mtime (0-999999999)
CtimeNs int32 `protobuf:"varint,20,opt,name=ctime_ns,json=ctimeNs,proto3" json:"ctime_ns,omitempty"` // nanosecond component of ctime (0-999999999)
CrtimeNs int32 `protobuf:"varint,21,opt,name=crtime_ns,json=crtimeNs,proto3" json:"crtime_ns,omitempty"` // nanosecond component of crtime (0-999999999)
Atime int64 `protobuf:"varint,22,opt,name=atime,proto3" json:"atime,omitempty"` // unix time in seconds, last access time
AtimeNs int32 `protobuf:"varint,23,opt,name=atime_ns,json=atimeNs,proto3" json:"atime_ns,omitempty"` // nanosecond component of atime (0-999999999)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FuseAttributes) Reset() {
*x = FuseAttributes{}
mi := &file_filer_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FuseAttributes) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FuseAttributes) ProtoMessage() {}
func (x *FuseAttributes) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FuseAttributes.ProtoReflect.Descriptor instead.
func (*FuseAttributes) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{11}
}
func (x *FuseAttributes) GetFileSize() uint64 {
if x != nil {
return x.FileSize
}
return 0
}
func (x *FuseAttributes) GetMtime() int64 {
if x != nil {
return x.Mtime
}
return 0
}
func (x *FuseAttributes) GetFileMode() uint32 {
if x != nil {
return x.FileMode
}
return 0
}
func (x *FuseAttributes) GetUid() uint32 {
if x != nil {
return x.Uid
}
return 0
}
func (x *FuseAttributes) GetGid() uint32 {
if x != nil {
return x.Gid
}
return 0
}
func (x *FuseAttributes) GetCrtime() int64 {
if x != nil {
return x.Crtime
}
return 0
}
func (x *FuseAttributes) GetMime() string {
if x != nil {
return x.Mime
}
return ""
}
func (x *FuseAttributes) GetTtlSec() int32 {
if x != nil {
return x.TtlSec
}
return 0
}
func (x *FuseAttributes) GetUserName() string {
if x != nil {
return x.UserName
}
return ""
}
func (x *FuseAttributes) GetGroupName() []string {
if x != nil {
return x.GroupName
}
return nil
}
func (x *FuseAttributes) GetSymlinkTarget() string {
if x != nil {
return x.SymlinkTarget
}
return ""
}
func (x *FuseAttributes) GetMd5() []byte {
if x != nil {
return x.Md5
}
return nil
}
func (x *FuseAttributes) GetRdev() uint32 {
if x != nil {
return x.Rdev
}
return 0
}
func (x *FuseAttributes) GetInode() uint64 {
if x != nil {
return x.Inode
}
return 0
}
func (x *FuseAttributes) GetCtime() int64 {
if x != nil {
return x.Ctime
}
return 0
}
func (x *FuseAttributes) GetMtimeNs() int32 {
if x != nil {
return x.MtimeNs
}
return 0
}
func (x *FuseAttributes) GetCtimeNs() int32 {
if x != nil {
return x.CtimeNs
}
return 0
}
func (x *FuseAttributes) GetCrtimeNs() int32 {
if x != nil {
return x.CrtimeNs
}
return 0
}
func (x *FuseAttributes) GetAtime() int64 {
if x != nil {
return x.Atime
}
return 0
}
func (x *FuseAttributes) GetAtimeNs() int32 {
if x != nil {
return x.AtimeNs
}
return 0
}
type CreateEntryRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
Entry *Entry `protobuf:"bytes,2,opt,name=entry,proto3" json:"entry,omitempty"`
OExcl bool `protobuf:"varint,3,opt,name=o_excl,json=oExcl,proto3" json:"o_excl,omitempty"`
IsFromOtherCluster bool `protobuf:"varint,4,opt,name=is_from_other_cluster,json=isFromOtherCluster,proto3" json:"is_from_other_cluster,omitempty"`
Signatures []int32 `protobuf:"varint,5,rep,packed,name=signatures,proto3" json:"signatures,omitempty"`
SkipCheckParentDirectory bool `protobuf:"varint,6,opt,name=skip_check_parent_directory,json=skipCheckParentDirectory,proto3" json:"skip_check_parent_directory,omitempty"`
// Optional precondition evaluated against the current entry atomically with
// the write, under the filer's per-path lock.
Condition *WriteCondition `protobuf:"bytes,7,opt,name=condition,proto3" json:"condition,omitempty"`
// Set on a create a filer forwarded to the entry's ring owner, so the owner
// applies it locally instead of forwarding again. Clients leave it unset.
IsMoved bool `protobuf:"varint,8,opt,name=is_moved,json=isMoved,proto3" json:"is_moved,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CreateEntryRequest) Reset() {
*x = CreateEntryRequest{}
mi := &file_filer_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CreateEntryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateEntryRequest) ProtoMessage() {}
func (x *CreateEntryRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[12]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CreateEntryRequest.ProtoReflect.Descriptor instead.
func (*CreateEntryRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{12}
}
func (x *CreateEntryRequest) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *CreateEntryRequest) GetEntry() *Entry {
if x != nil {
return x.Entry
}
return nil
}
func (x *CreateEntryRequest) GetOExcl() bool {
if x != nil {
return x.OExcl
}
return false
}
func (x *CreateEntryRequest) GetIsFromOtherCluster() bool {
if x != nil {
return x.IsFromOtherCluster
}
return false
}
func (x *CreateEntryRequest) GetSignatures() []int32 {
if x != nil {
return x.Signatures
}
return nil
}
func (x *CreateEntryRequest) GetSkipCheckParentDirectory() bool {
if x != nil {
return x.SkipCheckParentDirectory
}
return false
}
func (x *CreateEntryRequest) GetCondition() *WriteCondition {
if x != nil {
return x.Condition
}
return nil
}
func (x *CreateEntryRequest) GetIsMoved() bool {
if x != nil {
return x.IsMoved
}
return false
}
// WriteCondition is the precondition the filer evaluates against the existing
// entry before writing, under the per-path lock. A failed condition returns
// FilerError PRECONDITION_FAILED. The client maps request semantics (e.g. RFC
// 7232) to clauses; the filer just compares.
//
// A condition is a list of clauses that ALL must hold (logical AND). One clause
// is the common case; several express what a single comparison cannot: an ETag
// set (If-Match / If-None-Match with multiple values), weak-ETag comparison, and
// compound conditions (e.g. If-Match + If-Unmodified-Since together).
type WriteCondition struct {
state protoimpl.MessageState `protogen:"open.v1"`
Clauses []*WriteCondition_Clause `protobuf:"bytes,1,rep,name=clauses,proto3" json:"clauses,omitempty"` // all must hold (logical AND)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *WriteCondition) Reset() {
*x = WriteCondition{}
mi := &file_filer_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *WriteCondition) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WriteCondition) ProtoMessage() {}
func (x *WriteCondition) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[13]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WriteCondition.ProtoReflect.Descriptor instead.
func (*WriteCondition) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{13}
}
func (x *WriteCondition) GetClauses() []*WriteCondition_Clause {
if x != nil {
return x.Clauses
}
return nil
}
// ObjectMutation is one entry-level change applied by ObjectTransaction. All
// mutations of a transaction run under a single per-path lock (the request's
// lock_key) and in order, so the gateway can describe a multi-entry object
// operation as one request instead of holding a distributed lock across
// several RPCs. Data-bearing writes (entries with chunks) should be written
// before the transaction; mutations here are metadata-scoped.
type ObjectMutation struct {
state protoimpl.MessageState `protogen:"open.v1"`
Type ObjectMutation_Type `protobuf:"varint,1,opt,name=type,proto3,enum=filer_pb.ObjectMutation_Type" json:"type,omitempty"`
Directory string `protobuf:"bytes,2,opt,name=directory,proto3" json:"directory,omitempty"`
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // entry name for DELETE / PATCH_EXTENDED / RECOMPUTE_LATEST (the pointer entry)
Entry *Entry `protobuf:"bytes,4,opt,name=entry,proto3" json:"entry,omitempty"` // full entry for PUT
SetExtended map[string][]byte `protobuf:"bytes,5,rep,name=set_extended,json=setExtended,proto3" json:"set_extended,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // PATCH_EXTENDED: keys to set
DeleteExtended []string `protobuf:"bytes,6,rep,name=delete_extended,json=deleteExtended,proto3" json:"delete_extended,omitempty"` // PATCH_EXTENDED: keys to remove
IsDeleteData bool `protobuf:"varint,7,opt,name=is_delete_data,json=isDeleteData,proto3" json:"is_delete_data,omitempty"` // DELETE: also delete chunk data
IsRecursive bool `protobuf:"varint,8,opt,name=is_recursive,json=isRecursive,proto3" json:"is_recursive,omitempty"` // DELETE: recurse into a directory
Recompute *Recompute `protobuf:"bytes,9,opt,name=recompute,proto3" json:"recompute,omitempty"` // RECOMPUTE_LATEST parameters
SetContent bool `protobuf:"varint,10,opt,name=set_content,json=setContent,proto3" json:"set_content,omitempty"` // PATCH_EXTENDED: replace Entry.content with content
Content []byte `protobuf:"bytes,11,opt,name=content,proto3" json:"content,omitempty"` // PATCH_EXTENDED: new Entry.content when set_content
TouchMtime bool `protobuf:"varint,12,opt,name=touch_mtime,json=touchMtime,proto3" json:"touch_mtime,omitempty"` // PATCH_EXTENDED: set the entry's Mtime to now (e.g. a metadata-replace copy)
RemoveEmptyParent bool `protobuf:"varint,13,opt,name=remove_empty_parent,json=removeEmptyParent,proto3" json:"remove_empty_parent,omitempty"` // DELETE: also remove the parent directory when the delete leaves it empty (best-effort)
KeepRemoteObject bool `protobuf:"varint,14,opt,name=keep_remote_object,json=keepRemoteObject,proto3" json:"keep_remote_object,omitempty"` // DELETE: leave the object on the mounted remote storage
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ObjectMutation) Reset() {
*x = ObjectMutation{}
mi := &file_filer_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ObjectMutation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ObjectMutation) ProtoMessage() {}
func (x *ObjectMutation) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ObjectMutation.ProtoReflect.Descriptor instead.
func (*ObjectMutation) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{14}
}
func (x *ObjectMutation) GetType() ObjectMutation_Type {
if x != nil {
return x.Type
}
return ObjectMutation_PUT
}
func (x *ObjectMutation) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *ObjectMutation) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *ObjectMutation) GetEntry() *Entry {
if x != nil {
return x.Entry
}
return nil
}
func (x *ObjectMutation) GetSetExtended() map[string][]byte {
if x != nil {
return x.SetExtended
}
return nil
}
func (x *ObjectMutation) GetDeleteExtended() []string {
if x != nil {
return x.DeleteExtended
}
return nil
}
func (x *ObjectMutation) GetIsDeleteData() bool {
if x != nil {
return x.IsDeleteData
}
return false
}
func (x *ObjectMutation) GetIsRecursive() bool {
if x != nil {
return x.IsRecursive
}
return false
}
func (x *ObjectMutation) GetRecompute() *Recompute {
if x != nil {
return x.Recompute
}
return nil
}
func (x *ObjectMutation) GetSetContent() bool {
if x != nil {
return x.SetContent
}
return false
}
func (x *ObjectMutation) GetContent() []byte {
if x != nil {
return x.Content
}
return nil
}
func (x *ObjectMutation) GetTouchMtime() bool {
if x != nil {
return x.TouchMtime
}
return false
}
func (x *ObjectMutation) GetRemoveEmptyParent() bool {
if x != nil {
return x.RemoveEmptyParent
}
return false
}
func (x *ObjectMutation) GetKeepRemoteObject() bool {
if x != nil {
return x.KeepRemoteObject
}
return false
}
// Recompute re-derives a pointer entry (directory/name on the mutation) from the
// current contents of a scanned directory, atomically under the transaction's
// lock. It is mechanical: the filer picks the child that sorts first or last by
// name and copies the requested fields into the pointer; it has no knowledge of
// what the entries mean. The caller (which does know the versioning scheme)
// supplies the sort direction and the key mappings. This covers re-pointing the
// latest version after a specific version is deleted, where the scan must run
// under the lock.
type Recompute struct {
state protoimpl.MessageState `protogen:"open.v1"`
ScanDir string `protobuf:"bytes,1,opt,name=scan_dir,json=scanDir,proto3" json:"scan_dir,omitempty"` // directory whose direct children are scanned
Descending bool `protobuf:"varint,2,opt,name=descending,proto3" json:"descending,omitempty"` // pick the child that sorts last by name (else first)
CopyExtended map[string]string `protobuf:"bytes,3,rep,name=copy_extended,json=copyExtended,proto3" json:"copy_extended,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // pointer extended key -> source extended key on the chosen child
NameToKey string `protobuf:"bytes,4,opt,name=name_to_key,json=nameToKey,proto3" json:"name_to_key,omitempty"` // if set, store the chosen child's name under this pointer key
SizeToKey string `protobuf:"bytes,5,opt,name=size_to_key,json=sizeToKey,proto3" json:"size_to_key,omitempty"` // if set, store the chosen child's FileSize (decimal) under this pointer key
MtimeToKey string `protobuf:"bytes,6,opt,name=mtime_to_key,json=mtimeToKey,proto3" json:"mtime_to_key,omitempty"` // if set, store the chosen child's Mtime (decimal) under this pointer key
DemoteKey string `protobuf:"bytes,7,opt,name=demote_key,json=demoteKey,proto3" json:"demote_key,omitempty"` // if set, stamp demote_value on the prior name_to_key target when it changes
DemoteValue []byte `protobuf:"bytes,8,opt,name=demote_value,json=demoteValue,proto3" json:"demote_value,omitempty"` // value for demote_key
ExcludeName string `protobuf:"bytes,9,opt,name=exclude_name,json=excludeName,proto3" json:"exclude_name,omitempty"` // if set, skip this child when scanning (e.g. a version about to be deleted)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Recompute) Reset() {
*x = Recompute{}
mi := &file_filer_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Recompute) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Recompute) ProtoMessage() {}
func (x *Recompute) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Recompute.ProtoReflect.Descriptor instead.
func (*Recompute) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{15}
}
func (x *Recompute) GetScanDir() string {
if x != nil {
return x.ScanDir
}
return ""
}
func (x *Recompute) GetDescending() bool {
if x != nil {
return x.Descending
}
return false
}
func (x *Recompute) GetCopyExtended() map[string]string {
if x != nil {
return x.CopyExtended
}
return nil
}
func (x *Recompute) GetNameToKey() string {
if x != nil {
return x.NameToKey
}
return ""
}
func (x *Recompute) GetSizeToKey() string {
if x != nil {
return x.SizeToKey
}
return ""
}
func (x *Recompute) GetMtimeToKey() string {
if x != nil {
return x.MtimeToKey
}
return ""
}
func (x *Recompute) GetDemoteKey() string {
if x != nil {
return x.DemoteKey
}
return ""
}
func (x *Recompute) GetDemoteValue() []byte {
if x != nil {
return x.DemoteValue
}
return nil
}
func (x *Recompute) GetExcludeName() string {
if x != nil {
return x.ExcludeName
}
return ""
}
// ObjectTransactionRequest applies an ordered list of mutations atomically with
// respect to other writers of the same object, by holding the filer's per-path
// lock on lock_key for the whole transaction. The optional condition is checked
// first, against condition_key when set, else lock_key. Callers set route_key to
// the object's stable owner ring key; a filer that is not the owner forwards the
// transaction one hop to the owner, so a stale ring view is tolerated.
type ObjectTransactionRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
LockKey string `protobuf:"bytes,1,opt,name=lock_key,json=lockKey,proto3" json:"lock_key,omitempty"` // object path to lock and to evaluate the condition against
Condition *WriteCondition `protobuf:"bytes,2,opt,name=condition,proto3" json:"condition,omitempty"` // optional precondition, checked under the lock
Mutations []*ObjectMutation `protobuf:"bytes,3,rep,name=mutations,proto3" json:"mutations,omitempty"`
IsFromOtherCluster bool `protobuf:"varint,4,opt,name=is_from_other_cluster,json=isFromOtherCluster,proto3" json:"is_from_other_cluster,omitempty"`
Signatures []int32 `protobuf:"varint,5,rep,packed,name=signatures,proto3" json:"signatures,omitempty"`
ConditionKey string `protobuf:"bytes,6,opt,name=condition_key,json=conditionKey,proto3" json:"condition_key,omitempty"` // if set, evaluate the condition against this entry instead of lock_key (still locking lock_key)
RouteKey string `protobuf:"bytes,7,opt,name=route_key,json=routeKey,proto3" json:"route_key,omitempty"` // ring key identifying the owner filer; a non-owner forwards the whole transaction to it
IsMoved bool `protobuf:"varint,8,opt,name=is_moved,json=isMoved,proto3" json:"is_moved,omitempty"` // set on a forwarded transaction so the receiver applies it locally instead of forwarding again
RequestId string `protobuf:"bytes,9,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // idempotency token: the owner records the outcome and replays it on a retried request instead of re-applying
ConditionAltKey string `protobuf:"bytes,10,opt,name=condition_alt_key,json=conditionAltKey,proto3" json:"condition_alt_key,omitempty"` // if the condition's entry is absent, evaluate it against this entry instead (e.g. null slot, else latest version)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ObjectTransactionRequest) Reset() {
*x = ObjectTransactionRequest{}
mi := &file_filer_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ObjectTransactionRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ObjectTransactionRequest) ProtoMessage() {}
func (x *ObjectTransactionRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[16]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ObjectTransactionRequest.ProtoReflect.Descriptor instead.
func (*ObjectTransactionRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{16}
}
func (x *ObjectTransactionRequest) GetLockKey() string {
if x != nil {
return x.LockKey
}
return ""
}
func (x *ObjectTransactionRequest) GetCondition() *WriteCondition {
if x != nil {
return x.Condition
}
return nil
}
func (x *ObjectTransactionRequest) GetMutations() []*ObjectMutation {
if x != nil {
return x.Mutations
}
return nil
}
func (x *ObjectTransactionRequest) GetIsFromOtherCluster() bool {
if x != nil {
return x.IsFromOtherCluster
}
return false
}
func (x *ObjectTransactionRequest) GetSignatures() []int32 {
if x != nil {
return x.Signatures
}
return nil
}
func (x *ObjectTransactionRequest) GetConditionKey() string {
if x != nil {
return x.ConditionKey
}
return ""
}
func (x *ObjectTransactionRequest) GetRouteKey() string {
if x != nil {
return x.RouteKey
}
return ""
}
func (x *ObjectTransactionRequest) GetIsMoved() bool {
if x != nil {
return x.IsMoved
}
return false
}
func (x *ObjectTransactionRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
func (x *ObjectTransactionRequest) GetConditionAltKey() string {
if x != nil {
return x.ConditionAltKey
}
return ""
}
type ObjectTransactionResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
ErrorCode FilerError `protobuf:"varint,2,opt,name=error_code,json=errorCode,proto3,enum=filer_pb.FilerError" json:"error_code,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ObjectTransactionResponse) Reset() {
*x = ObjectTransactionResponse{}
mi := &file_filer_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ObjectTransactionResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ObjectTransactionResponse) ProtoMessage() {}
func (x *ObjectTransactionResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ObjectTransactionResponse.ProtoReflect.Descriptor instead.
func (*ObjectTransactionResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{17}
}
func (x *ObjectTransactionResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *ObjectTransactionResponse) GetErrorCode() FilerError {
if x != nil {
return x.ErrorCode
}
return FilerError_OK
}
// PosixLockRange is one advisory byte-range lock. Owner identity is (sid, owner):
// sid is the mount session, owner the FUSE lock owner within it, so owners from
// different mounts never alias. end is inclusive (max uint64 = to EOF); is_flock
// separates the flock and fcntl namespaces, which never conflict.
type PosixLockRange struct {
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"`
Type uint32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` // 1=read, 2=write, 3=unlock
Sid uint64 `protobuf:"varint,4,opt,name=sid,proto3" json:"sid,omitempty"`
Owner uint64 `protobuf:"varint,5,opt,name=owner,proto3" json:"owner,omitempty"`
Pid uint32 `protobuf:"varint,6,opt,name=pid,proto3" json:"pid,omitempty"` // holder pid, for get_lk reporting only
IsFlock bool `protobuf:"varint,7,opt,name=is_flock,json=isFlock,proto3" json:"is_flock,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PosixLockRange) Reset() {
*x = PosixLockRange{}
mi := &file_filer_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PosixLockRange) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PosixLockRange) ProtoMessage() {}
func (x *PosixLockRange) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PosixLockRange.ProtoReflect.Descriptor instead.
func (*PosixLockRange) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{18}
}
func (x *PosixLockRange) GetStart() uint64 {
if x != nil {
return x.Start
}
return 0
}
func (x *PosixLockRange) GetEnd() uint64 {
if x != nil {
return x.End
}
return 0
}
func (x *PosixLockRange) GetType() uint32 {
if x != nil {
return x.Type
}
return 0
}
func (x *PosixLockRange) GetSid() uint64 {
if x != nil {
return x.Sid
}
return 0
}
func (x *PosixLockRange) GetOwner() uint64 {
if x != nil {
return x.Owner
}
return 0
}
func (x *PosixLockRange) GetPid() uint32 {
if x != nil {
return x.Pid
}
return 0
}
func (x *PosixLockRange) GetIsFlock() bool {
if x != nil {
return x.IsFlock
}
return false
}
// PosixLock routes an advisory lock operation to the inode's owner filer, which
// holds the authoritative in-memory lock table. key is the inode identity ring
// key (the file path, or hl:<HardLinkId> for a hardlink) used both to resolve the
// owner and to index the table. A non-owner filer forwards the request one hop;
// is_moved bounds it so a stale ring view cannot loop.
type PosixLockRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
IsMoved bool `protobuf:"varint,2,opt,name=is_moved,json=isMoved,proto3" json:"is_moved,omitempty"`
Op PosixLockOp `protobuf:"varint,3,opt,name=op,proto3,enum=filer_pb.PosixLockOp" json:"op,omitempty"`
Lock *PosixLockRange `protobuf:"bytes,4,opt,name=lock,proto3" json:"lock,omitempty"`
// locks carries the full set a mount holds on key for a KEEP_ALIVE
// re-assertion, so the current owner filer can rebuild its in-memory state
// after an ownership change or restart. lock.sid identifies the session.
Locks []*PosixLockRange `protobuf:"bytes,5,rep,name=locks,proto3" json:"locks,omitempty"`
// cooling_probe marks a dual-read a new owner sends to the previous owner
// during a ring change, so the previous owner answers from local state
// without itself cooling-off (no recursion).
CoolingProbe bool `protobuf:"varint,6,opt,name=cooling_probe,json=coolingProbe,proto3" json:"cooling_probe,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PosixLockRequest) Reset() {
*x = PosixLockRequest{}
mi := &file_filer_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PosixLockRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PosixLockRequest) ProtoMessage() {}
func (x *PosixLockRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PosixLockRequest.ProtoReflect.Descriptor instead.
func (*PosixLockRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{19}
}
func (x *PosixLockRequest) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *PosixLockRequest) GetIsMoved() bool {
if x != nil {
return x.IsMoved
}
return false
}
func (x *PosixLockRequest) GetOp() PosixLockOp {
if x != nil {
return x.Op
}
return PosixLockOp_TRY_LOCK
}
func (x *PosixLockRequest) GetLock() *PosixLockRange {
if x != nil {
return x.Lock
}
return nil
}
func (x *PosixLockRequest) GetLocks() []*PosixLockRange {
if x != nil {
return x.Locks
}
return nil
}
func (x *PosixLockRequest) GetCoolingProbe() bool {
if x != nil {
return x.CoolingProbe
}
return false
}
type PosixLockResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Granted bool `protobuf:"varint,1,opt,name=granted,proto3" json:"granted,omitempty"` // for TRY_LOCK: whether the lock was granted
HasConflict bool `protobuf:"varint,2,opt,name=has_conflict,json=hasConflict,proto3" json:"has_conflict,omitempty"` // whether conflict is populated
Conflict *PosixLockRange `protobuf:"bytes,3,opt,name=conflict,proto3" json:"conflict,omitempty"` // the blocking lock (TRY_LOCK conflict / GET_LK result)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PosixLockResponse) Reset() {
*x = PosixLockResponse{}
mi := &file_filer_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PosixLockResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PosixLockResponse) ProtoMessage() {}
func (x *PosixLockResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PosixLockResponse.ProtoReflect.Descriptor instead.
func (*PosixLockResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{20}
}
func (x *PosixLockResponse) GetGranted() bool {
if x != nil {
return x.Granted
}
return false
}
func (x *PosixLockResponse) GetHasConflict() bool {
if x != nil {
return x.HasConflict
}
return false
}
func (x *PosixLockResponse) GetConflict() *PosixLockRange {
if x != nil {
return x.Conflict
}
return nil
}
// ObjectTransactionBatch applies several object transactions in one round trip,
// each under its own per-path lock and independent of the others (no cross-key
// atomicity). A caller groups keys that route to the same owner filer and sends
// one batch per owner, e.g. for a multi-object delete. Each response is parallel
// to its request.
type ObjectTransactionBatchRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Transactions []*ObjectTransactionRequest `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ObjectTransactionBatchRequest) Reset() {
*x = ObjectTransactionBatchRequest{}
mi := &file_filer_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ObjectTransactionBatchRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ObjectTransactionBatchRequest) ProtoMessage() {}
func (x *ObjectTransactionBatchRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[21]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ObjectTransactionBatchRequest.ProtoReflect.Descriptor instead.
func (*ObjectTransactionBatchRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{21}
}
func (x *ObjectTransactionBatchRequest) GetTransactions() []*ObjectTransactionRequest {
if x != nil {
return x.Transactions
}
return nil
}
type ObjectTransactionBatchResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Responses []*ObjectTransactionResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ObjectTransactionBatchResponse) Reset() {
*x = ObjectTransactionBatchResponse{}
mi := &file_filer_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ObjectTransactionBatchResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ObjectTransactionBatchResponse) ProtoMessage() {}
func (x *ObjectTransactionBatchResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[22]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ObjectTransactionBatchResponse.ProtoReflect.Descriptor instead.
func (*ObjectTransactionBatchResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{22}
}
func (x *ObjectTransactionBatchResponse) GetResponses() []*ObjectTransactionResponse {
if x != nil {
return x.Responses
}
return nil
}
type CreateEntryResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` // kept for human readability + backward compat
MetadataEvent *SubscribeMetadataResponse `protobuf:"bytes,2,opt,name=metadata_event,json=metadataEvent,proto3" json:"metadata_event,omitempty"`
ErrorCode FilerError `protobuf:"varint,3,opt,name=error_code,json=errorCode,proto3,enum=filer_pb.FilerError" json:"error_code,omitempty"` // machine-readable error code
// filer log position stamped under the path lock before the write:
// every event at or below it is reflected in the acknowledged state
LogTsNs int64 `protobuf:"varint,4,opt,name=log_ts_ns,json=logTsNs,proto3" json:"log_ts_ns,omitempty"`
LogSignature int32 `protobuf:"varint,5,opt,name=log_signature,json=logSignature,proto3" json:"log_signature,omitempty"` // filer whose clock stamped log_ts_ns
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CreateEntryResponse) Reset() {
*x = CreateEntryResponse{}
mi := &file_filer_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CreateEntryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateEntryResponse) ProtoMessage() {}
func (x *CreateEntryResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[23]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CreateEntryResponse.ProtoReflect.Descriptor instead.
func (*CreateEntryResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{23}
}
func (x *CreateEntryResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *CreateEntryResponse) GetMetadataEvent() *SubscribeMetadataResponse {
if x != nil {
return x.MetadataEvent
}
return nil
}
func (x *CreateEntryResponse) GetErrorCode() FilerError {
if x != nil {
return x.ErrorCode
}
return FilerError_OK
}
func (x *CreateEntryResponse) GetLogTsNs() int64 {
if x != nil {
return x.LogTsNs
}
return 0
}
func (x *CreateEntryResponse) GetLogSignature() int32 {
if x != nil {
return x.LogSignature
}
return 0
}
type UpdateEntryRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
Entry *Entry `protobuf:"bytes,2,opt,name=entry,proto3" json:"entry,omitempty"`
IsFromOtherCluster bool `protobuf:"varint,3,opt,name=is_from_other_cluster,json=isFromOtherCluster,proto3" json:"is_from_other_cluster,omitempty"`
Signatures []int32 `protobuf:"varint,4,rep,packed,name=signatures,proto3" json:"signatures,omitempty"`
ExpectedExtended map[string][]byte `protobuf:"bytes,5,rep,name=expected_extended,json=expectedExtended,proto3" json:"expected_extended,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// Optional precondition evaluated against the current entry atomically with
// the write, under the filer's per-path lock. The caller must route the
// key's writes to this entry's owner filer for the check to be authoritative.
Condition *WriteCondition `protobuf:"bytes,6,opt,name=condition,proto3" json:"condition,omitempty"`
IsMoved bool `protobuf:"varint,7,opt,name=is_moved,json=isMoved,proto3" json:"is_moved,omitempty"` // set on a forwarded request so the owner applies it locally
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *UpdateEntryRequest) Reset() {
*x = UpdateEntryRequest{}
mi := &file_filer_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *UpdateEntryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateEntryRequest) ProtoMessage() {}
func (x *UpdateEntryRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[24]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateEntryRequest.ProtoReflect.Descriptor instead.
func (*UpdateEntryRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{24}
}
func (x *UpdateEntryRequest) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *UpdateEntryRequest) GetEntry() *Entry {
if x != nil {
return x.Entry
}
return nil
}
func (x *UpdateEntryRequest) GetIsFromOtherCluster() bool {
if x != nil {
return x.IsFromOtherCluster
}
return false
}
func (x *UpdateEntryRequest) GetSignatures() []int32 {
if x != nil {
return x.Signatures
}
return nil
}
func (x *UpdateEntryRequest) GetExpectedExtended() map[string][]byte {
if x != nil {
return x.ExpectedExtended
}
return nil
}
func (x *UpdateEntryRequest) GetCondition() *WriteCondition {
if x != nil {
return x.Condition
}
return nil
}
func (x *UpdateEntryRequest) GetIsMoved() bool {
if x != nil {
return x.IsMoved
}
return false
}
type UpdateEntryResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
MetadataEvent *SubscribeMetadataResponse `protobuf:"bytes,1,opt,name=metadata_event,json=metadataEvent,proto3" json:"metadata_event,omitempty"`
// filer log position stamped under the path lock before the write:
// every event at or below it is reflected in the acknowledged state
LogTsNs int64 `protobuf:"varint,2,opt,name=log_ts_ns,json=logTsNs,proto3" json:"log_ts_ns,omitempty"`
LogSignature int32 `protobuf:"varint,3,opt,name=log_signature,json=logSignature,proto3" json:"log_signature,omitempty"` // filer whose clock stamped log_ts_ns
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *UpdateEntryResponse) Reset() {
*x = UpdateEntryResponse{}
mi := &file_filer_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *UpdateEntryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateEntryResponse) ProtoMessage() {}
func (x *UpdateEntryResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[25]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateEntryResponse.ProtoReflect.Descriptor instead.
func (*UpdateEntryResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{25}
}
func (x *UpdateEntryResponse) GetMetadataEvent() *SubscribeMetadataResponse {
if x != nil {
return x.MetadataEvent
}
return nil
}
func (x *UpdateEntryResponse) GetLogTsNs() int64 {
if x != nil {
return x.LogTsNs
}
return 0
}
func (x *UpdateEntryResponse) GetLogSignature() int32 {
if x != nil {
return x.LogSignature
}
return 0
}
type TouchAccessTimeRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
ClientAtimeNs int64 `protobuf:"varint,3,opt,name=client_atime_ns,json=clientAtimeNs,proto3" json:"client_atime_ns,omitempty"` // nanoseconds since epoch; filer may override with relatime
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TouchAccessTimeRequest) Reset() {
*x = TouchAccessTimeRequest{}
mi := &file_filer_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *TouchAccessTimeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TouchAccessTimeRequest) ProtoMessage() {}
func (x *TouchAccessTimeRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[26]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TouchAccessTimeRequest.ProtoReflect.Descriptor instead.
func (*TouchAccessTimeRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{26}
}
func (x *TouchAccessTimeRequest) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *TouchAccessTimeRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TouchAccessTimeRequest) GetClientAtimeNs() int64 {
if x != nil {
return x.ClientAtimeNs
}
return 0
}
type TouchAccessTimeResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
PersistedAtimeNs int64 `protobuf:"varint,1,opt,name=persisted_atime_ns,json=persistedAtimeNs,proto3" json:"persisted_atime_ns,omitempty"` // nanoseconds since epoch; 0 if no update was performed
Updated bool `protobuf:"varint,2,opt,name=updated,proto3" json:"updated,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TouchAccessTimeResponse) Reset() {
*x = TouchAccessTimeResponse{}
mi := &file_filer_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *TouchAccessTimeResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TouchAccessTimeResponse) ProtoMessage() {}
func (x *TouchAccessTimeResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[27]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TouchAccessTimeResponse.ProtoReflect.Descriptor instead.
func (*TouchAccessTimeResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{27}
}
func (x *TouchAccessTimeResponse) GetPersistedAtimeNs() int64 {
if x != nil {
return x.PersistedAtimeNs
}
return 0
}
func (x *TouchAccessTimeResponse) GetUpdated() bool {
if x != nil {
return x.Updated
}
return false
}
type AppendToEntryRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
EntryName string `protobuf:"bytes,2,opt,name=entry_name,json=entryName,proto3" json:"entry_name,omitempty"`
Chunks []*FileChunk `protobuf:"bytes,3,rep,name=chunks,proto3" json:"chunks,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AppendToEntryRequest) Reset() {
*x = AppendToEntryRequest{}
mi := &file_filer_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AppendToEntryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AppendToEntryRequest) ProtoMessage() {}
func (x *AppendToEntryRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[28]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AppendToEntryRequest.ProtoReflect.Descriptor instead.
func (*AppendToEntryRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{28}
}
func (x *AppendToEntryRequest) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *AppendToEntryRequest) GetEntryName() string {
if x != nil {
return x.EntryName
}
return ""
}
func (x *AppendToEntryRequest) GetChunks() []*FileChunk {
if x != nil {
return x.Chunks
}
return nil
}
type AppendToEntryResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AppendToEntryResponse) Reset() {
*x = AppendToEntryResponse{}
mi := &file_filer_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AppendToEntryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AppendToEntryResponse) ProtoMessage() {}
func (x *AppendToEntryResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[29]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AppendToEntryResponse.ProtoReflect.Descriptor instead.
func (*AppendToEntryResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{29}
}
type DeleteEntryRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// bool is_directory = 3;
IsDeleteData bool `protobuf:"varint,4,opt,name=is_delete_data,json=isDeleteData,proto3" json:"is_delete_data,omitempty"`
IsRecursive bool `protobuf:"varint,5,opt,name=is_recursive,json=isRecursive,proto3" json:"is_recursive,omitempty"`
IgnoreRecursiveError bool `protobuf:"varint,6,opt,name=ignore_recursive_error,json=ignoreRecursiveError,proto3" json:"ignore_recursive_error,omitempty"`
IsFromOtherCluster bool `protobuf:"varint,7,opt,name=is_from_other_cluster,json=isFromOtherCluster,proto3" json:"is_from_other_cluster,omitempty"`
Signatures []int32 `protobuf:"varint,8,rep,packed,name=signatures,proto3" json:"signatures,omitempty"`
IfNotModifiedAfter int64 `protobuf:"varint,9,opt,name=if_not_modified_after,json=ifNotModifiedAfter,proto3" json:"if_not_modified_after,omitempty"`
KeepRemoteObject bool `protobuf:"varint,10,opt,name=keep_remote_object,json=keepRemoteObject,proto3" json:"keep_remote_object,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DeleteEntryRequest) Reset() {
*x = DeleteEntryRequest{}
mi := &file_filer_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DeleteEntryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteEntryRequest) ProtoMessage() {}
func (x *DeleteEntryRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[30]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteEntryRequest.ProtoReflect.Descriptor instead.
func (*DeleteEntryRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{30}
}
func (x *DeleteEntryRequest) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *DeleteEntryRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *DeleteEntryRequest) GetIsDeleteData() bool {
if x != nil {
return x.IsDeleteData
}
return false
}
func (x *DeleteEntryRequest) GetIsRecursive() bool {
if x != nil {
return x.IsRecursive
}
return false
}
func (x *DeleteEntryRequest) GetIgnoreRecursiveError() bool {
if x != nil {
return x.IgnoreRecursiveError
}
return false
}
func (x *DeleteEntryRequest) GetIsFromOtherCluster() bool {
if x != nil {
return x.IsFromOtherCluster
}
return false
}
func (x *DeleteEntryRequest) GetSignatures() []int32 {
if x != nil {
return x.Signatures
}
return nil
}
func (x *DeleteEntryRequest) GetIfNotModifiedAfter() int64 {
if x != nil {
return x.IfNotModifiedAfter
}
return 0
}
func (x *DeleteEntryRequest) GetKeepRemoteObject() bool {
if x != nil {
return x.KeepRemoteObject
}
return false
}
type DeleteEntryResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
MetadataEvent *SubscribeMetadataResponse `protobuf:"bytes,2,opt,name=metadata_event,json=metadataEvent,proto3" json:"metadata_event,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DeleteEntryResponse) Reset() {
*x = DeleteEntryResponse{}
mi := &file_filer_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DeleteEntryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteEntryResponse) ProtoMessage() {}
func (x *DeleteEntryResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[31]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteEntryResponse.ProtoReflect.Descriptor instead.
func (*DeleteEntryResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{31}
}
func (x *DeleteEntryResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *DeleteEntryResponse) GetMetadataEvent() *SubscribeMetadataResponse {
if x != nil {
return x.MetadataEvent
}
return nil
}
type AtomicRenameEntryRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
OldDirectory string `protobuf:"bytes,1,opt,name=old_directory,json=oldDirectory,proto3" json:"old_directory,omitempty"`
OldName string `protobuf:"bytes,2,opt,name=old_name,json=oldName,proto3" json:"old_name,omitempty"`
NewDirectory string `protobuf:"bytes,3,opt,name=new_directory,json=newDirectory,proto3" json:"new_directory,omitempty"`
NewName string `protobuf:"bytes,4,opt,name=new_name,json=newName,proto3" json:"new_name,omitempty"`
Signatures []int32 `protobuf:"varint,5,rep,packed,name=signatures,proto3" json:"signatures,omitempty"`
// When true, the rename fails with ErrEntryAlreadyExists if the target
// already exists. Lets a caller that authorized the rename without delete
// access on an absent target stay safe if one is created concurrently.
FailIfTargetExists bool `protobuf:"varint,6,opt,name=fail_if_target_exists,json=failIfTargetExists,proto3" json:"fail_if_target_exists,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AtomicRenameEntryRequest) Reset() {
*x = AtomicRenameEntryRequest{}
mi := &file_filer_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AtomicRenameEntryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AtomicRenameEntryRequest) ProtoMessage() {}
func (x *AtomicRenameEntryRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[32]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AtomicRenameEntryRequest.ProtoReflect.Descriptor instead.
func (*AtomicRenameEntryRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{32}
}
func (x *AtomicRenameEntryRequest) GetOldDirectory() string {
if x != nil {
return x.OldDirectory
}
return ""
}
func (x *AtomicRenameEntryRequest) GetOldName() string {
if x != nil {
return x.OldName
}
return ""
}
func (x *AtomicRenameEntryRequest) GetNewDirectory() string {
if x != nil {
return x.NewDirectory
}
return ""
}
func (x *AtomicRenameEntryRequest) GetNewName() string {
if x != nil {
return x.NewName
}
return ""
}
func (x *AtomicRenameEntryRequest) GetSignatures() []int32 {
if x != nil {
return x.Signatures
}
return nil
}
func (x *AtomicRenameEntryRequest) GetFailIfTargetExists() bool {
if x != nil {
return x.FailIfTargetExists
}
return false
}
type AtomicRenameEntryResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AtomicRenameEntryResponse) Reset() {
*x = AtomicRenameEntryResponse{}
mi := &file_filer_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AtomicRenameEntryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AtomicRenameEntryResponse) ProtoMessage() {}
func (x *AtomicRenameEntryResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[33]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AtomicRenameEntryResponse.ProtoReflect.Descriptor instead.
func (*AtomicRenameEntryResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{33}
}
type StreamRenameEntryRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
OldDirectory string `protobuf:"bytes,1,opt,name=old_directory,json=oldDirectory,proto3" json:"old_directory,omitempty"`
OldName string `protobuf:"bytes,2,opt,name=old_name,json=oldName,proto3" json:"old_name,omitempty"`
NewDirectory string `protobuf:"bytes,3,opt,name=new_directory,json=newDirectory,proto3" json:"new_directory,omitempty"`
NewName string `protobuf:"bytes,4,opt,name=new_name,json=newName,proto3" json:"new_name,omitempty"`
Signatures []int32 `protobuf:"varint,5,rep,packed,name=signatures,proto3" json:"signatures,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StreamRenameEntryRequest) Reset() {
*x = StreamRenameEntryRequest{}
mi := &file_filer_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StreamRenameEntryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StreamRenameEntryRequest) ProtoMessage() {}
func (x *StreamRenameEntryRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[34]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StreamRenameEntryRequest.ProtoReflect.Descriptor instead.
func (*StreamRenameEntryRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{34}
}
func (x *StreamRenameEntryRequest) GetOldDirectory() string {
if x != nil {
return x.OldDirectory
}
return ""
}
func (x *StreamRenameEntryRequest) GetOldName() string {
if x != nil {
return x.OldName
}
return ""
}
func (x *StreamRenameEntryRequest) GetNewDirectory() string {
if x != nil {
return x.NewDirectory
}
return ""
}
func (x *StreamRenameEntryRequest) GetNewName() string {
if x != nil {
return x.NewName
}
return ""
}
func (x *StreamRenameEntryRequest) GetSignatures() []int32 {
if x != nil {
return x.Signatures
}
return nil
}
type StreamRenameEntryResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
EventNotification *EventNotification `protobuf:"bytes,2,opt,name=event_notification,json=eventNotification,proto3" json:"event_notification,omitempty"`
TsNs int64 `protobuf:"varint,3,opt,name=ts_ns,json=tsNs,proto3" json:"ts_ns,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StreamRenameEntryResponse) Reset() {
*x = StreamRenameEntryResponse{}
mi := &file_filer_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StreamRenameEntryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StreamRenameEntryResponse) ProtoMessage() {}
func (x *StreamRenameEntryResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[35]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StreamRenameEntryResponse.ProtoReflect.Descriptor instead.
func (*StreamRenameEntryResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{35}
}
func (x *StreamRenameEntryResponse) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *StreamRenameEntryResponse) GetEventNotification() *EventNotification {
if x != nil {
return x.EventNotification
}
return nil
}
func (x *StreamRenameEntryResponse) GetTsNs() int64 {
if x != nil {
return x.TsNs
}
return 0
}
type AssignVolumeRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"`
Replication string `protobuf:"bytes,3,opt,name=replication,proto3" json:"replication,omitempty"`
TtlSec int32 `protobuf:"varint,4,opt,name=ttl_sec,json=ttlSec,proto3" json:"ttl_sec,omitempty"`
DataCenter string `protobuf:"bytes,5,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"`
Path string `protobuf:"bytes,6,opt,name=path,proto3" json:"path,omitempty"`
Rack string `protobuf:"bytes,7,opt,name=rack,proto3" json:"rack,omitempty"`
DataNode string `protobuf:"bytes,9,opt,name=data_node,json=dataNode,proto3" json:"data_node,omitempty"`
DiskType string `protobuf:"bytes,8,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"`
ExpectedDataSize uint64 `protobuf:"varint,10,opt,name=expected_data_size,json=expectedDataSize,proto3" json:"expected_data_size,omitempty"` // hint for size-aware volume selection
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AssignVolumeRequest) Reset() {
*x = AssignVolumeRequest{}
mi := &file_filer_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AssignVolumeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AssignVolumeRequest) ProtoMessage() {}
func (x *AssignVolumeRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[36]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AssignVolumeRequest.ProtoReflect.Descriptor instead.
func (*AssignVolumeRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{36}
}
func (x *AssignVolumeRequest) GetCount() int32 {
if x != nil {
return x.Count
}
return 0
}
func (x *AssignVolumeRequest) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *AssignVolumeRequest) GetReplication() string {
if x != nil {
return x.Replication
}
return ""
}
func (x *AssignVolumeRequest) GetTtlSec() int32 {
if x != nil {
return x.TtlSec
}
return 0
}
func (x *AssignVolumeRequest) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
func (x *AssignVolumeRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *AssignVolumeRequest) GetRack() string {
if x != nil {
return x.Rack
}
return ""
}
func (x *AssignVolumeRequest) GetDataNode() string {
if x != nil {
return x.DataNode
}
return ""
}
func (x *AssignVolumeRequest) GetDiskType() string {
if x != nil {
return x.DiskType
}
return ""
}
func (x *AssignVolumeRequest) GetExpectedDataSize() uint64 {
if x != nil {
return x.ExpectedDataSize
}
return 0
}
type AssignVolumeResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId,proto3" json:"file_id,omitempty"`
Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`
Auth string `protobuf:"bytes,5,opt,name=auth,proto3" json:"auth,omitempty"`
Collection string `protobuf:"bytes,6,opt,name=collection,proto3" json:"collection,omitempty"`
Replication string `protobuf:"bytes,7,opt,name=replication,proto3" json:"replication,omitempty"`
Error string `protobuf:"bytes,8,opt,name=error,proto3" json:"error,omitempty"`
Location *Location `protobuf:"bytes,9,opt,name=location,proto3" json:"location,omitempty"`
Replicas []*Location `protobuf:"bytes,10,rep,name=replicas,proto3" json:"replicas,omitempty"`
// fsync is the storage rule's fsync decision for the assigned path, so the
// client can carry it onto the volume server upload request.
Fsync bool `protobuf:"varint,11,opt,name=fsync,proto3" json:"fsync,omitempty"`
// error_code classifies error for callers that must branch on it; error
// keeps the human-readable text for clients that predate the field.
ErrorCode FilerError `protobuf:"varint,12,opt,name=error_code,json=errorCode,proto3,enum=filer_pb.FilerError" json:"error_code,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AssignVolumeResponse) Reset() {
*x = AssignVolumeResponse{}
mi := &file_filer_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AssignVolumeResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AssignVolumeResponse) ProtoMessage() {}
func (x *AssignVolumeResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[37]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AssignVolumeResponse.ProtoReflect.Descriptor instead.
func (*AssignVolumeResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{37}
}
func (x *AssignVolumeResponse) GetFileId() string {
if x != nil {
return x.FileId
}
return ""
}
func (x *AssignVolumeResponse) GetCount() int32 {
if x != nil {
return x.Count
}
return 0
}
func (x *AssignVolumeResponse) GetAuth() string {
if x != nil {
return x.Auth
}
return ""
}
func (x *AssignVolumeResponse) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *AssignVolumeResponse) GetReplication() string {
if x != nil {
return x.Replication
}
return ""
}
func (x *AssignVolumeResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *AssignVolumeResponse) GetLocation() *Location {
if x != nil {
return x.Location
}
return nil
}
func (x *AssignVolumeResponse) GetReplicas() []*Location {
if x != nil {
return x.Replicas
}
return nil
}
func (x *AssignVolumeResponse) GetFsync() bool {
if x != nil {
return x.Fsync
}
return false
}
func (x *AssignVolumeResponse) GetErrorCode() FilerError {
if x != nil {
return x.ErrorCode
}
return FilerError_OK
}
type LookupVolumeRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
VolumeIds []string `protobuf:"bytes,1,rep,name=volume_ids,json=volumeIds,proto3" json:"volume_ids,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupVolumeRequest) Reset() {
*x = LookupVolumeRequest{}
mi := &file_filer_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupVolumeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupVolumeRequest) ProtoMessage() {}
func (x *LookupVolumeRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[38]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupVolumeRequest.ProtoReflect.Descriptor instead.
func (*LookupVolumeRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{38}
}
func (x *LookupVolumeRequest) GetVolumeIds() []string {
if x != nil {
return x.VolumeIds
}
return nil
}
type Locations struct {
state protoimpl.MessageState `protogen:"open.v1"`
Locations []*Location `protobuf:"bytes,1,rep,name=locations,proto3" json:"locations,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Locations) Reset() {
*x = Locations{}
mi := &file_filer_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Locations) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Locations) ProtoMessage() {}
func (x *Locations) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[39]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Locations.ProtoReflect.Descriptor instead.
func (*Locations) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{39}
}
func (x *Locations) GetLocations() []*Location {
if x != nil {
return x.Locations
}
return nil
}
type Location struct {
state protoimpl.MessageState `protogen:"open.v1"`
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
PublicUrl string `protobuf:"bytes,2,opt,name=public_url,json=publicUrl,proto3" json:"public_url,omitempty"`
GrpcPort uint32 `protobuf:"varint,3,opt,name=grpc_port,json=grpcPort,proto3" json:"grpc_port,omitempty"`
DataCenter string `protobuf:"bytes,4,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"`
DataInRemote bool `protobuf:"varint,5,opt,name=data_in_remote,json=dataInRemote,proto3" json:"data_in_remote,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Location) Reset() {
*x = Location{}
mi := &file_filer_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Location) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Location) ProtoMessage() {}
func (x *Location) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[40]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Location.ProtoReflect.Descriptor instead.
func (*Location) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{40}
}
func (x *Location) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *Location) GetPublicUrl() string {
if x != nil {
return x.PublicUrl
}
return ""
}
func (x *Location) GetGrpcPort() uint32 {
if x != nil {
return x.GrpcPort
}
return 0
}
func (x *Location) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
func (x *Location) GetDataInRemote() bool {
if x != nil {
return x.DataInRemote
}
return false
}
type LookupVolumeResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
LocationsMap map[string]*Locations `protobuf:"bytes,1,rep,name=locations_map,json=locationsMap,proto3" json:"locations_map,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupVolumeResponse) Reset() {
*x = LookupVolumeResponse{}
mi := &file_filer_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupVolumeResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupVolumeResponse) ProtoMessage() {}
func (x *LookupVolumeResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[41]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupVolumeResponse.ProtoReflect.Descriptor instead.
func (*LookupVolumeResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{41}
}
func (x *LookupVolumeResponse) GetLocationsMap() map[string]*Locations {
if x != nil {
return x.LocationsMap
}
return nil
}
type Collection struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Collection) Reset() {
*x = Collection{}
mi := &file_filer_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Collection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Collection) ProtoMessage() {}
func (x *Collection) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[42]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Collection.ProtoReflect.Descriptor instead.
func (*Collection) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{42}
}
func (x *Collection) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type CollectionListRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
IncludeNormalVolumes bool `protobuf:"varint,1,opt,name=include_normal_volumes,json=includeNormalVolumes,proto3" json:"include_normal_volumes,omitempty"`
IncludeEcVolumes bool `protobuf:"varint,2,opt,name=include_ec_volumes,json=includeEcVolumes,proto3" json:"include_ec_volumes,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CollectionListRequest) Reset() {
*x = CollectionListRequest{}
mi := &file_filer_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CollectionListRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CollectionListRequest) ProtoMessage() {}
func (x *CollectionListRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[43]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CollectionListRequest.ProtoReflect.Descriptor instead.
func (*CollectionListRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{43}
}
func (x *CollectionListRequest) GetIncludeNormalVolumes() bool {
if x != nil {
return x.IncludeNormalVolumes
}
return false
}
func (x *CollectionListRequest) GetIncludeEcVolumes() bool {
if x != nil {
return x.IncludeEcVolumes
}
return false
}
type CollectionListResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Collections []*Collection `protobuf:"bytes,1,rep,name=collections,proto3" json:"collections,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CollectionListResponse) Reset() {
*x = CollectionListResponse{}
mi := &file_filer_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CollectionListResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CollectionListResponse) ProtoMessage() {}
func (x *CollectionListResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[44]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CollectionListResponse.ProtoReflect.Descriptor instead.
func (*CollectionListResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{44}
}
func (x *CollectionListResponse) GetCollections() []*Collection {
if x != nil {
return x.Collections
}
return nil
}
type DeleteCollectionRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Collection string `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DeleteCollectionRequest) Reset() {
*x = DeleteCollectionRequest{}
mi := &file_filer_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DeleteCollectionRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteCollectionRequest) ProtoMessage() {}
func (x *DeleteCollectionRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[45]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteCollectionRequest.ProtoReflect.Descriptor instead.
func (*DeleteCollectionRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{45}
}
func (x *DeleteCollectionRequest) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
type DeleteCollectionResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DeleteCollectionResponse) Reset() {
*x = DeleteCollectionResponse{}
mi := &file_filer_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DeleteCollectionResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteCollectionResponse) ProtoMessage() {}
func (x *DeleteCollectionResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[46]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteCollectionResponse.ProtoReflect.Descriptor instead.
func (*DeleteCollectionResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{46}
}
type StatisticsRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Replication string `protobuf:"bytes,1,opt,name=replication,proto3" json:"replication,omitempty"`
Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"`
Ttl string `protobuf:"bytes,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
DiskType string `protobuf:"bytes,4,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StatisticsRequest) Reset() {
*x = StatisticsRequest{}
mi := &file_filer_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StatisticsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatisticsRequest) ProtoMessage() {}
func (x *StatisticsRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[47]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatisticsRequest.ProtoReflect.Descriptor instead.
func (*StatisticsRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{47}
}
func (x *StatisticsRequest) GetReplication() string {
if x != nil {
return x.Replication
}
return ""
}
func (x *StatisticsRequest) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *StatisticsRequest) GetTtl() string {
if x != nil {
return x.Ttl
}
return ""
}
func (x *StatisticsRequest) GetDiskType() string {
if x != nil {
return x.DiskType
}
return ""
}
type StatisticsResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
TotalSize uint64 `protobuf:"varint,4,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`
UsedSize uint64 `protobuf:"varint,5,opt,name=used_size,json=usedSize,proto3" json:"used_size,omitempty"`
FileCount uint64 `protobuf:"varint,6,opt,name=file_count,json=fileCount,proto3" json:"file_count,omitempty"`
// sizes counting one copy of the data, as reported by the master
LogicalTotalSize uint64 `protobuf:"varint,7,opt,name=logical_total_size,json=logicalTotalSize,proto3" json:"logical_total_size,omitempty"`
LogicalUsedSize uint64 `protobuf:"varint,8,opt,name=logical_used_size,json=logicalUsedSize,proto3" json:"logical_used_size,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StatisticsResponse) Reset() {
*x = StatisticsResponse{}
mi := &file_filer_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StatisticsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatisticsResponse) ProtoMessage() {}
func (x *StatisticsResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[48]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatisticsResponse.ProtoReflect.Descriptor instead.
func (*StatisticsResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{48}
}
func (x *StatisticsResponse) GetTotalSize() uint64 {
if x != nil {
return x.TotalSize
}
return 0
}
func (x *StatisticsResponse) GetUsedSize() uint64 {
if x != nil {
return x.UsedSize
}
return 0
}
func (x *StatisticsResponse) GetFileCount() uint64 {
if x != nil {
return x.FileCount
}
return 0
}
func (x *StatisticsResponse) GetLogicalTotalSize() uint64 {
if x != nil {
return x.LogicalTotalSize
}
return 0
}
func (x *StatisticsResponse) GetLogicalUsedSize() uint64 {
if x != nil {
return x.LogicalUsedSize
}
return 0
}
type PingRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Target string `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"` // default to ping itself
TargetType string `protobuf:"bytes,2,opt,name=target_type,json=targetType,proto3" json:"target_type,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PingRequest) Reset() {
*x = PingRequest{}
mi := &file_filer_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PingRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PingRequest) ProtoMessage() {}
func (x *PingRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[49]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PingRequest.ProtoReflect.Descriptor instead.
func (*PingRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{49}
}
func (x *PingRequest) GetTarget() string {
if x != nil {
return x.Target
}
return ""
}
func (x *PingRequest) GetTargetType() string {
if x != nil {
return x.TargetType
}
return ""
}
type PingResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
StartTimeNs int64 `protobuf:"varint,1,opt,name=start_time_ns,json=startTimeNs,proto3" json:"start_time_ns,omitempty"`
RemoteTimeNs int64 `protobuf:"varint,2,opt,name=remote_time_ns,json=remoteTimeNs,proto3" json:"remote_time_ns,omitempty"`
StopTimeNs int64 `protobuf:"varint,3,opt,name=stop_time_ns,json=stopTimeNs,proto3" json:"stop_time_ns,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PingResponse) Reset() {
*x = PingResponse{}
mi := &file_filer_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PingResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PingResponse) ProtoMessage() {}
func (x *PingResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[50]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PingResponse.ProtoReflect.Descriptor instead.
func (*PingResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{50}
}
func (x *PingResponse) GetStartTimeNs() int64 {
if x != nil {
return x.StartTimeNs
}
return 0
}
func (x *PingResponse) GetRemoteTimeNs() int64 {
if x != nil {
return x.RemoteTimeNs
}
return 0
}
func (x *PingResponse) GetStopTimeNs() int64 {
if x != nil {
return x.StopTimeNs
}
return 0
}
type GetFilerConfigurationRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetFilerConfigurationRequest) Reset() {
*x = GetFilerConfigurationRequest{}
mi := &file_filer_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetFilerConfigurationRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetFilerConfigurationRequest) ProtoMessage() {}
func (x *GetFilerConfigurationRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[51]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetFilerConfigurationRequest.ProtoReflect.Descriptor instead.
func (*GetFilerConfigurationRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{51}
}
type GetFilerConfigurationResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Masters []string `protobuf:"bytes,1,rep,name=masters,proto3" json:"masters,omitempty"`
Replication string `protobuf:"bytes,2,opt,name=replication,proto3" json:"replication,omitempty"`
Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
MaxMb uint32 `protobuf:"varint,4,opt,name=max_mb,json=maxMb,proto3" json:"max_mb,omitempty"`
DirBuckets string `protobuf:"bytes,5,opt,name=dir_buckets,json=dirBuckets,proto3" json:"dir_buckets,omitempty"`
Cipher bool `protobuf:"varint,7,opt,name=cipher,proto3" json:"cipher,omitempty"`
Signature int32 `protobuf:"varint,8,opt,name=signature,proto3" json:"signature,omitempty"`
MetricsAddress string `protobuf:"bytes,9,opt,name=metrics_address,json=metricsAddress,proto3" json:"metrics_address,omitempty"`
MetricsIntervalSec int32 `protobuf:"varint,10,opt,name=metrics_interval_sec,json=metricsIntervalSec,proto3" json:"metrics_interval_sec,omitempty"`
Version string `protobuf:"bytes,11,opt,name=version,proto3" json:"version,omitempty"`
ClusterId string `protobuf:"bytes,12,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
FilerGroup string `protobuf:"bytes,13,opt,name=filer_group,json=filerGroup,proto3" json:"filer_group,omitempty"`
MajorVersion int32 `protobuf:"varint,14,opt,name=major_version,json=majorVersion,proto3" json:"major_version,omitempty"`
MinorVersion int32 `protobuf:"varint,15,opt,name=minor_version,json=minorVersion,proto3" json:"minor_version,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetFilerConfigurationResponse) Reset() {
*x = GetFilerConfigurationResponse{}
mi := &file_filer_proto_msgTypes[52]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetFilerConfigurationResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetFilerConfigurationResponse) ProtoMessage() {}
func (x *GetFilerConfigurationResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[52]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetFilerConfigurationResponse.ProtoReflect.Descriptor instead.
func (*GetFilerConfigurationResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{52}
}
func (x *GetFilerConfigurationResponse) GetMasters() []string {
if x != nil {
return x.Masters
}
return nil
}
func (x *GetFilerConfigurationResponse) GetReplication() string {
if x != nil {
return x.Replication
}
return ""
}
func (x *GetFilerConfigurationResponse) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *GetFilerConfigurationResponse) GetMaxMb() uint32 {
if x != nil {
return x.MaxMb
}
return 0
}
func (x *GetFilerConfigurationResponse) GetDirBuckets() string {
if x != nil {
return x.DirBuckets
}
return ""
}
func (x *GetFilerConfigurationResponse) GetCipher() bool {
if x != nil {
return x.Cipher
}
return false
}
func (x *GetFilerConfigurationResponse) GetSignature() int32 {
if x != nil {
return x.Signature
}
return 0
}
func (x *GetFilerConfigurationResponse) GetMetricsAddress() string {
if x != nil {
return x.MetricsAddress
}
return ""
}
func (x *GetFilerConfigurationResponse) GetMetricsIntervalSec() int32 {
if x != nil {
return x.MetricsIntervalSec
}
return 0
}
func (x *GetFilerConfigurationResponse) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *GetFilerConfigurationResponse) GetClusterId() string {
if x != nil {
return x.ClusterId
}
return ""
}
func (x *GetFilerConfigurationResponse) GetFilerGroup() string {
if x != nil {
return x.FilerGroup
}
return ""
}
func (x *GetFilerConfigurationResponse) GetMajorVersion() int32 {
if x != nil {
return x.MajorVersion
}
return 0
}
func (x *GetFilerConfigurationResponse) GetMinorVersion() int32 {
if x != nil {
return x.MinorVersion
}
return 0
}
type SubscribeMetadataRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
ClientName string `protobuf:"bytes,1,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"`
PathPrefix string `protobuf:"bytes,2,opt,name=path_prefix,json=pathPrefix,proto3" json:"path_prefix,omitempty"`
SinceNs int64 `protobuf:"varint,3,opt,name=since_ns,json=sinceNs,proto3" json:"since_ns,omitempty"`
Signature int32 `protobuf:"varint,4,opt,name=signature,proto3" json:"signature,omitempty"`
PathPrefixes []string `protobuf:"bytes,6,rep,name=path_prefixes,json=pathPrefixes,proto3" json:"path_prefixes,omitempty"`
ClientId int32 `protobuf:"varint,7,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
UntilNs int64 `protobuf:"varint,8,opt,name=until_ns,json=untilNs,proto3" json:"until_ns,omitempty"`
ClientEpoch int32 `protobuf:"varint,9,opt,name=client_epoch,json=clientEpoch,proto3" json:"client_epoch,omitempty"`
Directories []string `protobuf:"bytes,10,rep,name=directories,proto3" json:"directories,omitempty"` // exact directory to watch
ClientSupportsBatching bool `protobuf:"varint,11,opt,name=client_supports_batching,json=clientSupportsBatching,proto3" json:"client_supports_batching,omitempty"` // client can unpack SubscribeMetadataResponse.events
ClientSupportsMetadataChunks bool `protobuf:"varint,12,opt,name=client_supports_metadata_chunks,json=clientSupportsMetadataChunks,proto3" json:"client_supports_metadata_chunks,omitempty"` // client can read log file chunks from volume servers
ClientSupportsIdleHeartbeat bool `protobuf:"varint,13,opt,name=client_supports_idle_heartbeat,json=clientSupportsIdleHeartbeat,proto3" json:"client_supports_idle_heartbeat,omitempty"` // server may send empty responses carrying the current time while the client is caught up
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SubscribeMetadataRequest) Reset() {
*x = SubscribeMetadataRequest{}
mi := &file_filer_proto_msgTypes[53]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SubscribeMetadataRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubscribeMetadataRequest) ProtoMessage() {}
func (x *SubscribeMetadataRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[53]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SubscribeMetadataRequest.ProtoReflect.Descriptor instead.
func (*SubscribeMetadataRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{53}
}
func (x *SubscribeMetadataRequest) GetClientName() string {
if x != nil {
return x.ClientName
}
return ""
}
func (x *SubscribeMetadataRequest) GetPathPrefix() string {
if x != nil {
return x.PathPrefix
}
return ""
}
func (x *SubscribeMetadataRequest) GetSinceNs() int64 {
if x != nil {
return x.SinceNs
}
return 0
}
func (x *SubscribeMetadataRequest) GetSignature() int32 {
if x != nil {
return x.Signature
}
return 0
}
func (x *SubscribeMetadataRequest) GetPathPrefixes() []string {
if x != nil {
return x.PathPrefixes
}
return nil
}
func (x *SubscribeMetadataRequest) GetClientId() int32 {
if x != nil {
return x.ClientId
}
return 0
}
func (x *SubscribeMetadataRequest) GetUntilNs() int64 {
if x != nil {
return x.UntilNs
}
return 0
}
func (x *SubscribeMetadataRequest) GetClientEpoch() int32 {
if x != nil {
return x.ClientEpoch
}
return 0
}
func (x *SubscribeMetadataRequest) GetDirectories() []string {
if x != nil {
return x.Directories
}
return nil
}
func (x *SubscribeMetadataRequest) GetClientSupportsBatching() bool {
if x != nil {
return x.ClientSupportsBatching
}
return false
}
func (x *SubscribeMetadataRequest) GetClientSupportsMetadataChunks() bool {
if x != nil {
return x.ClientSupportsMetadataChunks
}
return false
}
func (x *SubscribeMetadataRequest) GetClientSupportsIdleHeartbeat() bool {
if x != nil {
return x.ClientSupportsIdleHeartbeat
}
return false
}
type SubscribeMetadataResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
EventNotification *EventNotification `protobuf:"bytes,2,opt,name=event_notification,json=eventNotification,proto3" json:"event_notification,omitempty"`
TsNs int64 `protobuf:"varint,3,opt,name=ts_ns,json=tsNs,proto3" json:"ts_ns,omitempty"`
Events []*SubscribeMetadataResponse `protobuf:"bytes,4,rep,name=events,proto3" json:"events,omitempty"` // batch of additional events (backlog catch-up)
LogFileRefs []*LogFileChunkRef `protobuf:"bytes,5,rep,name=log_file_refs,json=logFileRefs,proto3" json:"log_file_refs,omitempty"` // log file chunk refs for client direct-read
FlushedTsNs int64 `protobuf:"varint,6,opt,name=flushed_ts_ns,json=flushedTsNs,proto3" json:"flushed_ts_ns,omitempty"` // local log-buffer flush watermark: everything at or below it is on disk
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SubscribeMetadataResponse) Reset() {
*x = SubscribeMetadataResponse{}
mi := &file_filer_proto_msgTypes[54]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SubscribeMetadataResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubscribeMetadataResponse) ProtoMessage() {}
func (x *SubscribeMetadataResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[54]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SubscribeMetadataResponse.ProtoReflect.Descriptor instead.
func (*SubscribeMetadataResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{54}
}
func (x *SubscribeMetadataResponse) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *SubscribeMetadataResponse) GetEventNotification() *EventNotification {
if x != nil {
return x.EventNotification
}
return nil
}
func (x *SubscribeMetadataResponse) GetTsNs() int64 {
if x != nil {
return x.TsNs
}
return 0
}
func (x *SubscribeMetadataResponse) GetEvents() []*SubscribeMetadataResponse {
if x != nil {
return x.Events
}
return nil
}
func (x *SubscribeMetadataResponse) GetLogFileRefs() []*LogFileChunkRef {
if x != nil {
return x.LogFileRefs
}
return nil
}
func (x *SubscribeMetadataResponse) GetFlushedTsNs() int64 {
if x != nil {
return x.FlushedTsNs
}
return 0
}
type ListMetadataSubscribersRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
ClientTypes []string `protobuf:"bytes,1,rep,name=client_types,json=clientTypes,proto3" json:"client_types,omitempty"` // optional filter by client type, e.g. "mount"; empty = all
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListMetadataSubscribersRequest) Reset() {
*x = ListMetadataSubscribersRequest{}
mi := &file_filer_proto_msgTypes[55]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListMetadataSubscribersRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListMetadataSubscribersRequest) ProtoMessage() {}
func (x *ListMetadataSubscribersRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[55]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListMetadataSubscribersRequest.ProtoReflect.Descriptor instead.
func (*ListMetadataSubscribersRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{55}
}
func (x *ListMetadataSubscribersRequest) GetClientTypes() []string {
if x != nil {
return x.ClientTypes
}
return nil
}
type ListMetadataSubscribersResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Subscribers []*MetadataSubscriber `protobuf:"bytes,1,rep,name=subscribers,proto3" json:"subscribers,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListMetadataSubscribersResponse) Reset() {
*x = ListMetadataSubscribersResponse{}
mi := &file_filer_proto_msgTypes[56]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListMetadataSubscribersResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListMetadataSubscribersResponse) ProtoMessage() {}
func (x *ListMetadataSubscribersResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[56]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListMetadataSubscribersResponse.ProtoReflect.Descriptor instead.
func (*ListMetadataSubscribersResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{56}
}
func (x *ListMetadataSubscribersResponse) GetSubscribers() []*MetadataSubscriber {
if x != nil {
return x.Subscribers
}
return nil
}
type MetadataSubscriber struct {
state protoimpl.MessageState `protogen:"open.v1"`
ClientName string `protobuf:"bytes,1,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"` // "<type>@<address>"
ClientType string `protobuf:"bytes,2,opt,name=client_type,json=clientType,proto3" json:"client_type,omitempty"` // e.g. "mount", "sw-vfs", "s3", "filer:<addr>"
Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` // client peer address
PathPrefix string `protobuf:"bytes,4,opt,name=path_prefix,json=pathPrefix,proto3" json:"path_prefix,omitempty"` // subscribed path prefix
ClientId int32 `protobuf:"varint,5,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
ClientEpoch int32 `protobuf:"varint,6,opt,name=client_epoch,json=clientEpoch,proto3" json:"client_epoch,omitempty"`
ConnectedAtNs int64 `protobuf:"varint,7,opt,name=connected_at_ns,json=connectedAtNs,proto3" json:"connected_at_ns,omitempty"`
FilerAddress string `protobuf:"bytes,8,opt,name=filer_address,json=filerAddress,proto3" json:"filer_address,omitempty"` // the filer this subscriber is connected to
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MetadataSubscriber) Reset() {
*x = MetadataSubscriber{}
mi := &file_filer_proto_msgTypes[57]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MetadataSubscriber) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MetadataSubscriber) ProtoMessage() {}
func (x *MetadataSubscriber) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[57]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MetadataSubscriber.ProtoReflect.Descriptor instead.
func (*MetadataSubscriber) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{57}
}
func (x *MetadataSubscriber) GetClientName() string {
if x != nil {
return x.ClientName
}
return ""
}
func (x *MetadataSubscriber) GetClientType() string {
if x != nil {
return x.ClientType
}
return ""
}
func (x *MetadataSubscriber) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *MetadataSubscriber) GetPathPrefix() string {
if x != nil {
return x.PathPrefix
}
return ""
}
func (x *MetadataSubscriber) GetClientId() int32 {
if x != nil {
return x.ClientId
}
return 0
}
func (x *MetadataSubscriber) GetClientEpoch() int32 {
if x != nil {
return x.ClientEpoch
}
return 0
}
func (x *MetadataSubscriber) GetConnectedAtNs() int64 {
if x != nil {
return x.ConnectedAtNs
}
return 0
}
func (x *MetadataSubscriber) GetFilerAddress() string {
if x != nil {
return x.FilerAddress
}
return ""
}
// A persisted log file that the client can read directly from volume servers.
// The file format is: [4-byte size | protobuf LogEntry] repeated.
// Each LogEntry.Data contains a marshaled SubscribeMetadataResponse.
type LogFileChunkRef struct {
state protoimpl.MessageState `protogen:"open.v1"`
Chunks []*FileChunk `protobuf:"bytes,1,rep,name=chunks,proto3" json:"chunks,omitempty"` // chunk references (fids) to read from volume servers
FileTsNs int64 `protobuf:"varint,2,opt,name=file_ts_ns,json=fileTsNs,proto3" json:"file_ts_ns,omitempty"` // minute-level timestamp of the log file
FilerId string `protobuf:"bytes,3,opt,name=filer_id,json=filerId,proto3" json:"filer_id,omitempty"` // filer signature suffix from log filename
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LogFileChunkRef) Reset() {
*x = LogFileChunkRef{}
mi := &file_filer_proto_msgTypes[58]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LogFileChunkRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LogFileChunkRef) ProtoMessage() {}
func (x *LogFileChunkRef) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[58]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LogFileChunkRef.ProtoReflect.Descriptor instead.
func (*LogFileChunkRef) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{58}
}
func (x *LogFileChunkRef) GetChunks() []*FileChunk {
if x != nil {
return x.Chunks
}
return nil
}
func (x *LogFileChunkRef) GetFileTsNs() int64 {
if x != nil {
return x.FileTsNs
}
return 0
}
func (x *LogFileChunkRef) GetFilerId() string {
if x != nil {
return x.FilerId
}
return ""
}
type TraverseBfsMetadataRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
ExcludedPrefixes []string `protobuf:"bytes,2,rep,name=excluded_prefixes,json=excludedPrefixes,proto3" json:"excluded_prefixes,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TraverseBfsMetadataRequest) Reset() {
*x = TraverseBfsMetadataRequest{}
mi := &file_filer_proto_msgTypes[59]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *TraverseBfsMetadataRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TraverseBfsMetadataRequest) ProtoMessage() {}
func (x *TraverseBfsMetadataRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[59]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TraverseBfsMetadataRequest.ProtoReflect.Descriptor instead.
func (*TraverseBfsMetadataRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{59}
}
func (x *TraverseBfsMetadataRequest) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *TraverseBfsMetadataRequest) GetExcludedPrefixes() []string {
if x != nil {
return x.ExcludedPrefixes
}
return nil
}
type TraverseBfsMetadataResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
Entry *Entry `protobuf:"bytes,2,opt,name=entry,proto3" json:"entry,omitempty"`
// The sender's per-path commit timestamp (see meta_path_ts.go): the newest
// event time this filer committed for the path, 0 when unrecorded so
// subscribers fall back to the entry's mtime.
EntryTsNs int64 `protobuf:"varint,3,opt,name=entry_ts_ns,json=entryTsNs,proto3" json:"entry_ts_ns,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TraverseBfsMetadataResponse) Reset() {
*x = TraverseBfsMetadataResponse{}
mi := &file_filer_proto_msgTypes[60]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *TraverseBfsMetadataResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TraverseBfsMetadataResponse) ProtoMessage() {}
func (x *TraverseBfsMetadataResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[60]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TraverseBfsMetadataResponse.ProtoReflect.Descriptor instead.
func (*TraverseBfsMetadataResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{60}
}
func (x *TraverseBfsMetadataResponse) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *TraverseBfsMetadataResponse) GetEntry() *Entry {
if x != nil {
return x.Entry
}
return nil
}
func (x *TraverseBfsMetadataResponse) GetEntryTsNs() int64 {
if x != nil {
return x.EntryTsNs
}
return 0
}
type LogEntry struct {
state protoimpl.MessageState `protogen:"open.v1"`
TsNs int64 `protobuf:"varint,1,opt,name=ts_ns,json=tsNs,proto3" json:"ts_ns,omitempty"`
PartitionKeyHash int32 `protobuf:"varint,2,opt,name=partition_key_hash,json=partitionKeyHash,proto3" json:"partition_key_hash,omitempty"`
Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
Key []byte `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"`
Offset int64 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"` // Sequential offset within partition
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LogEntry) Reset() {
*x = LogEntry{}
mi := &file_filer_proto_msgTypes[61]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LogEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LogEntry) ProtoMessage() {}
func (x *LogEntry) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[61]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LogEntry.ProtoReflect.Descriptor instead.
func (*LogEntry) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{61}
}
func (x *LogEntry) GetTsNs() int64 {
if x != nil {
return x.TsNs
}
return 0
}
func (x *LogEntry) GetPartitionKeyHash() int32 {
if x != nil {
return x.PartitionKeyHash
}
return 0
}
func (x *LogEntry) GetData() []byte {
if x != nil {
return x.Data
}
return nil
}
func (x *LogEntry) GetKey() []byte {
if x != nil {
return x.Key
}
return nil
}
func (x *LogEntry) GetOffset() int64 {
if x != nil {
return x.Offset
}
return 0
}
type KeepConnectedRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
GrpcPort uint32 `protobuf:"varint,2,opt,name=grpc_port,json=grpcPort,proto3" json:"grpc_port,omitempty"`
Resources []string `protobuf:"bytes,3,rep,name=resources,proto3" json:"resources,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *KeepConnectedRequest) Reset() {
*x = KeepConnectedRequest{}
mi := &file_filer_proto_msgTypes[62]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *KeepConnectedRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KeepConnectedRequest) ProtoMessage() {}
func (x *KeepConnectedRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[62]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KeepConnectedRequest.ProtoReflect.Descriptor instead.
func (*KeepConnectedRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{62}
}
func (x *KeepConnectedRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *KeepConnectedRequest) GetGrpcPort() uint32 {
if x != nil {
return x.GrpcPort
}
return 0
}
func (x *KeepConnectedRequest) GetResources() []string {
if x != nil {
return x.Resources
}
return nil
}
type KeepConnectedResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *KeepConnectedResponse) Reset() {
*x = KeepConnectedResponse{}
mi := &file_filer_proto_msgTypes[63]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *KeepConnectedResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KeepConnectedResponse) ProtoMessage() {}
func (x *KeepConnectedResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[63]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KeepConnectedResponse.ProtoReflect.Descriptor instead.
func (*KeepConnectedResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{63}
}
type LocateBrokerRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LocateBrokerRequest) Reset() {
*x = LocateBrokerRequest{}
mi := &file_filer_proto_msgTypes[64]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LocateBrokerRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LocateBrokerRequest) ProtoMessage() {}
func (x *LocateBrokerRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[64]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LocateBrokerRequest.ProtoReflect.Descriptor instead.
func (*LocateBrokerRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{64}
}
func (x *LocateBrokerRequest) GetResource() string {
if x != nil {
return x.Resource
}
return ""
}
type LocateBrokerResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Found bool `protobuf:"varint,1,opt,name=found,proto3" json:"found,omitempty"`
Resources []*LocateBrokerResponse_Resource `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LocateBrokerResponse) Reset() {
*x = LocateBrokerResponse{}
mi := &file_filer_proto_msgTypes[65]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LocateBrokerResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LocateBrokerResponse) ProtoMessage() {}
func (x *LocateBrokerResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[65]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LocateBrokerResponse.ProtoReflect.Descriptor instead.
func (*LocateBrokerResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{65}
}
func (x *LocateBrokerResponse) GetFound() bool {
if x != nil {
return x.Found
}
return false
}
func (x *LocateBrokerResponse) GetResources() []*LocateBrokerResponse_Resource {
if x != nil {
return x.Resources
}
return nil
}
// ///////////////////////
// Key-Value operations
// ///////////////////////
type KvGetRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *KvGetRequest) Reset() {
*x = KvGetRequest{}
mi := &file_filer_proto_msgTypes[66]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *KvGetRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KvGetRequest) ProtoMessage() {}
func (x *KvGetRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[66]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KvGetRequest.ProtoReflect.Descriptor instead.
func (*KvGetRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{66}
}
func (x *KvGetRequest) GetKey() []byte {
if x != nil {
return x.Key
}
return nil
}
type KvGetResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *KvGetResponse) Reset() {
*x = KvGetResponse{}
mi := &file_filer_proto_msgTypes[67]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *KvGetResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KvGetResponse) ProtoMessage() {}
func (x *KvGetResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[67]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KvGetResponse.ProtoReflect.Descriptor instead.
func (*KvGetResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{67}
}
func (x *KvGetResponse) GetValue() []byte {
if x != nil {
return x.Value
}
return nil
}
func (x *KvGetResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
type KvPutRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *KvPutRequest) Reset() {
*x = KvPutRequest{}
mi := &file_filer_proto_msgTypes[68]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *KvPutRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KvPutRequest) ProtoMessage() {}
func (x *KvPutRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[68]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KvPutRequest.ProtoReflect.Descriptor instead.
func (*KvPutRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{68}
}
func (x *KvPutRequest) GetKey() []byte {
if x != nil {
return x.Key
}
return nil
}
func (x *KvPutRequest) GetValue() []byte {
if x != nil {
return x.Value
}
return nil
}
type KvPutResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *KvPutResponse) Reset() {
*x = KvPutResponse{}
mi := &file_filer_proto_msgTypes[69]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *KvPutResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KvPutResponse) ProtoMessage() {}
func (x *KvPutResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[69]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KvPutResponse.ProtoReflect.Descriptor instead.
func (*KvPutResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{69}
}
func (x *KvPutResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
// ///////////////////////
// path-based configurations
// ///////////////////////
type FilerConf struct {
state protoimpl.MessageState `protogen:"open.v1"`
Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
Locations []*FilerConf_PathConf `protobuf:"bytes,2,rep,name=locations,proto3" json:"locations,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FilerConf) Reset() {
*x = FilerConf{}
mi := &file_filer_proto_msgTypes[70]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FilerConf) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FilerConf) ProtoMessage() {}
func (x *FilerConf) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[70]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FilerConf.ProtoReflect.Descriptor instead.
func (*FilerConf) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{70}
}
func (x *FilerConf) GetVersion() int32 {
if x != nil {
return x.Version
}
return 0
}
func (x *FilerConf) GetLocations() []*FilerConf_PathConf {
if x != nil {
return x.Locations
}
return nil
}
// ///////////////////////
// Remote Storage related
// ///////////////////////
type CacheRemoteObjectToLocalClusterRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Directory string `protobuf:"bytes,1,opt,name=directory,proto3" json:"directory,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
ChunkConcurrency int32 `protobuf:"varint,3,opt,name=chunk_concurrency,json=chunkConcurrency,proto3" json:"chunk_concurrency,omitempty"` // parallel chunk downloads per file, 0 = default (8)
DownloadConcurrency int32 `protobuf:"varint,4,opt,name=download_concurrency,json=downloadConcurrency,proto3" json:"download_concurrency,omitempty"` // multipart download concurrency per chunk (if supported by remote storage), 0 = default (5 for S3)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CacheRemoteObjectToLocalClusterRequest) Reset() {
*x = CacheRemoteObjectToLocalClusterRequest{}
mi := &file_filer_proto_msgTypes[71]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CacheRemoteObjectToLocalClusterRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CacheRemoteObjectToLocalClusterRequest) ProtoMessage() {}
func (x *CacheRemoteObjectToLocalClusterRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[71]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CacheRemoteObjectToLocalClusterRequest.ProtoReflect.Descriptor instead.
func (*CacheRemoteObjectToLocalClusterRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{71}
}
func (x *CacheRemoteObjectToLocalClusterRequest) GetDirectory() string {
if x != nil {
return x.Directory
}
return ""
}
func (x *CacheRemoteObjectToLocalClusterRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *CacheRemoteObjectToLocalClusterRequest) GetChunkConcurrency() int32 {
if x != nil {
return x.ChunkConcurrency
}
return 0
}
func (x *CacheRemoteObjectToLocalClusterRequest) GetDownloadConcurrency() int32 {
if x != nil {
return x.DownloadConcurrency
}
return 0
}
type CacheRemoteObjectToLocalClusterResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Entry *Entry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"`
MetadataEvent *SubscribeMetadataResponse `protobuf:"bytes,2,opt,name=metadata_event,json=metadataEvent,proto3" json:"metadata_event,omitempty"`
// filer log position stamped before the entry read: every event at or
// below it is reflected in the returned entry
LogTsNs int64 `protobuf:"varint,3,opt,name=log_ts_ns,json=logTsNs,proto3" json:"log_ts_ns,omitempty"`
LogSignature int32 `protobuf:"varint,4,opt,name=log_signature,json=logSignature,proto3" json:"log_signature,omitempty"` // filer whose clock stamped log_ts_ns
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CacheRemoteObjectToLocalClusterResponse) Reset() {
*x = CacheRemoteObjectToLocalClusterResponse{}
mi := &file_filer_proto_msgTypes[72]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CacheRemoteObjectToLocalClusterResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CacheRemoteObjectToLocalClusterResponse) ProtoMessage() {}
func (x *CacheRemoteObjectToLocalClusterResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[72]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CacheRemoteObjectToLocalClusterResponse.ProtoReflect.Descriptor instead.
func (*CacheRemoteObjectToLocalClusterResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{72}
}
func (x *CacheRemoteObjectToLocalClusterResponse) GetEntry() *Entry {
if x != nil {
return x.Entry
}
return nil
}
func (x *CacheRemoteObjectToLocalClusterResponse) GetMetadataEvent() *SubscribeMetadataResponse {
if x != nil {
return x.MetadataEvent
}
return nil
}
func (x *CacheRemoteObjectToLocalClusterResponse) GetLogTsNs() int64 {
if x != nil {
return x.LogTsNs
}
return 0
}
func (x *CacheRemoteObjectToLocalClusterResponse) GetLogSignature() int32 {
if x != nil {
return x.LogSignature
}
return 0
}
// ///////////////////////
// distributed lock management
// ///////////////////////
type LockRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
SecondsToLock int64 `protobuf:"varint,2,opt,name=seconds_to_lock,json=secondsToLock,proto3" json:"seconds_to_lock,omitempty"`
RenewToken string `protobuf:"bytes,3,opt,name=renew_token,json=renewToken,proto3" json:"renew_token,omitempty"`
IsMoved bool `protobuf:"varint,4,opt,name=is_moved,json=isMoved,proto3" json:"is_moved,omitempty"`
Owner string `protobuf:"bytes,5,opt,name=owner,proto3" json:"owner,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LockRequest) Reset() {
*x = LockRequest{}
mi := &file_filer_proto_msgTypes[73]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LockRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LockRequest) ProtoMessage() {}
func (x *LockRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[73]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LockRequest.ProtoReflect.Descriptor instead.
func (*LockRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{73}
}
func (x *LockRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *LockRequest) GetSecondsToLock() int64 {
if x != nil {
return x.SecondsToLock
}
return 0
}
func (x *LockRequest) GetRenewToken() string {
if x != nil {
return x.RenewToken
}
return ""
}
func (x *LockRequest) GetIsMoved() bool {
if x != nil {
return x.IsMoved
}
return false
}
func (x *LockRequest) GetOwner() string {
if x != nil {
return x.Owner
}
return ""
}
type LockResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
RenewToken string `protobuf:"bytes,1,opt,name=renew_token,json=renewToken,proto3" json:"renew_token,omitempty"`
LockOwner string `protobuf:"bytes,2,opt,name=lock_owner,json=lockOwner,proto3" json:"lock_owner,omitempty"`
LockHostMovedTo string `protobuf:"bytes,3,opt,name=lock_host_moved_to,json=lockHostMovedTo,proto3" json:"lock_host_moved_to,omitempty"`
Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"`
Generation int64 `protobuf:"varint,5,opt,name=generation,proto3" json:"generation,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LockResponse) Reset() {
*x = LockResponse{}
mi := &file_filer_proto_msgTypes[74]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LockResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LockResponse) ProtoMessage() {}
func (x *LockResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[74]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LockResponse.ProtoReflect.Descriptor instead.
func (*LockResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{74}
}
func (x *LockResponse) GetRenewToken() string {
if x != nil {
return x.RenewToken
}
return ""
}
func (x *LockResponse) GetLockOwner() string {
if x != nil {
return x.LockOwner
}
return ""
}
func (x *LockResponse) GetLockHostMovedTo() string {
if x != nil {
return x.LockHostMovedTo
}
return ""
}
func (x *LockResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *LockResponse) GetGeneration() int64 {
if x != nil {
return x.Generation
}
return 0
}
type UnlockRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
RenewToken string `protobuf:"bytes,2,opt,name=renew_token,json=renewToken,proto3" json:"renew_token,omitempty"`
IsMoved bool `protobuf:"varint,3,opt,name=is_moved,json=isMoved,proto3" json:"is_moved,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *UnlockRequest) Reset() {
*x = UnlockRequest{}
mi := &file_filer_proto_msgTypes[75]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *UnlockRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnlockRequest) ProtoMessage() {}
func (x *UnlockRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[75]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnlockRequest.ProtoReflect.Descriptor instead.
func (*UnlockRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{75}
}
func (x *UnlockRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *UnlockRequest) GetRenewToken() string {
if x != nil {
return x.RenewToken
}
return ""
}
func (x *UnlockRequest) GetIsMoved() bool {
if x != nil {
return x.IsMoved
}
return false
}
type UnlockResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
MovedTo string `protobuf:"bytes,2,opt,name=moved_to,json=movedTo,proto3" json:"moved_to,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *UnlockResponse) Reset() {
*x = UnlockResponse{}
mi := &file_filer_proto_msgTypes[76]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *UnlockResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnlockResponse) ProtoMessage() {}
func (x *UnlockResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[76]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnlockResponse.ProtoReflect.Descriptor instead.
func (*UnlockResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{76}
}
func (x *UnlockResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *UnlockResponse) GetMovedTo() string {
if x != nil {
return x.MovedTo
}
return ""
}
type FindLockOwnerRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
IsMoved bool `protobuf:"varint,2,opt,name=is_moved,json=isMoved,proto3" json:"is_moved,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FindLockOwnerRequest) Reset() {
*x = FindLockOwnerRequest{}
mi := &file_filer_proto_msgTypes[77]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FindLockOwnerRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FindLockOwnerRequest) ProtoMessage() {}
func (x *FindLockOwnerRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[77]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FindLockOwnerRequest.ProtoReflect.Descriptor instead.
func (*FindLockOwnerRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{77}
}
func (x *FindLockOwnerRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *FindLockOwnerRequest) GetIsMoved() bool {
if x != nil {
return x.IsMoved
}
return false
}
type FindLockOwnerResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FindLockOwnerResponse) Reset() {
*x = FindLockOwnerResponse{}
mi := &file_filer_proto_msgTypes[78]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FindLockOwnerResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FindLockOwnerResponse) ProtoMessage() {}
func (x *FindLockOwnerResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[78]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FindLockOwnerResponse.ProtoReflect.Descriptor instead.
func (*FindLockOwnerResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{78}
}
func (x *FindLockOwnerResponse) GetOwner() string {
if x != nil {
return x.Owner
}
return ""
}
type Lock struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
RenewToken string `protobuf:"bytes,2,opt,name=renew_token,json=renewToken,proto3" json:"renew_token,omitempty"`
ExpiredAtNs int64 `protobuf:"varint,3,opt,name=expired_at_ns,json=expiredAtNs,proto3" json:"expired_at_ns,omitempty"`
Owner string `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"`
Generation int64 `protobuf:"varint,5,opt,name=generation,proto3" json:"generation,omitempty"`
IsBackup bool `protobuf:"varint,6,opt,name=is_backup,json=isBackup,proto3" json:"is_backup,omitempty"`
Seq int64 `protobuf:"varint,7,opt,name=seq,proto3" json:"seq,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Lock) Reset() {
*x = Lock{}
mi := &file_filer_proto_msgTypes[79]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Lock) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Lock) ProtoMessage() {}
func (x *Lock) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[79]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Lock.ProtoReflect.Descriptor instead.
func (*Lock) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{79}
}
func (x *Lock) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Lock) GetRenewToken() string {
if x != nil {
return x.RenewToken
}
return ""
}
func (x *Lock) GetExpiredAtNs() int64 {
if x != nil {
return x.ExpiredAtNs
}
return 0
}
func (x *Lock) GetOwner() string {
if x != nil {
return x.Owner
}
return ""
}
func (x *Lock) GetGeneration() int64 {
if x != nil {
return x.Generation
}
return 0
}
func (x *Lock) GetIsBackup() bool {
if x != nil {
return x.IsBackup
}
return false
}
func (x *Lock) GetSeq() int64 {
if x != nil {
return x.Seq
}
return 0
}
type TransferLocksRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Locks []*Lock `protobuf:"bytes,1,rep,name=locks,proto3" json:"locks,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TransferLocksRequest) Reset() {
*x = TransferLocksRequest{}
mi := &file_filer_proto_msgTypes[80]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *TransferLocksRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TransferLocksRequest) ProtoMessage() {}
func (x *TransferLocksRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[80]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TransferLocksRequest.ProtoReflect.Descriptor instead.
func (*TransferLocksRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{80}
}
func (x *TransferLocksRequest) GetLocks() []*Lock {
if x != nil {
return x.Locks
}
return nil
}
type TransferLocksResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TransferLocksResponse) Reset() {
*x = TransferLocksResponse{}
mi := &file_filer_proto_msgTypes[81]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *TransferLocksResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TransferLocksResponse) ProtoMessage() {}
func (x *TransferLocksResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[81]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TransferLocksResponse.ProtoReflect.Descriptor instead.
func (*TransferLocksResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{81}
}
type ReplicateLockRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
RenewToken string `protobuf:"bytes,2,opt,name=renew_token,json=renewToken,proto3" json:"renew_token,omitempty"`
ExpiredAtNs int64 `protobuf:"varint,3,opt,name=expired_at_ns,json=expiredAtNs,proto3" json:"expired_at_ns,omitempty"`
Owner string `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"`
Generation int64 `protobuf:"varint,5,opt,name=generation,proto3" json:"generation,omitempty"`
IsUnlock bool `protobuf:"varint,6,opt,name=is_unlock,json=isUnlock,proto3" json:"is_unlock,omitempty"`
Seq int64 `protobuf:"varint,7,opt,name=seq,proto3" json:"seq,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ReplicateLockRequest) Reset() {
*x = ReplicateLockRequest{}
mi := &file_filer_proto_msgTypes[82]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ReplicateLockRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReplicateLockRequest) ProtoMessage() {}
func (x *ReplicateLockRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[82]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReplicateLockRequest.ProtoReflect.Descriptor instead.
func (*ReplicateLockRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{82}
}
func (x *ReplicateLockRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *ReplicateLockRequest) GetRenewToken() string {
if x != nil {
return x.RenewToken
}
return ""
}
func (x *ReplicateLockRequest) GetExpiredAtNs() int64 {
if x != nil {
return x.ExpiredAtNs
}
return 0
}
func (x *ReplicateLockRequest) GetOwner() string {
if x != nil {
return x.Owner
}
return ""
}
func (x *ReplicateLockRequest) GetGeneration() int64 {
if x != nil {
return x.Generation
}
return 0
}
func (x *ReplicateLockRequest) GetIsUnlock() bool {
if x != nil {
return x.IsUnlock
}
return false
}
func (x *ReplicateLockRequest) GetSeq() int64 {
if x != nil {
return x.Seq
}
return 0
}
type ReplicateLockResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ReplicateLockResponse) Reset() {
*x = ReplicateLockResponse{}
mi := &file_filer_proto_msgTypes[83]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ReplicateLockResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReplicateLockResponse) ProtoMessage() {}
func (x *ReplicateLockResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[83]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReplicateLockResponse.ProtoReflect.Descriptor instead.
func (*ReplicateLockResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{83}
}
type StreamMutateEntryRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
RequestId uint64 `protobuf:"varint,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
// Types that are valid to be assigned to Request:
//
// *StreamMutateEntryRequest_CreateRequest
// *StreamMutateEntryRequest_UpdateRequest
// *StreamMutateEntryRequest_DeleteRequest
// *StreamMutateEntryRequest_RenameRequest
Request isStreamMutateEntryRequest_Request `protobuf_oneof:"request"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StreamMutateEntryRequest) Reset() {
*x = StreamMutateEntryRequest{}
mi := &file_filer_proto_msgTypes[84]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StreamMutateEntryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StreamMutateEntryRequest) ProtoMessage() {}
func (x *StreamMutateEntryRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[84]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StreamMutateEntryRequest.ProtoReflect.Descriptor instead.
func (*StreamMutateEntryRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{84}
}
func (x *StreamMutateEntryRequest) GetRequestId() uint64 {
if x != nil {
return x.RequestId
}
return 0
}
func (x *StreamMutateEntryRequest) GetRequest() isStreamMutateEntryRequest_Request {
if x != nil {
return x.Request
}
return nil
}
func (x *StreamMutateEntryRequest) GetCreateRequest() *CreateEntryRequest {
if x != nil {
if x, ok := x.Request.(*StreamMutateEntryRequest_CreateRequest); ok {
return x.CreateRequest
}
}
return nil
}
func (x *StreamMutateEntryRequest) GetUpdateRequest() *UpdateEntryRequest {
if x != nil {
if x, ok := x.Request.(*StreamMutateEntryRequest_UpdateRequest); ok {
return x.UpdateRequest
}
}
return nil
}
func (x *StreamMutateEntryRequest) GetDeleteRequest() *DeleteEntryRequest {
if x != nil {
if x, ok := x.Request.(*StreamMutateEntryRequest_DeleteRequest); ok {
return x.DeleteRequest
}
}
return nil
}
func (x *StreamMutateEntryRequest) GetRenameRequest() *StreamRenameEntryRequest {
if x != nil {
if x, ok := x.Request.(*StreamMutateEntryRequest_RenameRequest); ok {
return x.RenameRequest
}
}
return nil
}
type isStreamMutateEntryRequest_Request interface {
isStreamMutateEntryRequest_Request()
}
type StreamMutateEntryRequest_CreateRequest struct {
CreateRequest *CreateEntryRequest `protobuf:"bytes,2,opt,name=create_request,json=createRequest,proto3,oneof"`
}
type StreamMutateEntryRequest_UpdateRequest struct {
UpdateRequest *UpdateEntryRequest `protobuf:"bytes,3,opt,name=update_request,json=updateRequest,proto3,oneof"`
}
type StreamMutateEntryRequest_DeleteRequest struct {
DeleteRequest *DeleteEntryRequest `protobuf:"bytes,4,opt,name=delete_request,json=deleteRequest,proto3,oneof"`
}
type StreamMutateEntryRequest_RenameRequest struct {
RenameRequest *StreamRenameEntryRequest `protobuf:"bytes,5,opt,name=rename_request,json=renameRequest,proto3,oneof"`
}
func (*StreamMutateEntryRequest_CreateRequest) isStreamMutateEntryRequest_Request() {}
func (*StreamMutateEntryRequest_UpdateRequest) isStreamMutateEntryRequest_Request() {}
func (*StreamMutateEntryRequest_DeleteRequest) isStreamMutateEntryRequest_Request() {}
func (*StreamMutateEntryRequest_RenameRequest) isStreamMutateEntryRequest_Request() {}
type StreamMutateEntryResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
RequestId uint64 `protobuf:"varint,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
IsLast bool `protobuf:"varint,2,opt,name=is_last,json=isLast,proto3" json:"is_last,omitempty"` // always true except for rename, which sends multiple events
// Types that are valid to be assigned to Response:
//
// *StreamMutateEntryResponse_CreateResponse
// *StreamMutateEntryResponse_UpdateResponse
// *StreamMutateEntryResponse_DeleteResponse
// *StreamMutateEntryResponse_RenameResponse
Response isStreamMutateEntryResponse_Response `protobuf_oneof:"response"`
Error string `protobuf:"bytes,7,opt,name=error,proto3" json:"error,omitempty"` // human-readable error message when the operation failed
Errno int32 `protobuf:"varint,8,opt,name=errno,proto3" json:"errno,omitempty"` // POSIX errno (e.g. ENOENT=2, ENOTEMPTY=66) for direct FUSE status mapping
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StreamMutateEntryResponse) Reset() {
*x = StreamMutateEntryResponse{}
mi := &file_filer_proto_msgTypes[85]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StreamMutateEntryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StreamMutateEntryResponse) ProtoMessage() {}
func (x *StreamMutateEntryResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[85]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StreamMutateEntryResponse.ProtoReflect.Descriptor instead.
func (*StreamMutateEntryResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{85}
}
func (x *StreamMutateEntryResponse) GetRequestId() uint64 {
if x != nil {
return x.RequestId
}
return 0
}
func (x *StreamMutateEntryResponse) GetIsLast() bool {
if x != nil {
return x.IsLast
}
return false
}
func (x *StreamMutateEntryResponse) GetResponse() isStreamMutateEntryResponse_Response {
if x != nil {
return x.Response
}
return nil
}
func (x *StreamMutateEntryResponse) GetCreateResponse() *CreateEntryResponse {
if x != nil {
if x, ok := x.Response.(*StreamMutateEntryResponse_CreateResponse); ok {
return x.CreateResponse
}
}
return nil
}
func (x *StreamMutateEntryResponse) GetUpdateResponse() *UpdateEntryResponse {
if x != nil {
if x, ok := x.Response.(*StreamMutateEntryResponse_UpdateResponse); ok {
return x.UpdateResponse
}
}
return nil
}
func (x *StreamMutateEntryResponse) GetDeleteResponse() *DeleteEntryResponse {
if x != nil {
if x, ok := x.Response.(*StreamMutateEntryResponse_DeleteResponse); ok {
return x.DeleteResponse
}
}
return nil
}
func (x *StreamMutateEntryResponse) GetRenameResponse() *StreamRenameEntryResponse {
if x != nil {
if x, ok := x.Response.(*StreamMutateEntryResponse_RenameResponse); ok {
return x.RenameResponse
}
}
return nil
}
func (x *StreamMutateEntryResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *StreamMutateEntryResponse) GetErrno() int32 {
if x != nil {
return x.Errno
}
return 0
}
type isStreamMutateEntryResponse_Response interface {
isStreamMutateEntryResponse_Response()
}
type StreamMutateEntryResponse_CreateResponse struct {
CreateResponse *CreateEntryResponse `protobuf:"bytes,3,opt,name=create_response,json=createResponse,proto3,oneof"`
}
type StreamMutateEntryResponse_UpdateResponse struct {
UpdateResponse *UpdateEntryResponse `protobuf:"bytes,4,opt,name=update_response,json=updateResponse,proto3,oneof"`
}
type StreamMutateEntryResponse_DeleteResponse struct {
DeleteResponse *DeleteEntryResponse `protobuf:"bytes,5,opt,name=delete_response,json=deleteResponse,proto3,oneof"`
}
type StreamMutateEntryResponse_RenameResponse struct {
RenameResponse *StreamRenameEntryResponse `protobuf:"bytes,6,opt,name=rename_response,json=renameResponse,proto3,oneof"`
}
func (*StreamMutateEntryResponse_CreateResponse) isStreamMutateEntryResponse_Response() {}
func (*StreamMutateEntryResponse_UpdateResponse) isStreamMutateEntryResponse_Response() {}
func (*StreamMutateEntryResponse_DeleteResponse) isStreamMutateEntryResponse_Response() {}
func (*StreamMutateEntryResponse_RenameResponse) isStreamMutateEntryResponse_Response() {}
type MountRegisterRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
PeerAddr string `protobuf:"bytes,1,opt,name=peer_addr,json=peerAddr,proto3" json:"peer_addr,omitempty"` // host:port where this mount serves peer chunk requests
Rack string `protobuf:"bytes,2,opt,name=rack,proto3" json:"rack,omitempty"` // locality label (rack); used for peer ranking
TtlSeconds int32 `protobuf:"varint,3,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` // how long the filer should keep this entry without a heartbeat
DataCenter string `protobuf:"bytes,4,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"` // locality label (data center); coarser than rack
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MountRegisterRequest) Reset() {
*x = MountRegisterRequest{}
mi := &file_filer_proto_msgTypes[86]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MountRegisterRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MountRegisterRequest) ProtoMessage() {}
func (x *MountRegisterRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[86]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MountRegisterRequest.ProtoReflect.Descriptor instead.
func (*MountRegisterRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{86}
}
func (x *MountRegisterRequest) GetPeerAddr() string {
if x != nil {
return x.PeerAddr
}
return ""
}
func (x *MountRegisterRequest) GetRack() string {
if x != nil {
return x.Rack
}
return ""
}
func (x *MountRegisterRequest) GetTtlSeconds() int32 {
if x != nil {
return x.TtlSeconds
}
return 0
}
func (x *MountRegisterRequest) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
type MountRegisterResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MountRegisterResponse) Reset() {
*x = MountRegisterResponse{}
mi := &file_filer_proto_msgTypes[87]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MountRegisterResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MountRegisterResponse) ProtoMessage() {}
func (x *MountRegisterResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[87]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MountRegisterResponse.ProtoReflect.Descriptor instead.
func (*MountRegisterResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{87}
}
type MountListRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MountListRequest) Reset() {
*x = MountListRequest{}
mi := &file_filer_proto_msgTypes[88]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MountListRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MountListRequest) ProtoMessage() {}
func (x *MountListRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[88]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MountListRequest.ProtoReflect.Descriptor instead.
func (*MountListRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{88}
}
type MountListResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Mounts []*MountInfo `protobuf:"bytes,1,rep,name=mounts,proto3" json:"mounts,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MountListResponse) Reset() {
*x = MountListResponse{}
mi := &file_filer_proto_msgTypes[89]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MountListResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MountListResponse) ProtoMessage() {}
func (x *MountListResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[89]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MountListResponse.ProtoReflect.Descriptor instead.
func (*MountListResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{89}
}
func (x *MountListResponse) GetMounts() []*MountInfo {
if x != nil {
return x.Mounts
}
return nil
}
type MountInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
PeerAddr string `protobuf:"bytes,1,opt,name=peer_addr,json=peerAddr,proto3" json:"peer_addr,omitempty"`
Rack string `protobuf:"bytes,2,opt,name=rack,proto3" json:"rack,omitempty"`
LastSeenNs int64 `protobuf:"varint,3,opt,name=last_seen_ns,json=lastSeenNs,proto3" json:"last_seen_ns,omitempty"`
DataCenter string `protobuf:"bytes,4,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MountInfo) Reset() {
*x = MountInfo{}
mi := &file_filer_proto_msgTypes[90]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MountInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MountInfo) ProtoMessage() {}
func (x *MountInfo) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[90]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MountInfo.ProtoReflect.Descriptor instead.
func (*MountInfo) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{90}
}
func (x *MountInfo) GetPeerAddr() string {
if x != nil {
return x.PeerAddr
}
return ""
}
func (x *MountInfo) GetRack() string {
if x != nil {
return x.Rack
}
return ""
}
func (x *MountInfo) GetLastSeenNs() int64 {
if x != nil {
return x.LastSeenNs
}
return 0
}
func (x *MountInfo) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
// LookupDirectoryEntriesRequest batches independent exact-path lookups into
// one bounded RPC. Results preserve this order. Empty batches and batches over
// 4096 requests are rejected. Declared last to keep generated message indices
// stable.
type LookupDirectoryEntriesRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Requests []*LookupDirectoryEntryRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"`
// Cache callers may treat an Entry whose Volume the master no longer
// reports as a miss. A lookup the filer could not complete still marks the
// Entry with an error. Ordinary filesystem callers keep the fail-closed
// error in both cases.
UnavailableVolumeIsMiss bool `protobuf:"varint,2,opt,name=unavailable_volume_is_miss,json=unavailableVolumeIsMiss,proto3" json:"unavailable_volume_is_miss,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupDirectoryEntriesRequest) Reset() {
*x = LookupDirectoryEntriesRequest{}
mi := &file_filer_proto_msgTypes[91]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupDirectoryEntriesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupDirectoryEntriesRequest) ProtoMessage() {}
func (x *LookupDirectoryEntriesRequest) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[91]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupDirectoryEntriesRequest.ProtoReflect.Descriptor instead.
func (*LookupDirectoryEntriesRequest) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{91}
}
func (x *LookupDirectoryEntriesRequest) GetRequests() []*LookupDirectoryEntryRequest {
if x != nil {
return x.Requests
}
return nil
}
func (x *LookupDirectoryEntriesRequest) GetUnavailableVolumeIsMiss() bool {
if x != nil {
return x.UnavailableVolumeIsMiss
}
return false
}
type LookupDirectoryEntryResult struct {
state protoimpl.MessageState `protogen:"open.v1"`
// found reports metadata presence. An error makes this item unusable even
// when entry is present, for example when a chunk volume cannot be located.
Found bool `protobuf:"varint,1,opt,name=found,proto3" json:"found,omitempty"`
Entry *Entry `protobuf:"bytes,2,opt,name=entry,proto3" json:"entry,omitempty"`
Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
// Per-entry read fence. Every filer event at or below this position is
// reflected in found/entry/error for this item.
LogTsNs int64 `protobuf:"varint,4,opt,name=log_ts_ns,json=logTsNs,proto3" json:"log_ts_ns,omitempty"`
LogSignature int32 `protobuf:"varint,5,opt,name=log_signature,json=logSignature,proto3" json:"log_signature,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupDirectoryEntryResult) Reset() {
*x = LookupDirectoryEntryResult{}
mi := &file_filer_proto_msgTypes[92]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupDirectoryEntryResult) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupDirectoryEntryResult) ProtoMessage() {}
func (x *LookupDirectoryEntryResult) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[92]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupDirectoryEntryResult.ProtoReflect.Descriptor instead.
func (*LookupDirectoryEntryResult) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{92}
}
func (x *LookupDirectoryEntryResult) GetFound() bool {
if x != nil {
return x.Found
}
return false
}
func (x *LookupDirectoryEntryResult) GetEntry() *Entry {
if x != nil {
return x.Entry
}
return nil
}
func (x *LookupDirectoryEntryResult) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *LookupDirectoryEntryResult) GetLogTsNs() int64 {
if x != nil {
return x.LogTsNs
}
return 0
}
func (x *LookupDirectoryEntryResult) GetLogSignature() int32 {
if x != nil {
return x.LogSignature
}
return 0
}
type LookupDirectoryEntriesResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Results []*LookupDirectoryEntryResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
// One deduplicated location set for every volume referenced by returned
// Entry.chunks. A missing/unavailable volume has an empty Locations value
// and marks each affected result with an error.
LocationsMap map[string]*Locations `protobuf:"bytes,2,rep,name=locations_map,json=locationsMap,proto3" json:"locations_map,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// Short-lived, exact-FID read capabilities. Direct data-plane clients must
// present the matching token to a Volume instead of treating a shared
// service credential as authority to read arbitrary needles.
ReadAuth map[string]string `protobuf:"bytes,3,rep,name=read_auth,json=readAuth,proto3" json:"read_auth,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupDirectoryEntriesResponse) Reset() {
*x = LookupDirectoryEntriesResponse{}
mi := &file_filer_proto_msgTypes[93]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupDirectoryEntriesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupDirectoryEntriesResponse) ProtoMessage() {}
func (x *LookupDirectoryEntriesResponse) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[93]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupDirectoryEntriesResponse.ProtoReflect.Descriptor instead.
func (*LookupDirectoryEntriesResponse) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{93}
}
func (x *LookupDirectoryEntriesResponse) GetResults() []*LookupDirectoryEntryResult {
if x != nil {
return x.Results
}
return nil
}
func (x *LookupDirectoryEntriesResponse) GetLocationsMap() map[string]*Locations {
if x != nil {
return x.LocationsMap
}
return nil
}
func (x *LookupDirectoryEntriesResponse) GetReadAuth() map[string]string {
if x != nil {
return x.ReadAuth
}
return nil
}
// Clause is one primitive comparison. IF_ETAG_MATCH holds when the current
// entry's ETag equals any value in etags; IF_ETAG_NOT_MATCH holds when it
// equals none. allow_weak permits weak-comparison (ignoring the W/ prefix).
//
// The IF_EXTENDED_* kinds are generic guards on an extended attribute, used
// to enforce object-lock without teaching the filer S3 semantics:
// IF_EXTENDED_NOT_EQUAL expresses a legal hold (block while a key equals a
// value), and IF_EXTENDED_TIME_ELAPSED expresses retention (block while a
// stored unix-second deadline is in the future, compared to the filer's
// clock). The caller composes these and, for governance-bypass, simply omits
// the retention clause when the bypass is authorized — the filer makes no
// authorization decision.
//
// IF_CHUNKS_EQUAL guards a chunk-preserving read-modify-write: the stored
// chunk fid set must still equal what the caller read, so a stale write
// cannot resurrect needles that a concurrent update already diffed away
// and queued for deletion. An empty fids list expects no chunks.
type WriteCondition_Clause struct {
state protoimpl.MessageState `protogen:"open.v1"`
Kind WriteCondition_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=filer_pb.WriteCondition_Kind" json:"kind,omitempty"`
Etags []string `protobuf:"bytes,2,rep,name=etags,proto3" json:"etags,omitempty"` // ETag set for IF_ETAG_* kinds
UnixTime int64 `protobuf:"varint,3,opt,name=unix_time,json=unixTime,proto3" json:"unix_time,omitempty"` // bound (unix seconds) for IF_*_SINCE kinds
AllowWeak bool `protobuf:"varint,4,opt,name=allow_weak,json=allowWeak,proto3" json:"allow_weak,omitempty"` // compare ETags ignoring the weak (W/) marker
ExtKey string `protobuf:"bytes,5,opt,name=ext_key,json=extKey,proto3" json:"ext_key,omitempty"` // extended attribute name for IF_EXTENDED_* kinds
ExtValue string `protobuf:"bytes,6,opt,name=ext_value,json=extValue,proto3" json:"ext_value,omitempty"` // blocking value for IF_EXTENDED_NOT_EQUAL
GateKey string `protobuf:"bytes,7,opt,name=gate_key,json=gateKey,proto3" json:"gate_key,omitempty"` // IF_EXTENDED_TIME_ELAPSED: only enforce when extended[gate_key] == gate_value
GateValue string `protobuf:"bytes,8,opt,name=gate_value,json=gateValue,proto3" json:"gate_value,omitempty"` // gate value (e.g. retention mode COMPLIANCE for governance bypass)
Fids []string `protobuf:"bytes,9,rep,name=fids,proto3" json:"fids,omitempty"` // chunk fid strings for IF_CHUNKS_EQUAL
ExpectedEntry *Entry `protobuf:"bytes,10,opt,name=expected_entry,json=expectedEntry,proto3" json:"expected_entry,omitempty"` // whole-entry comparison for IF_ENTRY_EQUAL
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *WriteCondition_Clause) Reset() {
*x = WriteCondition_Clause{}
mi := &file_filer_proto_msgTypes[95]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *WriteCondition_Clause) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WriteCondition_Clause) ProtoMessage() {}
func (x *WriteCondition_Clause) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[95]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WriteCondition_Clause.ProtoReflect.Descriptor instead.
func (*WriteCondition_Clause) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{13, 0}
}
func (x *WriteCondition_Clause) GetKind() WriteCondition_Kind {
if x != nil {
return x.Kind
}
return WriteCondition_NONE
}
func (x *WriteCondition_Clause) GetEtags() []string {
if x != nil {
return x.Etags
}
return nil
}
func (x *WriteCondition_Clause) GetUnixTime() int64 {
if x != nil {
return x.UnixTime
}
return 0
}
func (x *WriteCondition_Clause) GetAllowWeak() bool {
if x != nil {
return x.AllowWeak
}
return false
}
func (x *WriteCondition_Clause) GetExtKey() string {
if x != nil {
return x.ExtKey
}
return ""
}
func (x *WriteCondition_Clause) GetExtValue() string {
if x != nil {
return x.ExtValue
}
return ""
}
func (x *WriteCondition_Clause) GetGateKey() string {
if x != nil {
return x.GateKey
}
return ""
}
func (x *WriteCondition_Clause) GetGateValue() string {
if x != nil {
return x.GateValue
}
return ""
}
func (x *WriteCondition_Clause) GetFids() []string {
if x != nil {
return x.Fids
}
return nil
}
func (x *WriteCondition_Clause) GetExpectedEntry() *Entry {
if x != nil {
return x.ExpectedEntry
}
return nil
}
// if found, send the exact address
// if not found, send the full list of existing brokers
type LocateBrokerResponse_Resource struct {
state protoimpl.MessageState `protogen:"open.v1"`
GrpcAddresses string `protobuf:"bytes,1,opt,name=grpc_addresses,json=grpcAddresses,proto3" json:"grpc_addresses,omitempty"`
ResourceCount int32 `protobuf:"varint,2,opt,name=resource_count,json=resourceCount,proto3" json:"resource_count,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LocateBrokerResponse_Resource) Reset() {
*x = LocateBrokerResponse_Resource{}
mi := &file_filer_proto_msgTypes[100]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LocateBrokerResponse_Resource) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LocateBrokerResponse_Resource) ProtoMessage() {}
func (x *LocateBrokerResponse_Resource) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[100]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LocateBrokerResponse_Resource.ProtoReflect.Descriptor instead.
func (*LocateBrokerResponse_Resource) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{65, 0}
}
func (x *LocateBrokerResponse_Resource) GetGrpcAddresses() string {
if x != nil {
return x.GrpcAddresses
}
return ""
}
func (x *LocateBrokerResponse_Resource) GetResourceCount() int32 {
if x != nil {
return x.ResourceCount
}
return 0
}
type FilerConf_PathConf struct {
state protoimpl.MessageState `protogen:"open.v1"`
LocationPrefix string `protobuf:"bytes,1,opt,name=location_prefix,json=locationPrefix,proto3" json:"location_prefix,omitempty"`
Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"`
Replication string `protobuf:"bytes,3,opt,name=replication,proto3" json:"replication,omitempty"`
Ttl string `protobuf:"bytes,4,opt,name=ttl,proto3" json:"ttl,omitempty"`
DiskType string `protobuf:"bytes,5,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"`
// unset inherits from the enclosing path rule, set overrides it
Fsync *bool `protobuf:"varint,6,opt,name=fsync,proto3,oneof" json:"fsync,omitempty"`
VolumeGrowthCount uint32 `protobuf:"varint,7,opt,name=volume_growth_count,json=volumeGrowthCount,proto3" json:"volume_growth_count,omitempty"`
ReadOnly bool `protobuf:"varint,8,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"`
DataCenter string `protobuf:"bytes,9,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"`
Rack string `protobuf:"bytes,10,opt,name=rack,proto3" json:"rack,omitempty"`
DataNode string `protobuf:"bytes,11,opt,name=data_node,json=dataNode,proto3" json:"data_node,omitempty"`
MaxFileNameLength uint32 `protobuf:"varint,12,opt,name=max_file_name_length,json=maxFileNameLength,proto3" json:"max_file_name_length,omitempty"`
DisableChunkDeletion bool `protobuf:"varint,13,opt,name=disable_chunk_deletion,json=disableChunkDeletion,proto3" json:"disable_chunk_deletion,omitempty"`
// unset inherits from the enclosing path rule, set overrides it
Worm *bool `protobuf:"varint,14,opt,name=worm,proto3,oneof" json:"worm,omitempty"`
WormGracePeriodSeconds uint64 `protobuf:"varint,15,opt,name=worm_grace_period_seconds,json=wormGracePeriodSeconds,proto3" json:"worm_grace_period_seconds,omitempty"`
WormRetentionTimeSeconds uint64 `protobuf:"varint,16,opt,name=worm_retention_time_seconds,json=wormRetentionTimeSeconds,proto3" json:"worm_retention_time_seconds,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *FilerConf_PathConf) Reset() {
*x = FilerConf_PathConf{}
mi := &file_filer_proto_msgTypes[101]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *FilerConf_PathConf) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FilerConf_PathConf) ProtoMessage() {}
func (x *FilerConf_PathConf) ProtoReflect() protoreflect.Message {
mi := &file_filer_proto_msgTypes[101]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FilerConf_PathConf.ProtoReflect.Descriptor instead.
func (*FilerConf_PathConf) Descriptor() ([]byte, []int) {
return file_filer_proto_rawDescGZIP(), []int{70, 0}
}
func (x *FilerConf_PathConf) GetLocationPrefix() string {
if x != nil {
return x.LocationPrefix
}
return ""
}
func (x *FilerConf_PathConf) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *FilerConf_PathConf) GetReplication() string {
if x != nil {
return x.Replication
}
return ""
}
func (x *FilerConf_PathConf) GetTtl() string {
if x != nil {
return x.Ttl
}
return ""
}
func (x *FilerConf_PathConf) GetDiskType() string {
if x != nil {
return x.DiskType
}
return ""
}
func (x *FilerConf_PathConf) GetFsync() bool {
if x != nil && x.Fsync != nil {
return *x.Fsync
}
return false
}
func (x *FilerConf_PathConf) GetVolumeGrowthCount() uint32 {
if x != nil {
return x.VolumeGrowthCount
}
return 0
}
func (x *FilerConf_PathConf) GetReadOnly() bool {
if x != nil {
return x.ReadOnly
}
return false
}
func (x *FilerConf_PathConf) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
func (x *FilerConf_PathConf) GetRack() string {
if x != nil {
return x.Rack
}
return ""
}
func (x *FilerConf_PathConf) GetDataNode() string {
if x != nil {
return x.DataNode
}
return ""
}
func (x *FilerConf_PathConf) GetMaxFileNameLength() uint32 {
if x != nil {
return x.MaxFileNameLength
}
return 0
}
func (x *FilerConf_PathConf) GetDisableChunkDeletion() bool {
if x != nil {
return x.DisableChunkDeletion
}
return false
}
func (x *FilerConf_PathConf) GetWorm() bool {
if x != nil && x.Worm != nil {
return *x.Worm
}
return false
}
func (x *FilerConf_PathConf) GetWormGracePeriodSeconds() uint64 {
if x != nil {
return x.WormGracePeriodSeconds
}
return 0
}
func (x *FilerConf_PathConf) GetWormRetentionTimeSeconds() uint64 {
if x != nil {
return x.WormRetentionTimeSeconds
}
return 0
}
var File_filer_proto protoreflect.FileDescriptor
const file_filer_proto_rawDesc = "" +
"\n" +
"\vfiler.proto\x12\bfiler_pb\"O\n" +
"\x1bLookupDirectoryEntryRequest\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12\x12\n" +
"\x04name\x18\x02 \x01(\tR\x04name\"\x86\x01\n" +
"\x1cLookupDirectoryEntryResponse\x12%\n" +
"\x05entry\x18\x01 \x01(\v2\x0f.filer_pb.EntryR\x05entry\x12\x1a\n" +
"\tlog_ts_ns\x18\x02 \x01(\x03R\alogTsNs\x12#\n" +
"\rlog_signature\x18\x03 \x01(\x05R\flogSignature\"\x85\x02\n" +
"\x12ListEntriesRequest\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12\x16\n" +
"\x06prefix\x18\x02 \x01(\tR\x06prefix\x12,\n" +
"\x11startFromFileName\x18\x03 \x01(\tR\x11startFromFileName\x12.\n" +
"\x12inclusiveStartFrom\x18\x04 \x01(\bR\x12inclusiveStartFrom\x12\x14\n" +
"\x05limit\x18\x05 \x01(\rR\x05limit\x12$\n" +
"\x0esnapshot_ts_ns\x18\x06 \x01(\x03R\fsnapshotTsNs\x12\x1f\n" +
"\vomit_chunks\x18\a \x01(\bR\n" +
"omitChunks\"b\n" +
"\x13ListEntriesResponse\x12%\n" +
"\x05entry\x18\x01 \x01(\v2\x0f.filer_pb.EntryR\x05entry\x12$\n" +
"\x0esnapshot_ts_ns\x18\x02 \x01(\x03R\fsnapshotTsNs\"\xa1\x02\n" +
"\vRemoteEntry\x12!\n" +
"\fstorage_name\x18\x01 \x01(\tR\vstorageName\x120\n" +
"\x15last_local_sync_ts_ns\x18\x02 \x01(\x03R\x11lastLocalSyncTsNs\x12 \n" +
"\fremote_e_tag\x18\x03 \x01(\tR\n" +
"remoteETag\x12!\n" +
"\fremote_mtime\x18\x04 \x01(\x03R\vremoteMtime\x12\x1f\n" +
"\vremote_size\x18\x05 \x01(\x03R\n" +
"remoteSize\x12;\n" +
"\x17remote_content_encoding\x18\x06 \x01(\tH\x00R\x15remoteContentEncoding\x88\x01\x01B\x1a\n" +
"\x18_remote_content_encoding\"\xab\x04\n" +
"\x05Entry\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12!\n" +
"\fis_directory\x18\x02 \x01(\bR\visDirectory\x12+\n" +
"\x06chunks\x18\x03 \x03(\v2\x13.filer_pb.FileChunkR\x06chunks\x128\n" +
"\n" +
"attributes\x18\x04 \x01(\v2\x18.filer_pb.FuseAttributesR\n" +
"attributes\x129\n" +
"\bextended\x18\x05 \x03(\v2\x1d.filer_pb.Entry.ExtendedEntryR\bextended\x12 \n" +
"\fcommit_ts_ns\x18\x06 \x01(\x03R\n" +
"commitTsNs\x12 \n" +
"\fhard_link_id\x18\a \x01(\fR\n" +
"hardLinkId\x12*\n" +
"\x11hard_link_counter\x18\b \x01(\x05R\x0fhardLinkCounter\x12\x18\n" +
"\acontent\x18\t \x01(\fR\acontent\x128\n" +
"\fremote_entry\x18\n" +
" \x01(\v2\x15.filer_pb.RemoteEntryR\vremoteEntry\x12\x14\n" +
"\x05quota\x18\v \x01(\x03R\x05quota\x122\n" +
"\x16worm_enforced_at_ts_ns\x18\f \x01(\x03R\x12wormEnforcedAtTsNs\x1a;\n" +
"\rExtendedEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"D\n" +
"\tFullEntry\x12\x10\n" +
"\x03dir\x18\x01 \x01(\tR\x03dir\x12%\n" +
"\x05entry\x18\x02 \x01(\v2\x0f.filer_pb.EntryR\x05entry\"\x8f\x02\n" +
"\x11EventNotification\x12,\n" +
"\told_entry\x18\x01 \x01(\v2\x0f.filer_pb.EntryR\boldEntry\x12,\n" +
"\tnew_entry\x18\x02 \x01(\v2\x0f.filer_pb.EntryR\bnewEntry\x12#\n" +
"\rdelete_chunks\x18\x03 \x01(\bR\fdeleteChunks\x12&\n" +
"\x0fnew_parent_path\x18\x04 \x01(\tR\rnewParentPath\x121\n" +
"\x15is_from_other_cluster\x18\x05 \x01(\bR\x12isFromOtherCluster\x12\x1e\n" +
"\n" +
"signatures\x18\x06 \x03(\x05R\n" +
"signatures\"\xc7\x03\n" +
"\tFileChunk\x12\x17\n" +
"\afile_id\x18\x01 \x01(\tR\x06fileId\x12\x16\n" +
"\x06offset\x18\x02 \x01(\x03R\x06offset\x12\x12\n" +
"\x04size\x18\x03 \x01(\x04R\x04size\x12$\n" +
"\x0emodified_ts_ns\x18\x04 \x01(\x03R\fmodifiedTsNs\x12\x13\n" +
"\x05e_tag\x18\x05 \x01(\tR\x04eTag\x12$\n" +
"\x0esource_file_id\x18\x06 \x01(\tR\fsourceFileId\x12\"\n" +
"\x03fid\x18\a \x01(\v2\x10.filer_pb.FileIdR\x03fid\x12/\n" +
"\n" +
"source_fid\x18\b \x01(\v2\x10.filer_pb.FileIdR\tsourceFid\x12\x1d\n" +
"\n" +
"cipher_key\x18\t \x01(\fR\tcipherKey\x12#\n" +
"\ris_compressed\x18\n" +
" \x01(\bR\fisCompressed\x12*\n" +
"\x11is_chunk_manifest\x18\v \x01(\bR\x0fisChunkManifest\x12,\n" +
"\bsse_type\x18\f \x01(\x0e2\x11.filer_pb.SSETypeR\asseType\x12!\n" +
"\fsse_metadata\x18\r \x01(\fR\vsseMetadata\"@\n" +
"\x11FileChunkManifest\x12+\n" +
"\x06chunks\x18\x01 \x03(\v2\x13.filer_pb.FileChunkR\x06chunks\"X\n" +
"\x06FileId\x12\x1b\n" +
"\tvolume_id\x18\x01 \x01(\rR\bvolumeId\x12\x19\n" +
"\bfile_key\x18\x02 \x01(\x04R\afileKey\x12\x16\n" +
"\x06cookie\x18\x03 \x01(\aR\x06cookie\"\x82\x04\n" +
"\x0eFuseAttributes\x12\x1b\n" +
"\tfile_size\x18\x01 \x01(\x04R\bfileSize\x12\x14\n" +
"\x05mtime\x18\x02 \x01(\x03R\x05mtime\x12\x1b\n" +
"\tfile_mode\x18\x03 \x01(\rR\bfileMode\x12\x10\n" +
"\x03uid\x18\x04 \x01(\rR\x03uid\x12\x10\n" +
"\x03gid\x18\x05 \x01(\rR\x03gid\x12\x16\n" +
"\x06crtime\x18\x06 \x01(\x03R\x06crtime\x12\x12\n" +
"\x04mime\x18\a \x01(\tR\x04mime\x12\x17\n" +
"\attl_sec\x18\n" +
" \x01(\x05R\x06ttlSec\x12\x1b\n" +
"\tuser_name\x18\v \x01(\tR\buserName\x12\x1d\n" +
"\n" +
"group_name\x18\f \x03(\tR\tgroupName\x12%\n" +
"\x0esymlink_target\x18\r \x01(\tR\rsymlinkTarget\x12\x10\n" +
"\x03md5\x18\x0e \x01(\fR\x03md5\x12\x12\n" +
"\x04rdev\x18\x10 \x01(\rR\x04rdev\x12\x14\n" +
"\x05inode\x18\x11 \x01(\x04R\x05inode\x12\x14\n" +
"\x05ctime\x18\x12 \x01(\x03R\x05ctime\x12\x19\n" +
"\bmtime_ns\x18\x13 \x01(\x05R\amtimeNs\x12\x19\n" +
"\bctime_ns\x18\x14 \x01(\x05R\actimeNs\x12\x1b\n" +
"\tcrtime_ns\x18\x15 \x01(\x05R\bcrtimeNs\x12\x14\n" +
"\x05atime\x18\x16 \x01(\x03R\x05atime\x12\x19\n" +
"\batime_ns\x18\x17 \x01(\x05R\aatimeNs\"\xd5\x02\n" +
"\x12CreateEntryRequest\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12%\n" +
"\x05entry\x18\x02 \x01(\v2\x0f.filer_pb.EntryR\x05entry\x12\x15\n" +
"\x06o_excl\x18\x03 \x01(\bR\x05oExcl\x121\n" +
"\x15is_from_other_cluster\x18\x04 \x01(\bR\x12isFromOtherCluster\x12\x1e\n" +
"\n" +
"signatures\x18\x05 \x03(\x05R\n" +
"signatures\x12=\n" +
"\x1bskip_check_parent_directory\x18\x06 \x01(\bR\x18skipCheckParentDirectory\x126\n" +
"\tcondition\x18\a \x01(\v2\x18.filer_pb.WriteConditionR\tcondition\x12\x19\n" +
"\bis_moved\x18\b \x01(\bR\aisMoved\"\x88\x05\n" +
"\x0eWriteCondition\x129\n" +
"\aclauses\x18\x01 \x03(\v2\x1f.filer_pb.WriteCondition.ClauseR\aclauses\x1a\xc9\x02\n" +
"\x06Clause\x121\n" +
"\x04kind\x18\x01 \x01(\x0e2\x1d.filer_pb.WriteCondition.KindR\x04kind\x12\x14\n" +
"\x05etags\x18\x02 \x03(\tR\x05etags\x12\x1b\n" +
"\tunix_time\x18\x03 \x01(\x03R\bunixTime\x12\x1d\n" +
"\n" +
"allow_weak\x18\x04 \x01(\bR\tallowWeak\x12\x17\n" +
"\aext_key\x18\x05 \x01(\tR\x06extKey\x12\x1b\n" +
"\text_value\x18\x06 \x01(\tR\bextValue\x12\x19\n" +
"\bgate_key\x18\a \x01(\tR\agateKey\x12\x1d\n" +
"\n" +
"gate_value\x18\b \x01(\tR\tgateValue\x12\x12\n" +
"\x04fids\x18\t \x03(\tR\x04fids\x126\n" +
"\x0eexpected_entry\x18\n" +
" \x01(\v2\x0f.filer_pb.EntryR\rexpectedEntry\"\xee\x01\n" +
"\x04Kind\x12\b\n" +
"\x04NONE\x10\x00\x12\x11\n" +
"\rIF_NOT_EXISTS\x10\x01\x12\r\n" +
"\tIF_EXISTS\x10\x02\x12\x11\n" +
"\rIF_ETAG_MATCH\x10\x03\x12\x15\n" +
"\x11IF_ETAG_NOT_MATCH\x10\x04\x12\x17\n" +
"\x13IF_UNMODIFIED_SINCE\x10\x05\x12\x15\n" +
"\x11IF_MODIFIED_SINCE\x10\x06\x12\x19\n" +
"\x15IF_EXTENDED_NOT_EQUAL\x10\a\x12\x1c\n" +
"\x18IF_EXTENDED_TIME_ELAPSED\x10\b\x12\x13\n" +
"\x0fIF_CHUNKS_EQUAL\x10\t\x12\x12\n" +
"\x0eIF_ENTRY_EQUAL\x10\n" +
"\"\xd0\x05\n" +
"\x0eObjectMutation\x121\n" +
"\x04type\x18\x01 \x01(\x0e2\x1d.filer_pb.ObjectMutation.TypeR\x04type\x12\x1c\n" +
"\tdirectory\x18\x02 \x01(\tR\tdirectory\x12\x12\n" +
"\x04name\x18\x03 \x01(\tR\x04name\x12%\n" +
"\x05entry\x18\x04 \x01(\v2\x0f.filer_pb.EntryR\x05entry\x12L\n" +
"\fset_extended\x18\x05 \x03(\v2).filer_pb.ObjectMutation.SetExtendedEntryR\vsetExtended\x12'\n" +
"\x0fdelete_extended\x18\x06 \x03(\tR\x0edeleteExtended\x12$\n" +
"\x0eis_delete_data\x18\a \x01(\bR\fisDeleteData\x12!\n" +
"\fis_recursive\x18\b \x01(\bR\visRecursive\x121\n" +
"\trecompute\x18\t \x01(\v2\x13.filer_pb.RecomputeR\trecompute\x12\x1f\n" +
"\vset_content\x18\n" +
" \x01(\bR\n" +
"setContent\x12\x18\n" +
"\acontent\x18\v \x01(\fR\acontent\x12\x1f\n" +
"\vtouch_mtime\x18\f \x01(\bR\n" +
"touchMtime\x12.\n" +
"\x13remove_empty_parent\x18\r \x01(\bR\x11removeEmptyParent\x12,\n" +
"\x12keep_remote_object\x18\x0e \x01(\bR\x10keepRemoteObject\x1a>\n" +
"\x10SetExtendedEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"E\n" +
"\x04Type\x12\a\n" +
"\x03PUT\x10\x00\x12\n" +
"\n" +
"\x06DELETE\x10\x01\x12\x12\n" +
"\x0ePATCH_EXTENDED\x10\x02\x12\x14\n" +
"\x10RECOMPUTE_LATEST\x10\x03\"\x9a\x03\n" +
"\tRecompute\x12\x19\n" +
"\bscan_dir\x18\x01 \x01(\tR\ascanDir\x12\x1e\n" +
"\n" +
"descending\x18\x02 \x01(\bR\n" +
"descending\x12J\n" +
"\rcopy_extended\x18\x03 \x03(\v2%.filer_pb.Recompute.CopyExtendedEntryR\fcopyExtended\x12\x1e\n" +
"\vname_to_key\x18\x04 \x01(\tR\tnameToKey\x12\x1e\n" +
"\vsize_to_key\x18\x05 \x01(\tR\tsizeToKey\x12 \n" +
"\fmtime_to_key\x18\x06 \x01(\tR\n" +
"mtimeToKey\x12\x1d\n" +
"\n" +
"demote_key\x18\a \x01(\tR\tdemoteKey\x12!\n" +
"\fdemote_value\x18\b \x01(\fR\vdemoteValue\x12!\n" +
"\fexclude_name\x18\t \x01(\tR\vexcludeName\x1a?\n" +
"\x11CopyExtendedEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xa0\x03\n" +
"\x18ObjectTransactionRequest\x12\x19\n" +
"\block_key\x18\x01 \x01(\tR\alockKey\x126\n" +
"\tcondition\x18\x02 \x01(\v2\x18.filer_pb.WriteConditionR\tcondition\x126\n" +
"\tmutations\x18\x03 \x03(\v2\x18.filer_pb.ObjectMutationR\tmutations\x121\n" +
"\x15is_from_other_cluster\x18\x04 \x01(\bR\x12isFromOtherCluster\x12\x1e\n" +
"\n" +
"signatures\x18\x05 \x03(\x05R\n" +
"signatures\x12#\n" +
"\rcondition_key\x18\x06 \x01(\tR\fconditionKey\x12\x1b\n" +
"\troute_key\x18\a \x01(\tR\brouteKey\x12\x19\n" +
"\bis_moved\x18\b \x01(\bR\aisMoved\x12\x1d\n" +
"\n" +
"request_id\x18\t \x01(\tR\trequestId\x12*\n" +
"\x11condition_alt_key\x18\n" +
" \x01(\tR\x0fconditionAltKey\"f\n" +
"\x19ObjectTransactionResponse\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\x123\n" +
"\n" +
"error_code\x18\x02 \x01(\x0e2\x14.filer_pb.FilerErrorR\terrorCode\"\xa1\x01\n" +
"\x0ePosixLockRange\x12\x14\n" +
"\x05start\x18\x01 \x01(\x04R\x05start\x12\x10\n" +
"\x03end\x18\x02 \x01(\x04R\x03end\x12\x12\n" +
"\x04type\x18\x03 \x01(\rR\x04type\x12\x10\n" +
"\x03sid\x18\x04 \x01(\x04R\x03sid\x12\x14\n" +
"\x05owner\x18\x05 \x01(\x04R\x05owner\x12\x10\n" +
"\x03pid\x18\x06 \x01(\rR\x03pid\x12\x19\n" +
"\bis_flock\x18\a \x01(\bR\aisFlock\"\xe9\x01\n" +
"\x10PosixLockRequest\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x19\n" +
"\bis_moved\x18\x02 \x01(\bR\aisMoved\x12%\n" +
"\x02op\x18\x03 \x01(\x0e2\x15.filer_pb.PosixLockOpR\x02op\x12,\n" +
"\x04lock\x18\x04 \x01(\v2\x18.filer_pb.PosixLockRangeR\x04lock\x12.\n" +
"\x05locks\x18\x05 \x03(\v2\x18.filer_pb.PosixLockRangeR\x05locks\x12#\n" +
"\rcooling_probe\x18\x06 \x01(\bR\fcoolingProbe\"\x86\x01\n" +
"\x11PosixLockResponse\x12\x18\n" +
"\agranted\x18\x01 \x01(\bR\agranted\x12!\n" +
"\fhas_conflict\x18\x02 \x01(\bR\vhasConflict\x124\n" +
"\bconflict\x18\x03 \x01(\v2\x18.filer_pb.PosixLockRangeR\bconflict\"g\n" +
"\x1dObjectTransactionBatchRequest\x12F\n" +
"\ftransactions\x18\x01 \x03(\v2\".filer_pb.ObjectTransactionRequestR\ftransactions\"c\n" +
"\x1eObjectTransactionBatchResponse\x12A\n" +
"\tresponses\x18\x01 \x03(\v2#.filer_pb.ObjectTransactionResponseR\tresponses\"\xed\x01\n" +
"\x13CreateEntryResponse\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\x12J\n" +
"\x0emetadata_event\x18\x02 \x01(\v2#.filer_pb.SubscribeMetadataResponseR\rmetadataEvent\x123\n" +
"\n" +
"error_code\x18\x03 \x01(\x0e2\x14.filer_pb.FilerErrorR\terrorCode\x12\x1a\n" +
"\tlog_ts_ns\x18\x04 \x01(\x03R\alogTsNs\x12#\n" +
"\rlog_signature\x18\x05 \x01(\x05R\flogSignature\"\xa5\x03\n" +
"\x12UpdateEntryRequest\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12%\n" +
"\x05entry\x18\x02 \x01(\v2\x0f.filer_pb.EntryR\x05entry\x121\n" +
"\x15is_from_other_cluster\x18\x03 \x01(\bR\x12isFromOtherCluster\x12\x1e\n" +
"\n" +
"signatures\x18\x04 \x03(\x05R\n" +
"signatures\x12_\n" +
"\x11expected_extended\x18\x05 \x03(\v22.filer_pb.UpdateEntryRequest.ExpectedExtendedEntryR\x10expectedExtended\x126\n" +
"\tcondition\x18\x06 \x01(\v2\x18.filer_pb.WriteConditionR\tcondition\x12\x19\n" +
"\bis_moved\x18\a \x01(\bR\aisMoved\x1aC\n" +
"\x15ExpectedExtendedEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\xa2\x01\n" +
"\x13UpdateEntryResponse\x12J\n" +
"\x0emetadata_event\x18\x01 \x01(\v2#.filer_pb.SubscribeMetadataResponseR\rmetadataEvent\x12\x1a\n" +
"\tlog_ts_ns\x18\x02 \x01(\x03R\alogTsNs\x12#\n" +
"\rlog_signature\x18\x03 \x01(\x05R\flogSignature\"r\n" +
"\x16TouchAccessTimeRequest\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12\x12\n" +
"\x04name\x18\x02 \x01(\tR\x04name\x12&\n" +
"\x0fclient_atime_ns\x18\x03 \x01(\x03R\rclientAtimeNs\"a\n" +
"\x17TouchAccessTimeResponse\x12,\n" +
"\x12persisted_atime_ns\x18\x01 \x01(\x03R\x10persistedAtimeNs\x12\x18\n" +
"\aupdated\x18\x02 \x01(\bR\aupdated\"\x80\x01\n" +
"\x14AppendToEntryRequest\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12\x1d\n" +
"\n" +
"entry_name\x18\x02 \x01(\tR\tentryName\x12+\n" +
"\x06chunks\x18\x03 \x03(\v2\x13.filer_pb.FileChunkR\x06chunks\"\x17\n" +
"\x15AppendToEntryResponse\"\xf9\x02\n" +
"\x12DeleteEntryRequest\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12\x12\n" +
"\x04name\x18\x02 \x01(\tR\x04name\x12$\n" +
"\x0eis_delete_data\x18\x04 \x01(\bR\fisDeleteData\x12!\n" +
"\fis_recursive\x18\x05 \x01(\bR\visRecursive\x124\n" +
"\x16ignore_recursive_error\x18\x06 \x01(\bR\x14ignoreRecursiveError\x121\n" +
"\x15is_from_other_cluster\x18\a \x01(\bR\x12isFromOtherCluster\x12\x1e\n" +
"\n" +
"signatures\x18\b \x03(\x05R\n" +
"signatures\x121\n" +
"\x15if_not_modified_after\x18\t \x01(\x03R\x12ifNotModifiedAfter\x12,\n" +
"\x12keep_remote_object\x18\n" +
" \x01(\bR\x10keepRemoteObject\"w\n" +
"\x13DeleteEntryResponse\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\x12J\n" +
"\x0emetadata_event\x18\x02 \x01(\v2#.filer_pb.SubscribeMetadataResponseR\rmetadataEvent\"\xed\x01\n" +
"\x18AtomicRenameEntryRequest\x12#\n" +
"\rold_directory\x18\x01 \x01(\tR\foldDirectory\x12\x19\n" +
"\bold_name\x18\x02 \x01(\tR\aoldName\x12#\n" +
"\rnew_directory\x18\x03 \x01(\tR\fnewDirectory\x12\x19\n" +
"\bnew_name\x18\x04 \x01(\tR\anewName\x12\x1e\n" +
"\n" +
"signatures\x18\x05 \x03(\x05R\n" +
"signatures\x121\n" +
"\x15fail_if_target_exists\x18\x06 \x01(\bR\x12failIfTargetExists\"\x1b\n" +
"\x19AtomicRenameEntryResponse\"\xba\x01\n" +
"\x18StreamRenameEntryRequest\x12#\n" +
"\rold_directory\x18\x01 \x01(\tR\foldDirectory\x12\x19\n" +
"\bold_name\x18\x02 \x01(\tR\aoldName\x12#\n" +
"\rnew_directory\x18\x03 \x01(\tR\fnewDirectory\x12\x19\n" +
"\bnew_name\x18\x04 \x01(\tR\anewName\x12\x1e\n" +
"\n" +
"signatures\x18\x05 \x03(\x05R\n" +
"signatures\"\x9a\x01\n" +
"\x19StreamRenameEntryResponse\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12J\n" +
"\x12event_notification\x18\x02 \x01(\v2\x1b.filer_pb.EventNotificationR\x11eventNotification\x12\x13\n" +
"\x05ts_ns\x18\x03 \x01(\x03R\x04tsNs\"\xb7\x02\n" +
"\x13AssignVolumeRequest\x12\x14\n" +
"\x05count\x18\x01 \x01(\x05R\x05count\x12\x1e\n" +
"\n" +
"collection\x18\x02 \x01(\tR\n" +
"collection\x12 \n" +
"\vreplication\x18\x03 \x01(\tR\vreplication\x12\x17\n" +
"\attl_sec\x18\x04 \x01(\x05R\x06ttlSec\x12\x1f\n" +
"\vdata_center\x18\x05 \x01(\tR\n" +
"dataCenter\x12\x12\n" +
"\x04path\x18\x06 \x01(\tR\x04path\x12\x12\n" +
"\x04rack\x18\a \x01(\tR\x04rack\x12\x1b\n" +
"\tdata_node\x18\t \x01(\tR\bdataNode\x12\x1b\n" +
"\tdisk_type\x18\b \x01(\tR\bdiskType\x12,\n" +
"\x12expected_data_size\x18\n" +
" \x01(\x04R\x10expectedDataSize\"\xdc\x02\n" +
"\x14AssignVolumeResponse\x12\x17\n" +
"\afile_id\x18\x01 \x01(\tR\x06fileId\x12\x14\n" +
"\x05count\x18\x04 \x01(\x05R\x05count\x12\x12\n" +
"\x04auth\x18\x05 \x01(\tR\x04auth\x12\x1e\n" +
"\n" +
"collection\x18\x06 \x01(\tR\n" +
"collection\x12 \n" +
"\vreplication\x18\a \x01(\tR\vreplication\x12\x14\n" +
"\x05error\x18\b \x01(\tR\x05error\x12.\n" +
"\blocation\x18\t \x01(\v2\x12.filer_pb.LocationR\blocation\x12.\n" +
"\breplicas\x18\n" +
" \x03(\v2\x12.filer_pb.LocationR\breplicas\x12\x14\n" +
"\x05fsync\x18\v \x01(\bR\x05fsync\x123\n" +
"\n" +
"error_code\x18\f \x01(\x0e2\x14.filer_pb.FilerErrorR\terrorCode\"4\n" +
"\x13LookupVolumeRequest\x12\x1d\n" +
"\n" +
"volume_ids\x18\x01 \x03(\tR\tvolumeIds\"=\n" +
"\tLocations\x120\n" +
"\tlocations\x18\x01 \x03(\v2\x12.filer_pb.LocationR\tlocations\"\x9f\x01\n" +
"\bLocation\x12\x10\n" +
"\x03url\x18\x01 \x01(\tR\x03url\x12\x1d\n" +
"\n" +
"public_url\x18\x02 \x01(\tR\tpublicUrl\x12\x1b\n" +
"\tgrpc_port\x18\x03 \x01(\rR\bgrpcPort\x12\x1f\n" +
"\vdata_center\x18\x04 \x01(\tR\n" +
"dataCenter\x12$\n" +
"\x0edata_in_remote\x18\x05 \x01(\bR\fdataInRemote\"\xc3\x01\n" +
"\x14LookupVolumeResponse\x12U\n" +
"\rlocations_map\x18\x01 \x03(\v20.filer_pb.LookupVolumeResponse.LocationsMapEntryR\flocationsMap\x1aT\n" +
"\x11LocationsMapEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12)\n" +
"\x05value\x18\x02 \x01(\v2\x13.filer_pb.LocationsR\x05value:\x028\x01\" \n" +
"\n" +
"Collection\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\"{\n" +
"\x15CollectionListRequest\x124\n" +
"\x16include_normal_volumes\x18\x01 \x01(\bR\x14includeNormalVolumes\x12,\n" +
"\x12include_ec_volumes\x18\x02 \x01(\bR\x10includeEcVolumes\"P\n" +
"\x16CollectionListResponse\x126\n" +
"\vcollections\x18\x01 \x03(\v2\x14.filer_pb.CollectionR\vcollections\"9\n" +
"\x17DeleteCollectionRequest\x12\x1e\n" +
"\n" +
"collection\x18\x01 \x01(\tR\n" +
"collection\"\x1a\n" +
"\x18DeleteCollectionResponse\"\x84\x01\n" +
"\x11StatisticsRequest\x12 \n" +
"\vreplication\x18\x01 \x01(\tR\vreplication\x12\x1e\n" +
"\n" +
"collection\x18\x02 \x01(\tR\n" +
"collection\x12\x10\n" +
"\x03ttl\x18\x03 \x01(\tR\x03ttl\x12\x1b\n" +
"\tdisk_type\x18\x04 \x01(\tR\bdiskType\"\xc9\x01\n" +
"\x12StatisticsResponse\x12\x1d\n" +
"\n" +
"total_size\x18\x04 \x01(\x04R\ttotalSize\x12\x1b\n" +
"\tused_size\x18\x05 \x01(\x04R\busedSize\x12\x1d\n" +
"\n" +
"file_count\x18\x06 \x01(\x04R\tfileCount\x12,\n" +
"\x12logical_total_size\x18\a \x01(\x04R\x10logicalTotalSize\x12*\n" +
"\x11logical_used_size\x18\b \x01(\x04R\x0flogicalUsedSize\"F\n" +
"\vPingRequest\x12\x16\n" +
"\x06target\x18\x01 \x01(\tR\x06target\x12\x1f\n" +
"\vtarget_type\x18\x02 \x01(\tR\n" +
"targetType\"z\n" +
"\fPingResponse\x12\"\n" +
"\rstart_time_ns\x18\x01 \x01(\x03R\vstartTimeNs\x12$\n" +
"\x0eremote_time_ns\x18\x02 \x01(\x03R\fremoteTimeNs\x12 \n" +
"\fstop_time_ns\x18\x03 \x01(\x03R\n" +
"stopTimeNs\"\x1e\n" +
"\x1cGetFilerConfigurationRequest\"\xe8\x03\n" +
"\x1dGetFilerConfigurationResponse\x12\x18\n" +
"\amasters\x18\x01 \x03(\tR\amasters\x12 \n" +
"\vreplication\x18\x02 \x01(\tR\vreplication\x12\x1e\n" +
"\n" +
"collection\x18\x03 \x01(\tR\n" +
"collection\x12\x15\n" +
"\x06max_mb\x18\x04 \x01(\rR\x05maxMb\x12\x1f\n" +
"\vdir_buckets\x18\x05 \x01(\tR\n" +
"dirBuckets\x12\x16\n" +
"\x06cipher\x18\a \x01(\bR\x06cipher\x12\x1c\n" +
"\tsignature\x18\b \x01(\x05R\tsignature\x12'\n" +
"\x0fmetrics_address\x18\t \x01(\tR\x0emetricsAddress\x120\n" +
"\x14metrics_interval_sec\x18\n" +
" \x01(\x05R\x12metricsIntervalSec\x12\x18\n" +
"\aversion\x18\v \x01(\tR\aversion\x12\x1d\n" +
"\n" +
"cluster_id\x18\f \x01(\tR\tclusterId\x12\x1f\n" +
"\vfiler_group\x18\r \x01(\tR\n" +
"filerGroup\x12#\n" +
"\rmajor_version\x18\x0e \x01(\x05R\fmajorVersion\x12#\n" +
"\rminor_version\x18\x0f \x01(\x05R\fminorVersion\"\xfd\x03\n" +
"\x18SubscribeMetadataRequest\x12\x1f\n" +
"\vclient_name\x18\x01 \x01(\tR\n" +
"clientName\x12\x1f\n" +
"\vpath_prefix\x18\x02 \x01(\tR\n" +
"pathPrefix\x12\x19\n" +
"\bsince_ns\x18\x03 \x01(\x03R\asinceNs\x12\x1c\n" +
"\tsignature\x18\x04 \x01(\x05R\tsignature\x12#\n" +
"\rpath_prefixes\x18\x06 \x03(\tR\fpathPrefixes\x12\x1b\n" +
"\tclient_id\x18\a \x01(\x05R\bclientId\x12\x19\n" +
"\buntil_ns\x18\b \x01(\x03R\auntilNs\x12!\n" +
"\fclient_epoch\x18\t \x01(\x05R\vclientEpoch\x12 \n" +
"\vdirectories\x18\n" +
" \x03(\tR\vdirectories\x128\n" +
"\x18client_supports_batching\x18\v \x01(\bR\x16clientSupportsBatching\x12E\n" +
"\x1fclient_supports_metadata_chunks\x18\f \x01(\bR\x1cclientSupportsMetadataChunks\x12C\n" +
"\x1eclient_supports_idle_heartbeat\x18\r \x01(\bR\x1bclientSupportsIdleHeartbeat\"\xba\x02\n" +
"\x19SubscribeMetadataResponse\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12J\n" +
"\x12event_notification\x18\x02 \x01(\v2\x1b.filer_pb.EventNotificationR\x11eventNotification\x12\x13\n" +
"\x05ts_ns\x18\x03 \x01(\x03R\x04tsNs\x12;\n" +
"\x06events\x18\x04 \x03(\v2#.filer_pb.SubscribeMetadataResponseR\x06events\x12=\n" +
"\rlog_file_refs\x18\x05 \x03(\v2\x19.filer_pb.LogFileChunkRefR\vlogFileRefs\x12\"\n" +
"\rflushed_ts_ns\x18\x06 \x01(\x03R\vflushedTsNs\"C\n" +
"\x1eListMetadataSubscribersRequest\x12!\n" +
"\fclient_types\x18\x01 \x03(\tR\vclientTypes\"a\n" +
"\x1fListMetadataSubscribersResponse\x12>\n" +
"\vsubscribers\x18\x01 \x03(\v2\x1c.filer_pb.MetadataSubscriberR\vsubscribers\"\x9e\x02\n" +
"\x12MetadataSubscriber\x12\x1f\n" +
"\vclient_name\x18\x01 \x01(\tR\n" +
"clientName\x12\x1f\n" +
"\vclient_type\x18\x02 \x01(\tR\n" +
"clientType\x12\x18\n" +
"\aaddress\x18\x03 \x01(\tR\aaddress\x12\x1f\n" +
"\vpath_prefix\x18\x04 \x01(\tR\n" +
"pathPrefix\x12\x1b\n" +
"\tclient_id\x18\x05 \x01(\x05R\bclientId\x12!\n" +
"\fclient_epoch\x18\x06 \x01(\x05R\vclientEpoch\x12&\n" +
"\x0fconnected_at_ns\x18\a \x01(\x03R\rconnectedAtNs\x12#\n" +
"\rfiler_address\x18\b \x01(\tR\ffilerAddress\"w\n" +
"\x0fLogFileChunkRef\x12+\n" +
"\x06chunks\x18\x01 \x03(\v2\x13.filer_pb.FileChunkR\x06chunks\x12\x1c\n" +
"\n" +
"file_ts_ns\x18\x02 \x01(\x03R\bfileTsNs\x12\x19\n" +
"\bfiler_id\x18\x03 \x01(\tR\afilerId\"g\n" +
"\x1aTraverseBfsMetadataRequest\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12+\n" +
"\x11excluded_prefixes\x18\x02 \x03(\tR\x10excludedPrefixes\"\x82\x01\n" +
"\x1bTraverseBfsMetadataResponse\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12%\n" +
"\x05entry\x18\x02 \x01(\v2\x0f.filer_pb.EntryR\x05entry\x12\x1e\n" +
"\ventry_ts_ns\x18\x03 \x01(\x03R\tentryTsNs\"\x8b\x01\n" +
"\bLogEntry\x12\x13\n" +
"\x05ts_ns\x18\x01 \x01(\x03R\x04tsNs\x12,\n" +
"\x12partition_key_hash\x18\x02 \x01(\x05R\x10partitionKeyHash\x12\x12\n" +
"\x04data\x18\x03 \x01(\fR\x04data\x12\x10\n" +
"\x03key\x18\x04 \x01(\fR\x03key\x12\x16\n" +
"\x06offset\x18\x05 \x01(\x03R\x06offset\"e\n" +
"\x14KeepConnectedRequest\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n" +
"\tgrpc_port\x18\x02 \x01(\rR\bgrpcPort\x12\x1c\n" +
"\tresources\x18\x03 \x03(\tR\tresources\"\x17\n" +
"\x15KeepConnectedResponse\"1\n" +
"\x13LocateBrokerRequest\x12\x1a\n" +
"\bresource\x18\x01 \x01(\tR\bresource\"\xcd\x01\n" +
"\x14LocateBrokerResponse\x12\x14\n" +
"\x05found\x18\x01 \x01(\bR\x05found\x12E\n" +
"\tresources\x18\x02 \x03(\v2'.filer_pb.LocateBrokerResponse.ResourceR\tresources\x1aX\n" +
"\bResource\x12%\n" +
"\x0egrpc_addresses\x18\x01 \x01(\tR\rgrpcAddresses\x12%\n" +
"\x0eresource_count\x18\x02 \x01(\x05R\rresourceCount\" \n" +
"\fKvGetRequest\x12\x10\n" +
"\x03key\x18\x01 \x01(\fR\x03key\";\n" +
"\rKvGetResponse\x12\x14\n" +
"\x05value\x18\x01 \x01(\fR\x05value\x12\x14\n" +
"\x05error\x18\x02 \x01(\tR\x05error\"6\n" +
"\fKvPutRequest\x12\x10\n" +
"\x03key\x18\x01 \x01(\fR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\fR\x05value\"%\n" +
"\rKvPutResponse\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\"\xcf\x05\n" +
"\tFilerConf\x12\x18\n" +
"\aversion\x18\x01 \x01(\x05R\aversion\x12:\n" +
"\tlocations\x18\x02 \x03(\v2\x1c.filer_pb.FilerConf.PathConfR\tlocations\x1a\xeb\x04\n" +
"\bPathConf\x12'\n" +
"\x0flocation_prefix\x18\x01 \x01(\tR\x0elocationPrefix\x12\x1e\n" +
"\n" +
"collection\x18\x02 \x01(\tR\n" +
"collection\x12 \n" +
"\vreplication\x18\x03 \x01(\tR\vreplication\x12\x10\n" +
"\x03ttl\x18\x04 \x01(\tR\x03ttl\x12\x1b\n" +
"\tdisk_type\x18\x05 \x01(\tR\bdiskType\x12\x19\n" +
"\x05fsync\x18\x06 \x01(\bH\x00R\x05fsync\x88\x01\x01\x12.\n" +
"\x13volume_growth_count\x18\a \x01(\rR\x11volumeGrowthCount\x12\x1b\n" +
"\tread_only\x18\b \x01(\bR\breadOnly\x12\x1f\n" +
"\vdata_center\x18\t \x01(\tR\n" +
"dataCenter\x12\x12\n" +
"\x04rack\x18\n" +
" \x01(\tR\x04rack\x12\x1b\n" +
"\tdata_node\x18\v \x01(\tR\bdataNode\x12/\n" +
"\x14max_file_name_length\x18\f \x01(\rR\x11maxFileNameLength\x124\n" +
"\x16disable_chunk_deletion\x18\r \x01(\bR\x14disableChunkDeletion\x12\x17\n" +
"\x04worm\x18\x0e \x01(\bH\x01R\x04worm\x88\x01\x01\x129\n" +
"\x19worm_grace_period_seconds\x18\x0f \x01(\x04R\x16wormGracePeriodSeconds\x12=\n" +
"\x1bworm_retention_time_seconds\x18\x10 \x01(\x04R\x18wormRetentionTimeSecondsB\b\n" +
"\x06_fsyncB\a\n" +
"\x05_worm\"\xba\x01\n" +
"&CacheRemoteObjectToLocalClusterRequest\x12\x1c\n" +
"\tdirectory\x18\x01 \x01(\tR\tdirectory\x12\x12\n" +
"\x04name\x18\x02 \x01(\tR\x04name\x12+\n" +
"\x11chunk_concurrency\x18\x03 \x01(\x05R\x10chunkConcurrency\x121\n" +
"\x14download_concurrency\x18\x04 \x01(\x05R\x13downloadConcurrency\"\xdd\x01\n" +
"'CacheRemoteObjectToLocalClusterResponse\x12%\n" +
"\x05entry\x18\x01 \x01(\v2\x0f.filer_pb.EntryR\x05entry\x12J\n" +
"\x0emetadata_event\x18\x02 \x01(\v2#.filer_pb.SubscribeMetadataResponseR\rmetadataEvent\x12\x1a\n" +
"\tlog_ts_ns\x18\x03 \x01(\x03R\alogTsNs\x12#\n" +
"\rlog_signature\x18\x04 \x01(\x05R\flogSignature\"\x9b\x01\n" +
"\vLockRequest\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12&\n" +
"\x0fseconds_to_lock\x18\x02 \x01(\x03R\rsecondsToLock\x12\x1f\n" +
"\vrenew_token\x18\x03 \x01(\tR\n" +
"renewToken\x12\x19\n" +
"\bis_moved\x18\x04 \x01(\bR\aisMoved\x12\x14\n" +
"\x05owner\x18\x05 \x01(\tR\x05owner\"\xb1\x01\n" +
"\fLockResponse\x12\x1f\n" +
"\vrenew_token\x18\x01 \x01(\tR\n" +
"renewToken\x12\x1d\n" +
"\n" +
"lock_owner\x18\x02 \x01(\tR\tlockOwner\x12+\n" +
"\x12lock_host_moved_to\x18\x03 \x01(\tR\x0flockHostMovedTo\x12\x14\n" +
"\x05error\x18\x04 \x01(\tR\x05error\x12\x1e\n" +
"\n" +
"generation\x18\x05 \x01(\x03R\n" +
"generation\"_\n" +
"\rUnlockRequest\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n" +
"\vrenew_token\x18\x02 \x01(\tR\n" +
"renewToken\x12\x19\n" +
"\bis_moved\x18\x03 \x01(\bR\aisMoved\"A\n" +
"\x0eUnlockResponse\x12\x14\n" +
"\x05error\x18\x01 \x01(\tR\x05error\x12\x19\n" +
"\bmoved_to\x18\x02 \x01(\tR\amovedTo\"E\n" +
"\x14FindLockOwnerRequest\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x19\n" +
"\bis_moved\x18\x02 \x01(\bR\aisMoved\"-\n" +
"\x15FindLockOwnerResponse\x12\x14\n" +
"\x05owner\x18\x01 \x01(\tR\x05owner\"\xc4\x01\n" +
"\x04Lock\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n" +
"\vrenew_token\x18\x02 \x01(\tR\n" +
"renewToken\x12\"\n" +
"\rexpired_at_ns\x18\x03 \x01(\x03R\vexpiredAtNs\x12\x14\n" +
"\x05owner\x18\x04 \x01(\tR\x05owner\x12\x1e\n" +
"\n" +
"generation\x18\x05 \x01(\x03R\n" +
"generation\x12\x1b\n" +
"\tis_backup\x18\x06 \x01(\bR\bisBackup\x12\x10\n" +
"\x03seq\x18\a \x01(\x03R\x03seq\"<\n" +
"\x14TransferLocksRequest\x12$\n" +
"\x05locks\x18\x01 \x03(\v2\x0e.filer_pb.LockR\x05locks\"\x17\n" +
"\x15TransferLocksResponse\"\xd4\x01\n" +
"\x14ReplicateLockRequest\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n" +
"\vrenew_token\x18\x02 \x01(\tR\n" +
"renewToken\x12\"\n" +
"\rexpired_at_ns\x18\x03 \x01(\x03R\vexpiredAtNs\x12\x14\n" +
"\x05owner\x18\x04 \x01(\tR\x05owner\x12\x1e\n" +
"\n" +
"generation\x18\x05 \x01(\x03R\n" +
"generation\x12\x1b\n" +
"\tis_unlock\x18\x06 \x01(\bR\bisUnlock\x12\x10\n" +
"\x03seq\x18\a \x01(\x03R\x03seq\"\x17\n" +
"\x15ReplicateLockResponse\"\xe6\x02\n" +
"\x18StreamMutateEntryRequest\x12\x1d\n" +
"\n" +
"request_id\x18\x01 \x01(\x04R\trequestId\x12E\n" +
"\x0ecreate_request\x18\x02 \x01(\v2\x1c.filer_pb.CreateEntryRequestH\x00R\rcreateRequest\x12E\n" +
"\x0eupdate_request\x18\x03 \x01(\v2\x1c.filer_pb.UpdateEntryRequestH\x00R\rupdateRequest\x12E\n" +
"\x0edelete_request\x18\x04 \x01(\v2\x1c.filer_pb.DeleteEntryRequestH\x00R\rdeleteRequest\x12K\n" +
"\x0erename_request\x18\x05 \x01(\v2\".filer_pb.StreamRenameEntryRequestH\x00R\rrenameRequestB\t\n" +
"\arequest\"\xb9\x03\n" +
"\x19StreamMutateEntryResponse\x12\x1d\n" +
"\n" +
"request_id\x18\x01 \x01(\x04R\trequestId\x12\x17\n" +
"\ais_last\x18\x02 \x01(\bR\x06isLast\x12H\n" +
"\x0fcreate_response\x18\x03 \x01(\v2\x1d.filer_pb.CreateEntryResponseH\x00R\x0ecreateResponse\x12H\n" +
"\x0fupdate_response\x18\x04 \x01(\v2\x1d.filer_pb.UpdateEntryResponseH\x00R\x0eupdateResponse\x12H\n" +
"\x0fdelete_response\x18\x05 \x01(\v2\x1d.filer_pb.DeleteEntryResponseH\x00R\x0edeleteResponse\x12N\n" +
"\x0frename_response\x18\x06 \x01(\v2#.filer_pb.StreamRenameEntryResponseH\x00R\x0erenameResponse\x12\x14\n" +
"\x05error\x18\a \x01(\tR\x05error\x12\x14\n" +
"\x05errno\x18\b \x01(\x05R\x05errnoB\n" +
"\n" +
"\bresponse\"\x89\x01\n" +
"\x14MountRegisterRequest\x12\x1b\n" +
"\tpeer_addr\x18\x01 \x01(\tR\bpeerAddr\x12\x12\n" +
"\x04rack\x18\x02 \x01(\tR\x04rack\x12\x1f\n" +
"\vttl_seconds\x18\x03 \x01(\x05R\n" +
"ttlSeconds\x12\x1f\n" +
"\vdata_center\x18\x04 \x01(\tR\n" +
"dataCenter\"\x17\n" +
"\x15MountRegisterResponse\"\x12\n" +
"\x10MountListRequest\"@\n" +
"\x11MountListResponse\x12+\n" +
"\x06mounts\x18\x01 \x03(\v2\x13.filer_pb.MountInfoR\x06mounts\"\x7f\n" +
"\tMountInfo\x12\x1b\n" +
"\tpeer_addr\x18\x01 \x01(\tR\bpeerAddr\x12\x12\n" +
"\x04rack\x18\x02 \x01(\tR\x04rack\x12 \n" +
"\flast_seen_ns\x18\x03 \x01(\x03R\n" +
"lastSeenNs\x12\x1f\n" +
"\vdata_center\x18\x04 \x01(\tR\n" +
"dataCenter\"\x9f\x01\n" +
"\x1dLookupDirectoryEntriesRequest\x12A\n" +
"\brequests\x18\x01 \x03(\v2%.filer_pb.LookupDirectoryEntryRequestR\brequests\x12;\n" +
"\x1aunavailable_volume_is_miss\x18\x02 \x01(\bR\x17unavailableVolumeIsMiss\"\xb0\x01\n" +
"\x1aLookupDirectoryEntryResult\x12\x14\n" +
"\x05found\x18\x01 \x01(\bR\x05found\x12%\n" +
"\x05entry\x18\x02 \x01(\v2\x0f.filer_pb.EntryR\x05entry\x12\x14\n" +
"\x05error\x18\x03 \x01(\tR\x05error\x12\x1a\n" +
"\tlog_ts_ns\x18\x04 \x01(\x03R\alogTsNs\x12#\n" +
"\rlog_signature\x18\x05 \x01(\x05R\flogSignature\"\xa9\x03\n" +
"\x1eLookupDirectoryEntriesResponse\x12>\n" +
"\aresults\x18\x01 \x03(\v2$.filer_pb.LookupDirectoryEntryResultR\aresults\x12_\n" +
"\rlocations_map\x18\x02 \x03(\v2:.filer_pb.LookupDirectoryEntriesResponse.LocationsMapEntryR\flocationsMap\x12S\n" +
"\tread_auth\x18\x03 \x03(\v26.filer_pb.LookupDirectoryEntriesResponse.ReadAuthEntryR\breadAuth\x1aT\n" +
"\x11LocationsMapEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12)\n" +
"\x05value\x18\x02 \x01(\v2\x13.filer_pb.LocationsR\x05value:\x028\x01\x1a;\n" +
"\rReadAuthEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01*7\n" +
"\aSSEType\x12\b\n" +
"\x04NONE\x10\x00\x12\t\n" +
"\x05SSE_C\x10\x01\x12\v\n" +
"\aSSE_KMS\x10\x02\x12\n" +
"\n" +
"\x06SSE_S3\x10\x03*\xb4\x01\n" +
"\n" +
"FilerError\x12\x06\n" +
"\x02OK\x10\x00\x12\x17\n" +
"\x13ENTRY_NAME_TOO_LONG\x10\x01\x12\x12\n" +
"\x0ePARENT_IS_FILE\x10\x02\x12\x19\n" +
"\x15EXISTING_IS_DIRECTORY\x10\x03\x12\x14\n" +
"\x10EXISTING_IS_FILE\x10\x04\x12\x18\n" +
"\x14ENTRY_ALREADY_EXISTS\x10\x05\x12\x17\n" +
"\x13PRECONDITION_FAILED\x10\x06\x12\r\n" +
"\tREAD_ONLY\x10\a*u\n" +
"\vPosixLockOp\x12\f\n" +
"\bTRY_LOCK\x10\x00\x12\n" +
"\n" +
"\x06UNLOCK\x10\x01\x12\n" +
"\n" +
"\x06GET_LK\x10\x02\x12\x17\n" +
"\x13RELEASE_POSIX_OWNER\x10\x03\x12\x17\n" +
"\x13RELEASE_FLOCK_OWNER\x10\x04\x12\x0e\n" +
"\n" +
"KEEP_ALIVE\x10\x052\x9d\x18\n" +
"\fSeaweedFiler\x12g\n" +
"\x14LookupDirectoryEntry\x12%.filer_pb.LookupDirectoryEntryRequest\x1a&.filer_pb.LookupDirectoryEntryResponse\"\x00\x12m\n" +
"\x16LookupDirectoryEntries\x12'.filer_pb.LookupDirectoryEntriesRequest\x1a(.filer_pb.LookupDirectoryEntriesResponse\"\x00\x12N\n" +
"\vListEntries\x12\x1c.filer_pb.ListEntriesRequest\x1a\x1d.filer_pb.ListEntriesResponse\"\x000\x01\x12L\n" +
"\vCreateEntry\x12\x1c.filer_pb.CreateEntryRequest\x1a\x1d.filer_pb.CreateEntryResponse\"\x00\x12L\n" +
"\vUpdateEntry\x12\x1c.filer_pb.UpdateEntryRequest\x1a\x1d.filer_pb.UpdateEntryResponse\"\x00\x12X\n" +
"\x0fTouchAccessTime\x12 .filer_pb.TouchAccessTimeRequest\x1a!.filer_pb.TouchAccessTimeResponse\"\x00\x12R\n" +
"\rAppendToEntry\x12\x1e.filer_pb.AppendToEntryRequest\x1a\x1f.filer_pb.AppendToEntryResponse\"\x00\x12L\n" +
"\vDeleteEntry\x12\x1c.filer_pb.DeleteEntryRequest\x1a\x1d.filer_pb.DeleteEntryResponse\"\x00\x12^\n" +
"\x11ObjectTransaction\x12\".filer_pb.ObjectTransactionRequest\x1a#.filer_pb.ObjectTransactionResponse\"\x00\x12m\n" +
"\x16ObjectTransactionBatch\x12'.filer_pb.ObjectTransactionBatchRequest\x1a(.filer_pb.ObjectTransactionBatchResponse\"\x00\x12F\n" +
"\tPosixLock\x12\x1a.filer_pb.PosixLockRequest\x1a\x1b.filer_pb.PosixLockResponse\"\x00\x12^\n" +
"\x11AtomicRenameEntry\x12\".filer_pb.AtomicRenameEntryRequest\x1a#.filer_pb.AtomicRenameEntryResponse\"\x00\x12`\n" +
"\x11StreamRenameEntry\x12\".filer_pb.StreamRenameEntryRequest\x1a#.filer_pb.StreamRenameEntryResponse\"\x000\x01\x12b\n" +
"\x11StreamMutateEntry\x12\".filer_pb.StreamMutateEntryRequest\x1a#.filer_pb.StreamMutateEntryResponse\"\x00(\x010\x01\x12O\n" +
"\fAssignVolume\x12\x1d.filer_pb.AssignVolumeRequest\x1a\x1e.filer_pb.AssignVolumeResponse\"\x00\x12O\n" +
"\fLookupVolume\x12\x1d.filer_pb.LookupVolumeRequest\x1a\x1e.filer_pb.LookupVolumeResponse\"\x00\x12U\n" +
"\x0eCollectionList\x12\x1f.filer_pb.CollectionListRequest\x1a .filer_pb.CollectionListResponse\"\x00\x12[\n" +
"\x10DeleteCollection\x12!.filer_pb.DeleteCollectionRequest\x1a\".filer_pb.DeleteCollectionResponse\"\x00\x12I\n" +
"\n" +
"Statistics\x12\x1b.filer_pb.StatisticsRequest\x1a\x1c.filer_pb.StatisticsResponse\"\x00\x127\n" +
"\x04Ping\x12\x15.filer_pb.PingRequest\x1a\x16.filer_pb.PingResponse\"\x00\x12j\n" +
"\x15GetFilerConfiguration\x12&.filer_pb.GetFilerConfigurationRequest\x1a'.filer_pb.GetFilerConfigurationResponse\"\x00\x12f\n" +
"\x13TraverseBfsMetadata\x12$.filer_pb.TraverseBfsMetadataRequest\x1a%.filer_pb.TraverseBfsMetadataResponse\"\x000\x01\x12`\n" +
"\x11SubscribeMetadata\x12\".filer_pb.SubscribeMetadataRequest\x1a#.filer_pb.SubscribeMetadataResponse\"\x000\x01\x12e\n" +
"\x16SubscribeLocalMetadata\x12\".filer_pb.SubscribeMetadataRequest\x1a#.filer_pb.SubscribeMetadataResponse\"\x000\x01\x12p\n" +
"\x17ListMetadataSubscribers\x12(.filer_pb.ListMetadataSubscribersRequest\x1a).filer_pb.ListMetadataSubscribersResponse\"\x00\x12:\n" +
"\x05KvGet\x12\x16.filer_pb.KvGetRequest\x1a\x17.filer_pb.KvGetResponse\"\x00\x12:\n" +
"\x05KvPut\x12\x16.filer_pb.KvPutRequest\x1a\x17.filer_pb.KvPutResponse\"\x00\x12\x88\x01\n" +
"\x1fCacheRemoteObjectToLocalCluster\x120.filer_pb.CacheRemoteObjectToLocalClusterRequest\x1a1.filer_pb.CacheRemoteObjectToLocalClusterResponse\"\x00\x12B\n" +
"\x0fDistributedLock\x12\x15.filer_pb.LockRequest\x1a\x16.filer_pb.LockResponse\"\x00\x12H\n" +
"\x11DistributedUnlock\x12\x17.filer_pb.UnlockRequest\x1a\x18.filer_pb.UnlockResponse\"\x00\x12R\n" +
"\rFindLockOwner\x12\x1e.filer_pb.FindLockOwnerRequest\x1a\x1f.filer_pb.FindLockOwnerResponse\"\x00\x12R\n" +
"\rTransferLocks\x12\x1e.filer_pb.TransferLocksRequest\x1a\x1f.filer_pb.TransferLocksResponse\"\x00\x12R\n" +
"\rReplicateLock\x12\x1e.filer_pb.ReplicateLockRequest\x1a\x1f.filer_pb.ReplicateLockResponse\"\x00\x12R\n" +
"\rMountRegister\x12\x1e.filer_pb.MountRegisterRequest\x1a\x1f.filer_pb.MountRegisterResponse\"\x00\x12F\n" +
"\tMountList\x12\x1a.filer_pb.MountListRequest\x1a\x1b.filer_pb.MountListResponse\"\x00BO\n" +
"\x10seaweedfs.clientB\n" +
"FilerProtoZ/github.com/seaweedfs/seaweedfs/weed/pb/filer_pbb\x06proto3"
var (
file_filer_proto_rawDescOnce sync.Once
file_filer_proto_rawDescData []byte
)
func file_filer_proto_rawDescGZIP() []byte {
file_filer_proto_rawDescOnce.Do(func() {
file_filer_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_filer_proto_rawDesc), len(file_filer_proto_rawDesc)))
})
return file_filer_proto_rawDescData
}
var file_filer_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_filer_proto_msgTypes = make([]protoimpl.MessageInfo, 104)
var file_filer_proto_goTypes = []any{
(SSEType)(0), // 0: filer_pb.SSEType
(FilerError)(0), // 1: filer_pb.FilerError
(PosixLockOp)(0), // 2: filer_pb.PosixLockOp
(WriteCondition_Kind)(0), // 3: filer_pb.WriteCondition.Kind
(ObjectMutation_Type)(0), // 4: filer_pb.ObjectMutation.Type
(*LookupDirectoryEntryRequest)(nil), // 5: filer_pb.LookupDirectoryEntryRequest
(*LookupDirectoryEntryResponse)(nil), // 6: filer_pb.LookupDirectoryEntryResponse
(*ListEntriesRequest)(nil), // 7: filer_pb.ListEntriesRequest
(*ListEntriesResponse)(nil), // 8: filer_pb.ListEntriesResponse
(*RemoteEntry)(nil), // 9: filer_pb.RemoteEntry
(*Entry)(nil), // 10: filer_pb.Entry
(*FullEntry)(nil), // 11: filer_pb.FullEntry
(*EventNotification)(nil), // 12: filer_pb.EventNotification
(*FileChunk)(nil), // 13: filer_pb.FileChunk
(*FileChunkManifest)(nil), // 14: filer_pb.FileChunkManifest
(*FileId)(nil), // 15: filer_pb.FileId
(*FuseAttributes)(nil), // 16: filer_pb.FuseAttributes
(*CreateEntryRequest)(nil), // 17: filer_pb.CreateEntryRequest
(*WriteCondition)(nil), // 18: filer_pb.WriteCondition
(*ObjectMutation)(nil), // 19: filer_pb.ObjectMutation
(*Recompute)(nil), // 20: filer_pb.Recompute
(*ObjectTransactionRequest)(nil), // 21: filer_pb.ObjectTransactionRequest
(*ObjectTransactionResponse)(nil), // 22: filer_pb.ObjectTransactionResponse
(*PosixLockRange)(nil), // 23: filer_pb.PosixLockRange
(*PosixLockRequest)(nil), // 24: filer_pb.PosixLockRequest
(*PosixLockResponse)(nil), // 25: filer_pb.PosixLockResponse
(*ObjectTransactionBatchRequest)(nil), // 26: filer_pb.ObjectTransactionBatchRequest
(*ObjectTransactionBatchResponse)(nil), // 27: filer_pb.ObjectTransactionBatchResponse
(*CreateEntryResponse)(nil), // 28: filer_pb.CreateEntryResponse
(*UpdateEntryRequest)(nil), // 29: filer_pb.UpdateEntryRequest
(*UpdateEntryResponse)(nil), // 30: filer_pb.UpdateEntryResponse
(*TouchAccessTimeRequest)(nil), // 31: filer_pb.TouchAccessTimeRequest
(*TouchAccessTimeResponse)(nil), // 32: filer_pb.TouchAccessTimeResponse
(*AppendToEntryRequest)(nil), // 33: filer_pb.AppendToEntryRequest
(*AppendToEntryResponse)(nil), // 34: filer_pb.AppendToEntryResponse
(*DeleteEntryRequest)(nil), // 35: filer_pb.DeleteEntryRequest
(*DeleteEntryResponse)(nil), // 36: filer_pb.DeleteEntryResponse
(*AtomicRenameEntryRequest)(nil), // 37: filer_pb.AtomicRenameEntryRequest
(*AtomicRenameEntryResponse)(nil), // 38: filer_pb.AtomicRenameEntryResponse
(*StreamRenameEntryRequest)(nil), // 39: filer_pb.StreamRenameEntryRequest
(*StreamRenameEntryResponse)(nil), // 40: filer_pb.StreamRenameEntryResponse
(*AssignVolumeRequest)(nil), // 41: filer_pb.AssignVolumeRequest
(*AssignVolumeResponse)(nil), // 42: filer_pb.AssignVolumeResponse
(*LookupVolumeRequest)(nil), // 43: filer_pb.LookupVolumeRequest
(*Locations)(nil), // 44: filer_pb.Locations
(*Location)(nil), // 45: filer_pb.Location
(*LookupVolumeResponse)(nil), // 46: filer_pb.LookupVolumeResponse
(*Collection)(nil), // 47: filer_pb.Collection
(*CollectionListRequest)(nil), // 48: filer_pb.CollectionListRequest
(*CollectionListResponse)(nil), // 49: filer_pb.CollectionListResponse
(*DeleteCollectionRequest)(nil), // 50: filer_pb.DeleteCollectionRequest
(*DeleteCollectionResponse)(nil), // 51: filer_pb.DeleteCollectionResponse
(*StatisticsRequest)(nil), // 52: filer_pb.StatisticsRequest
(*StatisticsResponse)(nil), // 53: filer_pb.StatisticsResponse
(*PingRequest)(nil), // 54: filer_pb.PingRequest
(*PingResponse)(nil), // 55: filer_pb.PingResponse
(*GetFilerConfigurationRequest)(nil), // 56: filer_pb.GetFilerConfigurationRequest
(*GetFilerConfigurationResponse)(nil), // 57: filer_pb.GetFilerConfigurationResponse
(*SubscribeMetadataRequest)(nil), // 58: filer_pb.SubscribeMetadataRequest
(*SubscribeMetadataResponse)(nil), // 59: filer_pb.SubscribeMetadataResponse
(*ListMetadataSubscribersRequest)(nil), // 60: filer_pb.ListMetadataSubscribersRequest
(*ListMetadataSubscribersResponse)(nil), // 61: filer_pb.ListMetadataSubscribersResponse
(*MetadataSubscriber)(nil), // 62: filer_pb.MetadataSubscriber
(*LogFileChunkRef)(nil), // 63: filer_pb.LogFileChunkRef
(*TraverseBfsMetadataRequest)(nil), // 64: filer_pb.TraverseBfsMetadataRequest
(*TraverseBfsMetadataResponse)(nil), // 65: filer_pb.TraverseBfsMetadataResponse
(*LogEntry)(nil), // 66: filer_pb.LogEntry
(*KeepConnectedRequest)(nil), // 67: filer_pb.KeepConnectedRequest
(*KeepConnectedResponse)(nil), // 68: filer_pb.KeepConnectedResponse
(*LocateBrokerRequest)(nil), // 69: filer_pb.LocateBrokerRequest
(*LocateBrokerResponse)(nil), // 70: filer_pb.LocateBrokerResponse
(*KvGetRequest)(nil), // 71: filer_pb.KvGetRequest
(*KvGetResponse)(nil), // 72: filer_pb.KvGetResponse
(*KvPutRequest)(nil), // 73: filer_pb.KvPutRequest
(*KvPutResponse)(nil), // 74: filer_pb.KvPutResponse
(*FilerConf)(nil), // 75: filer_pb.FilerConf
(*CacheRemoteObjectToLocalClusterRequest)(nil), // 76: filer_pb.CacheRemoteObjectToLocalClusterRequest
(*CacheRemoteObjectToLocalClusterResponse)(nil), // 77: filer_pb.CacheRemoteObjectToLocalClusterResponse
(*LockRequest)(nil), // 78: filer_pb.LockRequest
(*LockResponse)(nil), // 79: filer_pb.LockResponse
(*UnlockRequest)(nil), // 80: filer_pb.UnlockRequest
(*UnlockResponse)(nil), // 81: filer_pb.UnlockResponse
(*FindLockOwnerRequest)(nil), // 82: filer_pb.FindLockOwnerRequest
(*FindLockOwnerResponse)(nil), // 83: filer_pb.FindLockOwnerResponse
(*Lock)(nil), // 84: filer_pb.Lock
(*TransferLocksRequest)(nil), // 85: filer_pb.TransferLocksRequest
(*TransferLocksResponse)(nil), // 86: filer_pb.TransferLocksResponse
(*ReplicateLockRequest)(nil), // 87: filer_pb.ReplicateLockRequest
(*ReplicateLockResponse)(nil), // 88: filer_pb.ReplicateLockResponse
(*StreamMutateEntryRequest)(nil), // 89: filer_pb.StreamMutateEntryRequest
(*StreamMutateEntryResponse)(nil), // 90: filer_pb.StreamMutateEntryResponse
(*MountRegisterRequest)(nil), // 91: filer_pb.MountRegisterRequest
(*MountRegisterResponse)(nil), // 92: filer_pb.MountRegisterResponse
(*MountListRequest)(nil), // 93: filer_pb.MountListRequest
(*MountListResponse)(nil), // 94: filer_pb.MountListResponse
(*MountInfo)(nil), // 95: filer_pb.MountInfo
(*LookupDirectoryEntriesRequest)(nil), // 96: filer_pb.LookupDirectoryEntriesRequest
(*LookupDirectoryEntryResult)(nil), // 97: filer_pb.LookupDirectoryEntryResult
(*LookupDirectoryEntriesResponse)(nil), // 98: filer_pb.LookupDirectoryEntriesResponse
nil, // 99: filer_pb.Entry.ExtendedEntry
(*WriteCondition_Clause)(nil), // 100: filer_pb.WriteCondition.Clause
nil, // 101: filer_pb.ObjectMutation.SetExtendedEntry
nil, // 102: filer_pb.Recompute.CopyExtendedEntry
nil, // 103: filer_pb.UpdateEntryRequest.ExpectedExtendedEntry
nil, // 104: filer_pb.LookupVolumeResponse.LocationsMapEntry
(*LocateBrokerResponse_Resource)(nil), // 105: filer_pb.LocateBrokerResponse.Resource
(*FilerConf_PathConf)(nil), // 106: filer_pb.FilerConf.PathConf
nil, // 107: filer_pb.LookupDirectoryEntriesResponse.LocationsMapEntry
nil, // 108: filer_pb.LookupDirectoryEntriesResponse.ReadAuthEntry
}
var file_filer_proto_depIdxs = []int32{
10, // 0: filer_pb.LookupDirectoryEntryResponse.entry:type_name -> filer_pb.Entry
10, // 1: filer_pb.ListEntriesResponse.entry:type_name -> filer_pb.Entry
13, // 2: filer_pb.Entry.chunks:type_name -> filer_pb.FileChunk
16, // 3: filer_pb.Entry.attributes:type_name -> filer_pb.FuseAttributes
99, // 4: filer_pb.Entry.extended:type_name -> filer_pb.Entry.ExtendedEntry
9, // 5: filer_pb.Entry.remote_entry:type_name -> filer_pb.RemoteEntry
10, // 6: filer_pb.FullEntry.entry:type_name -> filer_pb.Entry
10, // 7: filer_pb.EventNotification.old_entry:type_name -> filer_pb.Entry
10, // 8: filer_pb.EventNotification.new_entry:type_name -> filer_pb.Entry
15, // 9: filer_pb.FileChunk.fid:type_name -> filer_pb.FileId
15, // 10: filer_pb.FileChunk.source_fid:type_name -> filer_pb.FileId
0, // 11: filer_pb.FileChunk.sse_type:type_name -> filer_pb.SSEType
13, // 12: filer_pb.FileChunkManifest.chunks:type_name -> filer_pb.FileChunk
10, // 13: filer_pb.CreateEntryRequest.entry:type_name -> filer_pb.Entry
18, // 14: filer_pb.CreateEntryRequest.condition:type_name -> filer_pb.WriteCondition
100, // 15: filer_pb.WriteCondition.clauses:type_name -> filer_pb.WriteCondition.Clause
4, // 16: filer_pb.ObjectMutation.type:type_name -> filer_pb.ObjectMutation.Type
10, // 17: filer_pb.ObjectMutation.entry:type_name -> filer_pb.Entry
101, // 18: filer_pb.ObjectMutation.set_extended:type_name -> filer_pb.ObjectMutation.SetExtendedEntry
20, // 19: filer_pb.ObjectMutation.recompute:type_name -> filer_pb.Recompute
102, // 20: filer_pb.Recompute.copy_extended:type_name -> filer_pb.Recompute.CopyExtendedEntry
18, // 21: filer_pb.ObjectTransactionRequest.condition:type_name -> filer_pb.WriteCondition
19, // 22: filer_pb.ObjectTransactionRequest.mutations:type_name -> filer_pb.ObjectMutation
1, // 23: filer_pb.ObjectTransactionResponse.error_code:type_name -> filer_pb.FilerError
2, // 24: filer_pb.PosixLockRequest.op:type_name -> filer_pb.PosixLockOp
23, // 25: filer_pb.PosixLockRequest.lock:type_name -> filer_pb.PosixLockRange
23, // 26: filer_pb.PosixLockRequest.locks:type_name -> filer_pb.PosixLockRange
23, // 27: filer_pb.PosixLockResponse.conflict:type_name -> filer_pb.PosixLockRange
21, // 28: filer_pb.ObjectTransactionBatchRequest.transactions:type_name -> filer_pb.ObjectTransactionRequest
22, // 29: filer_pb.ObjectTransactionBatchResponse.responses:type_name -> filer_pb.ObjectTransactionResponse
59, // 30: filer_pb.CreateEntryResponse.metadata_event:type_name -> filer_pb.SubscribeMetadataResponse
1, // 31: filer_pb.CreateEntryResponse.error_code:type_name -> filer_pb.FilerError
10, // 32: filer_pb.UpdateEntryRequest.entry:type_name -> filer_pb.Entry
103, // 33: filer_pb.UpdateEntryRequest.expected_extended:type_name -> filer_pb.UpdateEntryRequest.ExpectedExtendedEntry
18, // 34: filer_pb.UpdateEntryRequest.condition:type_name -> filer_pb.WriteCondition
59, // 35: filer_pb.UpdateEntryResponse.metadata_event:type_name -> filer_pb.SubscribeMetadataResponse
13, // 36: filer_pb.AppendToEntryRequest.chunks:type_name -> filer_pb.FileChunk
59, // 37: filer_pb.DeleteEntryResponse.metadata_event:type_name -> filer_pb.SubscribeMetadataResponse
12, // 38: filer_pb.StreamRenameEntryResponse.event_notification:type_name -> filer_pb.EventNotification
45, // 39: filer_pb.AssignVolumeResponse.location:type_name -> filer_pb.Location
45, // 40: filer_pb.AssignVolumeResponse.replicas:type_name -> filer_pb.Location
1, // 41: filer_pb.AssignVolumeResponse.error_code:type_name -> filer_pb.FilerError
45, // 42: filer_pb.Locations.locations:type_name -> filer_pb.Location
104, // 43: filer_pb.LookupVolumeResponse.locations_map:type_name -> filer_pb.LookupVolumeResponse.LocationsMapEntry
47, // 44: filer_pb.CollectionListResponse.collections:type_name -> filer_pb.Collection
12, // 45: filer_pb.SubscribeMetadataResponse.event_notification:type_name -> filer_pb.EventNotification
59, // 46: filer_pb.SubscribeMetadataResponse.events:type_name -> filer_pb.SubscribeMetadataResponse
63, // 47: filer_pb.SubscribeMetadataResponse.log_file_refs:type_name -> filer_pb.LogFileChunkRef
62, // 48: filer_pb.ListMetadataSubscribersResponse.subscribers:type_name -> filer_pb.MetadataSubscriber
13, // 49: filer_pb.LogFileChunkRef.chunks:type_name -> filer_pb.FileChunk
10, // 50: filer_pb.TraverseBfsMetadataResponse.entry:type_name -> filer_pb.Entry
105, // 51: filer_pb.LocateBrokerResponse.resources:type_name -> filer_pb.LocateBrokerResponse.Resource
106, // 52: filer_pb.FilerConf.locations:type_name -> filer_pb.FilerConf.PathConf
10, // 53: filer_pb.CacheRemoteObjectToLocalClusterResponse.entry:type_name -> filer_pb.Entry
59, // 54: filer_pb.CacheRemoteObjectToLocalClusterResponse.metadata_event:type_name -> filer_pb.SubscribeMetadataResponse
84, // 55: filer_pb.TransferLocksRequest.locks:type_name -> filer_pb.Lock
17, // 56: filer_pb.StreamMutateEntryRequest.create_request:type_name -> filer_pb.CreateEntryRequest
29, // 57: filer_pb.StreamMutateEntryRequest.update_request:type_name -> filer_pb.UpdateEntryRequest
35, // 58: filer_pb.StreamMutateEntryRequest.delete_request:type_name -> filer_pb.DeleteEntryRequest
39, // 59: filer_pb.StreamMutateEntryRequest.rename_request:type_name -> filer_pb.StreamRenameEntryRequest
28, // 60: filer_pb.StreamMutateEntryResponse.create_response:type_name -> filer_pb.CreateEntryResponse
30, // 61: filer_pb.StreamMutateEntryResponse.update_response:type_name -> filer_pb.UpdateEntryResponse
36, // 62: filer_pb.StreamMutateEntryResponse.delete_response:type_name -> filer_pb.DeleteEntryResponse
40, // 63: filer_pb.StreamMutateEntryResponse.rename_response:type_name -> filer_pb.StreamRenameEntryResponse
95, // 64: filer_pb.MountListResponse.mounts:type_name -> filer_pb.MountInfo
5, // 65: filer_pb.LookupDirectoryEntriesRequest.requests:type_name -> filer_pb.LookupDirectoryEntryRequest
10, // 66: filer_pb.LookupDirectoryEntryResult.entry:type_name -> filer_pb.Entry
97, // 67: filer_pb.LookupDirectoryEntriesResponse.results:type_name -> filer_pb.LookupDirectoryEntryResult
107, // 68: filer_pb.LookupDirectoryEntriesResponse.locations_map:type_name -> filer_pb.LookupDirectoryEntriesResponse.LocationsMapEntry
108, // 69: filer_pb.LookupDirectoryEntriesResponse.read_auth:type_name -> filer_pb.LookupDirectoryEntriesResponse.ReadAuthEntry
3, // 70: filer_pb.WriteCondition.Clause.kind:type_name -> filer_pb.WriteCondition.Kind
10, // 71: filer_pb.WriteCondition.Clause.expected_entry:type_name -> filer_pb.Entry
44, // 72: filer_pb.LookupVolumeResponse.LocationsMapEntry.value:type_name -> filer_pb.Locations
44, // 73: filer_pb.LookupDirectoryEntriesResponse.LocationsMapEntry.value:type_name -> filer_pb.Locations
5, // 74: filer_pb.SeaweedFiler.LookupDirectoryEntry:input_type -> filer_pb.LookupDirectoryEntryRequest
96, // 75: filer_pb.SeaweedFiler.LookupDirectoryEntries:input_type -> filer_pb.LookupDirectoryEntriesRequest
7, // 76: filer_pb.SeaweedFiler.ListEntries:input_type -> filer_pb.ListEntriesRequest
17, // 77: filer_pb.SeaweedFiler.CreateEntry:input_type -> filer_pb.CreateEntryRequest
29, // 78: filer_pb.SeaweedFiler.UpdateEntry:input_type -> filer_pb.UpdateEntryRequest
31, // 79: filer_pb.SeaweedFiler.TouchAccessTime:input_type -> filer_pb.TouchAccessTimeRequest
33, // 80: filer_pb.SeaweedFiler.AppendToEntry:input_type -> filer_pb.AppendToEntryRequest
35, // 81: filer_pb.SeaweedFiler.DeleteEntry:input_type -> filer_pb.DeleteEntryRequest
21, // 82: filer_pb.SeaweedFiler.ObjectTransaction:input_type -> filer_pb.ObjectTransactionRequest
26, // 83: filer_pb.SeaweedFiler.ObjectTransactionBatch:input_type -> filer_pb.ObjectTransactionBatchRequest
24, // 84: filer_pb.SeaweedFiler.PosixLock:input_type -> filer_pb.PosixLockRequest
37, // 85: filer_pb.SeaweedFiler.AtomicRenameEntry:input_type -> filer_pb.AtomicRenameEntryRequest
39, // 86: filer_pb.SeaweedFiler.StreamRenameEntry:input_type -> filer_pb.StreamRenameEntryRequest
89, // 87: filer_pb.SeaweedFiler.StreamMutateEntry:input_type -> filer_pb.StreamMutateEntryRequest
41, // 88: filer_pb.SeaweedFiler.AssignVolume:input_type -> filer_pb.AssignVolumeRequest
43, // 89: filer_pb.SeaweedFiler.LookupVolume:input_type -> filer_pb.LookupVolumeRequest
48, // 90: filer_pb.SeaweedFiler.CollectionList:input_type -> filer_pb.CollectionListRequest
50, // 91: filer_pb.SeaweedFiler.DeleteCollection:input_type -> filer_pb.DeleteCollectionRequest
52, // 92: filer_pb.SeaweedFiler.Statistics:input_type -> filer_pb.StatisticsRequest
54, // 93: filer_pb.SeaweedFiler.Ping:input_type -> filer_pb.PingRequest
56, // 94: filer_pb.SeaweedFiler.GetFilerConfiguration:input_type -> filer_pb.GetFilerConfigurationRequest
64, // 95: filer_pb.SeaweedFiler.TraverseBfsMetadata:input_type -> filer_pb.TraverseBfsMetadataRequest
58, // 96: filer_pb.SeaweedFiler.SubscribeMetadata:input_type -> filer_pb.SubscribeMetadataRequest
58, // 97: filer_pb.SeaweedFiler.SubscribeLocalMetadata:input_type -> filer_pb.SubscribeMetadataRequest
60, // 98: filer_pb.SeaweedFiler.ListMetadataSubscribers:input_type -> filer_pb.ListMetadataSubscribersRequest
71, // 99: filer_pb.SeaweedFiler.KvGet:input_type -> filer_pb.KvGetRequest
73, // 100: filer_pb.SeaweedFiler.KvPut:input_type -> filer_pb.KvPutRequest
76, // 101: filer_pb.SeaweedFiler.CacheRemoteObjectToLocalCluster:input_type -> filer_pb.CacheRemoteObjectToLocalClusterRequest
78, // 102: filer_pb.SeaweedFiler.DistributedLock:input_type -> filer_pb.LockRequest
80, // 103: filer_pb.SeaweedFiler.DistributedUnlock:input_type -> filer_pb.UnlockRequest
82, // 104: filer_pb.SeaweedFiler.FindLockOwner:input_type -> filer_pb.FindLockOwnerRequest
85, // 105: filer_pb.SeaweedFiler.TransferLocks:input_type -> filer_pb.TransferLocksRequest
87, // 106: filer_pb.SeaweedFiler.ReplicateLock:input_type -> filer_pb.ReplicateLockRequest
91, // 107: filer_pb.SeaweedFiler.MountRegister:input_type -> filer_pb.MountRegisterRequest
93, // 108: filer_pb.SeaweedFiler.MountList:input_type -> filer_pb.MountListRequest
6, // 109: filer_pb.SeaweedFiler.LookupDirectoryEntry:output_type -> filer_pb.LookupDirectoryEntryResponse
98, // 110: filer_pb.SeaweedFiler.LookupDirectoryEntries:output_type -> filer_pb.LookupDirectoryEntriesResponse
8, // 111: filer_pb.SeaweedFiler.ListEntries:output_type -> filer_pb.ListEntriesResponse
28, // 112: filer_pb.SeaweedFiler.CreateEntry:output_type -> filer_pb.CreateEntryResponse
30, // 113: filer_pb.SeaweedFiler.UpdateEntry:output_type -> filer_pb.UpdateEntryResponse
32, // 114: filer_pb.SeaweedFiler.TouchAccessTime:output_type -> filer_pb.TouchAccessTimeResponse
34, // 115: filer_pb.SeaweedFiler.AppendToEntry:output_type -> filer_pb.AppendToEntryResponse
36, // 116: filer_pb.SeaweedFiler.DeleteEntry:output_type -> filer_pb.DeleteEntryResponse
22, // 117: filer_pb.SeaweedFiler.ObjectTransaction:output_type -> filer_pb.ObjectTransactionResponse
27, // 118: filer_pb.SeaweedFiler.ObjectTransactionBatch:output_type -> filer_pb.ObjectTransactionBatchResponse
25, // 119: filer_pb.SeaweedFiler.PosixLock:output_type -> filer_pb.PosixLockResponse
38, // 120: filer_pb.SeaweedFiler.AtomicRenameEntry:output_type -> filer_pb.AtomicRenameEntryResponse
40, // 121: filer_pb.SeaweedFiler.StreamRenameEntry:output_type -> filer_pb.StreamRenameEntryResponse
90, // 122: filer_pb.SeaweedFiler.StreamMutateEntry:output_type -> filer_pb.StreamMutateEntryResponse
42, // 123: filer_pb.SeaweedFiler.AssignVolume:output_type -> filer_pb.AssignVolumeResponse
46, // 124: filer_pb.SeaweedFiler.LookupVolume:output_type -> filer_pb.LookupVolumeResponse
49, // 125: filer_pb.SeaweedFiler.CollectionList:output_type -> filer_pb.CollectionListResponse
51, // 126: filer_pb.SeaweedFiler.DeleteCollection:output_type -> filer_pb.DeleteCollectionResponse
53, // 127: filer_pb.SeaweedFiler.Statistics:output_type -> filer_pb.StatisticsResponse
55, // 128: filer_pb.SeaweedFiler.Ping:output_type -> filer_pb.PingResponse
57, // 129: filer_pb.SeaweedFiler.GetFilerConfiguration:output_type -> filer_pb.GetFilerConfigurationResponse
65, // 130: filer_pb.SeaweedFiler.TraverseBfsMetadata:output_type -> filer_pb.TraverseBfsMetadataResponse
59, // 131: filer_pb.SeaweedFiler.SubscribeMetadata:output_type -> filer_pb.SubscribeMetadataResponse
59, // 132: filer_pb.SeaweedFiler.SubscribeLocalMetadata:output_type -> filer_pb.SubscribeMetadataResponse
61, // 133: filer_pb.SeaweedFiler.ListMetadataSubscribers:output_type -> filer_pb.ListMetadataSubscribersResponse
72, // 134: filer_pb.SeaweedFiler.KvGet:output_type -> filer_pb.KvGetResponse
74, // 135: filer_pb.SeaweedFiler.KvPut:output_type -> filer_pb.KvPutResponse
77, // 136: filer_pb.SeaweedFiler.CacheRemoteObjectToLocalCluster:output_type -> filer_pb.CacheRemoteObjectToLocalClusterResponse
79, // 137: filer_pb.SeaweedFiler.DistributedLock:output_type -> filer_pb.LockResponse
81, // 138: filer_pb.SeaweedFiler.DistributedUnlock:output_type -> filer_pb.UnlockResponse
83, // 139: filer_pb.SeaweedFiler.FindLockOwner:output_type -> filer_pb.FindLockOwnerResponse
86, // 140: filer_pb.SeaweedFiler.TransferLocks:output_type -> filer_pb.TransferLocksResponse
88, // 141: filer_pb.SeaweedFiler.ReplicateLock:output_type -> filer_pb.ReplicateLockResponse
92, // 142: filer_pb.SeaweedFiler.MountRegister:output_type -> filer_pb.MountRegisterResponse
94, // 143: filer_pb.SeaweedFiler.MountList:output_type -> filer_pb.MountListResponse
109, // [109:144] is the sub-list for method output_type
74, // [74:109] is the sub-list for method input_type
74, // [74:74] is the sub-list for extension type_name
74, // [74:74] is the sub-list for extension extendee
0, // [0:74] is the sub-list for field type_name
}
func init() { file_filer_proto_init() }
func file_filer_proto_init() {
if File_filer_proto != nil {
return
}
file_filer_proto_msgTypes[4].OneofWrappers = []any{}
file_filer_proto_msgTypes[84].OneofWrappers = []any{
(*StreamMutateEntryRequest_CreateRequest)(nil),
(*StreamMutateEntryRequest_UpdateRequest)(nil),
(*StreamMutateEntryRequest_DeleteRequest)(nil),
(*StreamMutateEntryRequest_RenameRequest)(nil),
}
file_filer_proto_msgTypes[85].OneofWrappers = []any{
(*StreamMutateEntryResponse_CreateResponse)(nil),
(*StreamMutateEntryResponse_UpdateResponse)(nil),
(*StreamMutateEntryResponse_DeleteResponse)(nil),
(*StreamMutateEntryResponse_RenameResponse)(nil),
}
file_filer_proto_msgTypes[101].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_filer_proto_rawDesc), len(file_filer_proto_rawDesc)),
NumEnums: 5,
NumMessages: 104,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_filer_proto_goTypes,
DependencyIndexes: file_filer_proto_depIdxs,
EnumInfos: file_filer_proto_enumTypes,
MessageInfos: file_filer_proto_msgTypes,
}.Build()
File_filer_proto = out.File
file_filer_proto_goTypes = nil
file_filer_proto_depIdxs = nil
}