mirror of
https://github.com/denoland/deno.git
synced 2024-12-27 09:39:08 -05:00
f58a400585
This patch adds support for [key expiration](https://docs.deno.com/kv/manual/key_expiration) in the remote backend.
97 lines
1.8 KiB
Protocol Buffer
97 lines
1.8 KiB
Protocol Buffer
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
|
|
|
syntax = "proto3";
|
|
|
|
package datapath;
|
|
|
|
message SnapshotRead {
|
|
repeated ReadRange ranges = 1;
|
|
}
|
|
|
|
message SnapshotReadOutput {
|
|
repeated ReadRangeOutput ranges = 1;
|
|
bool read_disabled = 2;
|
|
repeated string regions_if_read_disabled = 3;
|
|
bool read_is_strongly_consistent = 4;
|
|
string primary_if_not_strongly_consistent = 5;
|
|
}
|
|
|
|
message ReadRange {
|
|
bytes start = 1;
|
|
bytes end = 2;
|
|
int32 limit = 3;
|
|
bool reverse = 4;
|
|
}
|
|
|
|
message ReadRangeOutput {
|
|
repeated KvEntry values = 1;
|
|
}
|
|
|
|
message AtomicWrite {
|
|
repeated KvCheck kv_checks = 1;
|
|
repeated KvMutation kv_mutations = 2;
|
|
repeated Enqueue enqueues = 3;
|
|
}
|
|
|
|
message AtomicWriteOutput {
|
|
AtomicWriteStatus status = 1;
|
|
bytes versionstamp = 2;
|
|
string primary_if_write_disabled = 3;
|
|
}
|
|
|
|
message KvCheck {
|
|
bytes key = 1;
|
|
bytes versionstamp = 2; // 10-byte raw versionstamp
|
|
}
|
|
|
|
message KvMutation {
|
|
bytes key = 1;
|
|
KvValue value = 2;
|
|
KvMutationType mutation_type = 3;
|
|
int64 expire_at_ms = 4;
|
|
}
|
|
|
|
message KvValue {
|
|
bytes data = 1;
|
|
KvValueEncoding encoding = 2;
|
|
}
|
|
|
|
message KvEntry {
|
|
bytes key = 1;
|
|
bytes value = 2;
|
|
KvValueEncoding encoding = 3;
|
|
bytes versionstamp = 4;
|
|
}
|
|
|
|
enum KvMutationType {
|
|
M_UNSPECIFIED = 0;
|
|
M_SET = 1;
|
|
M_CLEAR = 2;
|
|
M_SUM = 3;
|
|
M_MAX = 4;
|
|
M_MIN = 5;
|
|
}
|
|
|
|
enum KvValueEncoding {
|
|
VE_UNSPECIFIED = 0;
|
|
VE_V8 = 1;
|
|
VE_LE64 = 2;
|
|
VE_BYTES = 3;
|
|
}
|
|
|
|
enum AtomicWriteStatus {
|
|
AW_UNSPECIFIED = 0;
|
|
AW_SUCCESS = 1;
|
|
AW_CHECK_FAILURE = 2;
|
|
AW_UNSUPPORTED_WRITE = 3;
|
|
AW_USAGE_LIMIT_EXCEEDED = 4;
|
|
AW_WRITE_DISABLED = 5;
|
|
AW_QUEUE_BACKLOG_LIMIT_EXCEEDED = 6;
|
|
}
|
|
|
|
message Enqueue {
|
|
bytes payload = 1;
|
|
int64 deadline_ms = 2;
|
|
repeated bytes kv_keys_if_undelivered = 3;
|
|
repeated uint32 backoff_schedule = 4;
|
|
}
|