#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct WorkspaceRef {
#[prost(bytes = "vec", tag = "1")]
pub workspace_id: ::prost::alloc::vec::Vec<u8>,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GenerationRef {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
#[prost(bytes = "vec", tag = "2")]
pub generation_id: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct OperationOptions {
#[prost(bytes = "vec", tag = "1")]
pub idempotency_key: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PageOptions {
#[prost(uint32, tag = "1")]
pub maximum_items: u32,
#[prost(message, optional, tag = "2")]
pub after: ::core::option::Option<LogicalName>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ByteRange {
#[prost(uint64, tag = "1")]
pub offset: u64,
#[prost(uint64, tag = "2")]
pub length: u64,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct OptionalU32 {
#[prost(oneof = "optional_u32::Value", tags = "1, 2")]
pub value: ::core::option::Option<optional_u32::Value>,
}
pub mod optional_u32 {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Value {
#[prost(uint32, tag = "1")]
Present(u32),
#[prost(bool, tag = "2")]
Unavailable(bool),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct OptionalU64 {
#[prost(oneof = "optional_u64::Value", tags = "1, 2")]
pub value: ::core::option::Option<optional_u64::Value>,
}
pub mod optional_u64 {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Value {
#[prost(uint64, tag = "1")]
Present(u64),
#[prost(bool, tag = "2")]
Unavailable(bool),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct OptionalI64 {
#[prost(oneof = "optional_i64::Value", tags = "1, 2")]
pub value: ::core::option::Option<optional_i64::Value>,
}
pub mod optional_i64 {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Value {
#[prost(sint64, tag = "1")]
Present(i64),
#[prost(bool, tag = "2")]
Unavailable(bool),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Metadata {
#[prost(message, optional, tag = "1")]
pub posix_mode: ::core::option::Option<OptionalU32>,
#[prost(message, optional, tag = "2")]
pub posix_uid: ::core::option::Option<OptionalU32>,
#[prost(message, optional, tag = "3")]
pub posix_gid: ::core::option::Option<OptionalU32>,
#[prost(message, optional, tag = "4")]
pub posix_flags: ::core::option::Option<OptionalU64>,
#[prost(message, optional, tag = "5")]
pub windows_attributes: ::core::option::Option<OptionalU32>,
#[prost(message, optional, tag = "6")]
pub created_ns: ::core::option::Option<OptionalI64>,
#[prost(message, optional, tag = "7")]
pub modified_ns: ::core::option::Option<OptionalI64>,
#[prost(message, optional, tag = "8")]
pub accessed_ns: ::core::option::Option<OptionalI64>,
#[prost(message, optional, tag = "9")]
pub changed_ns: ::core::option::Option<OptionalI64>,
#[prost(bool, tag = "10")]
pub has_named_attributes: bool,
#[prost(bool, tag = "11")]
pub has_acl: bool,
#[prost(bool, tag = "12")]
pub has_security_descriptor: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FileStat {
#[prost(bytes = "vec", tag = "1")]
pub file_id: ::prost::alloc::vec::Vec<u8>,
#[prost(enumeration = "FileKind", tag = "2")]
pub kind: i32,
#[prost(uint64, tag = "3")]
pub link_count: u64,
#[prost(message, optional, tag = "4")]
pub logical_bytes: ::core::option::Option<OptionalU64>,
#[prost(message, optional, tag = "5")]
pub metadata: ::core::option::Option<Metadata>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DirectoryEntry {
#[prost(message, optional, tag = "1")]
pub name: ::core::option::Option<LogicalName>,
#[prost(message, optional, tag = "2")]
pub stat: ::core::option::Option<FileStat>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DirectoryPage {
#[prost(message, repeated, tag = "1")]
pub entries: ::prost::alloc::vec::Vec<DirectoryEntry>,
#[prost(message, optional, tag = "2")]
pub next: ::core::option::Option<LogicalName>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Extent {
#[prost(message, optional, tag = "1")]
pub range: ::core::option::Option<ByteRange>,
#[prost(enumeration = "ExtentKind", tag = "2")]
pub kind: i32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Capabilities {
#[prost(string, tag = "1")]
pub contract_version: ::prost::alloc::string::String,
#[prost(enumeration = "FilesystemProfile", repeated, tag = "2")]
pub profiles: ::prost::alloc::vec::Vec<i32>,
#[prost(uint64, tag = "3")]
pub maximum_request_bytes: u64,
#[prost(uint64, tag = "4")]
pub maximum_response_bytes: u64,
#[prost(uint32, tag = "5")]
pub maximum_transaction_mutations: u32,
#[prost(uint32, tag = "6")]
pub maximum_page_items: u32,
#[prost(bool, tag = "7")]
pub native_mount_credentials: bool,
#[prost(bool, tag = "8")]
pub s3_credentials: bool,
#[prost(bool, tag = "9")]
pub source_reconciliation: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SourceStateRequest {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SourceOperationRequest {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
#[prost(message, optional, tag = "2")]
pub operation: ::core::option::Option<OperationOptions>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SourceResponse {
#[prost(enumeration = "SourceState", tag = "1")]
pub state: i32,
#[prost(enumeration = "SourceInvalidationReason", tag = "2")]
pub reason: i32,
#[prost(message, optional, tag = "3")]
pub generation: ::core::option::Option<GenerationRef>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Workspace {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration = "FilesystemProfile", tag = "3")]
pub profile: i32,
#[prost(message, optional, tag = "4")]
pub head: ::core::option::Option<GenerationRef>,
#[prost(bool, tag = "5")]
pub deleted: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HandshakeRequest {
#[prost(message, optional, tag = "1")]
pub harness: ::core::option::Option<super::super::harness::v1::HandshakeRequest>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HandshakeResponse {
#[prost(message, optional, tag = "1")]
pub harness: ::core::option::Option<super::super::harness::v1::HandshakeResponse>,
#[prost(message, optional, tag = "2")]
pub capabilities: ::core::option::Option<Capabilities>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateWorkspaceRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration = "FilesystemProfile", tag = "2")]
pub profile: i32,
#[prost(message, optional, tag = "3")]
pub operation: ::core::option::Option<OperationOptions>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct OpenWorkspaceRequest {
#[prost(oneof = "open_workspace_request::Selector", tags = "1, 2")]
pub selector: ::core::option::Option<open_workspace_request::Selector>,
}
pub mod open_workspace_request {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Selector {
#[prost(message, tag = "1")]
Workspace(super::WorkspaceRef),
#[prost(string, tag = "2")]
Name(::prost::alloc::string::String),
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct WorkspaceResponse {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<Workspace>,
#[prost(enumeration = "MutationStatus", tag = "2")]
pub status: i32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeleteWorkspaceRequest {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
#[prost(message, optional, tag = "2")]
pub operation: ::core::option::Option<OperationOptions>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MutationResponse {
#[prost(enumeration = "MutationStatus", tag = "1")]
pub status: i32,
#[prost(message, optional, tag = "2")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(message, optional, tag = "3")]
pub actual_head: ::core::option::Option<GenerationRef>,
#[prost(message, repeated, tag = "4")]
pub conflicts: ::prost::alloc::vec::Vec<Conflict>,
#[prost(bool, tag = "5")]
pub truncated: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetHeadRequest {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetGenerationRequest {
#[prost(message, optional, tag = "1")]
pub generation: ::core::option::Option<GenerationRef>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GenerationResponse {
#[prost(message, optional, tag = "1")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(message, repeated, tag = "2")]
pub parents: ::prost::alloc::vec::Vec<GenerationRef>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ReadRequest {
#[prost(message, optional, tag = "1")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(string, tag = "2")]
pub path: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub range: ::core::option::Option<ByteRange>,
#[prost(uint64, tag = "4")]
pub maximum_bytes: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ReadResponse {
#[prost(bytes = "vec", tag = "1")]
pub contents: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StatRequest {
#[prost(message, optional, tag = "1")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(string, tag = "2")]
pub path: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StatResponse {
#[prost(message, optional, tag = "1")]
pub stat: ::core::option::Option<FileStat>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ListDirectoryRequest {
#[prost(message, optional, tag = "1")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(string, tag = "2")]
pub path: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub page: ::core::option::Option<PageOptions>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListDirectoryResponse {
#[prost(message, optional, tag = "1")]
pub page: ::core::option::Option<DirectoryPage>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ReadLinkRequest {
#[prost(message, optional, tag = "1")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(string, tag = "2")]
pub path: ::prost::alloc::string::String,
#[prost(uint64, tag = "3")]
pub maximum_bytes: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PlanExtentsRequest {
#[prost(message, optional, tag = "1")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(string, tag = "2")]
pub path: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub range: ::core::option::Option<ByteRange>,
#[prost(uint32, tag = "4")]
pub maximum_extents: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlanExtentsResponse {
#[prost(message, repeated, tag = "1")]
pub extents: ::prost::alloc::vec::Vec<Extent>,
#[prost(bool, tag = "2")]
pub truncated: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateFile {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
#[prost(bytes = "vec", tag = "2")]
pub contents: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "3")]
pub metadata: ::core::option::Option<Metadata>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateDirectory {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub metadata: ::core::option::Option<Metadata>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateSymbolicLink {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
#[prost(bytes = "vec", tag = "2")]
pub target: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "3")]
pub metadata: ::core::option::Option<Metadata>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Remove {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Rename {
#[prost(string, tag = "1")]
pub source: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub destination: ::prost::alloc::string::String,
#[prost(bool, tag = "3")]
pub replace: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HardLink {
#[prost(string, tag = "1")]
pub source: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub destination: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Write {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
#[prost(uint64, tag = "2")]
pub offset: u64,
#[prost(bytes = "vec", tag = "3")]
pub contents: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Resize {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
#[prost(uint64, tag = "2")]
pub logical_bytes: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ZeroRange {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub range: ::core::option::Option<ByteRange>,
#[prost(bool, tag = "3")]
pub allocated: bool,
#[prost(bool, tag = "4")]
pub extend: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Preallocate {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub range: ::core::option::Option<ByteRange>,
#[prost(bool, tag = "3")]
pub keep_size: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CloneRange {
#[prost(string, tag = "1")]
pub source: ::prost::alloc::string::String,
#[prost(uint64, tag = "2")]
pub source_offset: u64,
#[prost(string, tag = "3")]
pub destination: ::prost::alloc::string::String,
#[prost(uint64, tag = "4")]
pub destination_offset: u64,
#[prost(uint64, tag = "5")]
pub length: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SetMetadata {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub metadata: ::core::option::Option<Metadata>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateDirectories {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PutFile {
#[prost(string, tag = "1")]
pub path: ::prost::alloc::string::String,
#[prost(bytes = "vec", tag = "2")]
pub contents: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CopyFile {
#[prost(string, tag = "1")]
pub source: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub destination: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Mutation {
#[prost(oneof = "mutation::Mutation", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15")]
pub mutation: ::core::option::Option<mutation::Mutation>,
}
pub mod mutation {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Mutation {
#[prost(message, tag = "1")]
CreateFile(super::CreateFile),
#[prost(message, tag = "2")]
CreateDirectory(super::CreateDirectory),
#[prost(message, tag = "3")]
CreateSymbolicLink(super::CreateSymbolicLink),
#[prost(message, tag = "4")]
Remove(super::Remove),
#[prost(message, tag = "5")]
Rename(super::Rename),
#[prost(message, tag = "6")]
HardLink(super::HardLink),
#[prost(message, tag = "7")]
Write(super::Write),
#[prost(message, tag = "8")]
Resize(super::Resize),
#[prost(message, tag = "9")]
ZeroRange(super::ZeroRange),
#[prost(message, tag = "10")]
Preallocate(super::Preallocate),
#[prost(message, tag = "11")]
CloneRange(super::CloneRange),
#[prost(message, tag = "12")]
SetMetadata(super::SetMetadata),
#[prost(message, tag = "13")]
CreateDirectories(super::CreateDirectories),
#[prost(message, tag = "14")]
PutFile(super::PutFile),
#[prost(message, tag = "15")]
CopyFile(super::CopyFile),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ApplyTransactionRequest {
#[prost(message, optional, tag = "1")]
pub base: ::core::option::Option<GenerationRef>,
#[prost(message, repeated, tag = "2")]
pub mutations: ::prost::alloc::vec::Vec<Mutation>,
#[prost(message, optional, tag = "3")]
pub operation: ::core::option::Option<OperationOptions>,
#[prost(uint32, tag = "4")]
pub maximum_conflicts: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RebaseTransactionRequest {
#[prost(message, optional, tag = "1")]
pub base: ::core::option::Option<GenerationRef>,
#[prost(message, repeated, tag = "2")]
pub mutations: ::prost::alloc::vec::Vec<Mutation>,
#[prost(uint32, tag = "3")]
pub maximum_conflicts: u32,
#[prost(message, optional, tag = "4")]
pub operation: ::core::option::Option<OperationOptions>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RebaseTransactionResponse {
#[prost(message, optional, tag = "1")]
pub base: ::core::option::Option<GenerationRef>,
#[prost(message, repeated, tag = "2")]
pub conflicts: ::prost::alloc::vec::Vec<Conflict>,
#[prost(bool, tag = "3")]
pub truncated: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ForkWorkspaceRequest {
#[prost(message, optional, tag = "1")]
pub source: ::core::option::Option<GenerationRef>,
#[prost(string, tag = "2")]
pub destination_name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub operation: ::core::option::Option<OperationOptions>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DiffRequest {
#[prost(message, optional, tag = "1")]
pub from: ::core::option::Option<GenerationRef>,
#[prost(message, optional, tag = "2")]
pub to: ::core::option::Option<GenerationRef>,
#[prost(uint32, tag = "3")]
pub maximum_changes: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LogicalName {
#[prost(enumeration = "NameEncoding", tag = "1")]
pub encoding: i32,
#[prost(bytes = "vec", tag = "2")]
pub bytes: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FileRecordSnapshot {
#[prost(bytes = "vec", tag = "1")]
pub file_id: ::prost::alloc::vec::Vec<u8>,
#[prost(enumeration = "FileKind", tag = "2")]
pub file_kind: i32,
#[prost(uint64, tag = "3")]
pub link_count: u64,
#[prost(bytes = "vec", tag = "4")]
pub metadata_object: ::prost::alloc::vec::Vec<u8>,
#[prost(string, tag = "5")]
pub payload_kind: ::prost::alloc::string::String,
#[prost(message, optional, tag = "6")]
pub logical_bytes: ::core::option::Option<OptionalU64>,
#[prost(bytes = "vec", tag = "7")]
pub payload_object: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "8")]
pub inline_bytes: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "9")]
pub device_major: ::core::option::Option<OptionalU32>,
#[prost(message, optional, tag = "10")]
pub device_minor: ::core::option::Option<OptionalU32>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FileRecordChange {
#[prost(bytes = "vec", tag = "1")]
pub file_id: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "2")]
pub before: ::core::option::Option<FileRecordSnapshot>,
#[prost(message, optional, tag = "3")]
pub after: ::core::option::Option<FileRecordSnapshot>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TreeEntrySnapshot {
#[prost(message, optional, tag = "1")]
pub name: ::core::option::Option<LogicalName>,
#[prost(bytes = "vec", tag = "2")]
pub file_id: ::prost::alloc::vec::Vec<u8>,
#[prost(enumeration = "FileKind", tag = "3")]
pub file_kind: i32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DirectoryBindingChange {
#[prost(bytes = "vec", tag = "1")]
pub directory_id: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "2")]
pub name: ::core::option::Option<LogicalName>,
#[prost(message, optional, tag = "3")]
pub before: ::core::option::Option<TreeEntrySnapshot>,
#[prost(message, optional, tag = "4")]
pub after: ::core::option::Option<TreeEntrySnapshot>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct WorkCounters {
#[prost(uint64, tag = "1")]
pub authority_records_read: u64,
#[prost(uint64, tag = "2")]
pub authority_records_appended: u64,
#[prost(uint64, tag = "3")]
pub authority_bytes_read: u64,
#[prost(uint64, tag = "4")]
pub authority_bytes_written: u64,
#[prost(uint64, tag = "5")]
pub object_probes: u64,
#[prost(uint64, tag = "6")]
pub backend_read_operations: u64,
#[prost(uint64, tag = "7")]
pub backend_write_operations: u64,
#[prost(uint64, tag = "8")]
pub durability_operations: u64,
#[prost(uint64, tag = "9")]
pub page_reads: u64,
#[prost(uint64, tag = "10")]
pub page_writes: u64,
#[prost(uint64, tag = "11")]
pub object_bytes_read: u64,
#[prost(uint64, tag = "12")]
pub object_bytes_written: u64,
#[prost(uint64, tag = "13")]
pub bytes_hashed: u64,
#[prost(uint64, tag = "14")]
pub bytes_copied: u64,
#[prost(uint64, tag = "15")]
pub bytes_encoded: u64,
#[prost(uint64, tag = "16")]
pub source_bytes_read: u64,
#[prost(uint64, tag = "17")]
pub output_bytes: u64,
#[prost(uint64, tag = "18")]
pub items_examined: u64,
#[prost(uint64, tag = "19")]
pub items_returned: u64,
#[prost(uint64, tag = "20")]
pub allocation_operations: u64,
#[prost(uint64, tag = "21")]
pub peak_allocation_bytes: u64,
#[prost(uint64, tag = "22")]
pub materializations: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DiffResponse {
#[prost(message, optional, tag = "1")]
pub from: ::core::option::Option<GenerationRef>,
#[prost(message, optional, tag = "2")]
pub to: ::core::option::Option<GenerationRef>,
#[prost(message, repeated, tag = "3")]
pub files: ::prost::alloc::vec::Vec<FileRecordChange>,
#[prost(message, repeated, tag = "4")]
pub bindings: ::prost::alloc::vec::Vec<DirectoryBindingChange>,
#[prost(bool, tag = "5")]
pub truncated: bool,
#[prost(message, optional, tag = "6")]
pub work: ::core::option::Option<WorkCounters>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RebaseRequest {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
#[prost(uint32, tag = "3")]
pub maximum_conflicts: u32,
#[prost(message, optional, tag = "4")]
pub operation: ::core::option::Option<OperationOptions>,
#[prost(uint32, tag = "5")]
pub maximum_generations: u32,
#[prost(uint32, tag = "6")]
pub maximum_changes: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FileConflict {
#[prost(bytes = "vec", tag = "1")]
pub file_id: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ContentConflict {
#[prost(bytes = "vec", tag = "1")]
pub file_id: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "2")]
pub range: ::core::option::Option<ByteRange>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SparseConflict {
#[prost(bytes = "vec", tag = "1")]
pub file_id: ::prost::alloc::vec::Vec<u8>,
#[prost(uint64, tag = "2")]
pub offset: u64,
#[prost(enumeration = "SparseTarget", tag = "3")]
pub target: i32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DirectoryNameConflict {
#[prost(bytes = "vec", tag = "1")]
pub directory_id: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "2")]
pub name: ::core::option::Option<LogicalName>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DirectoryRangeConflict {
#[prost(bytes = "vec", tag = "1")]
pub directory_id: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "2")]
pub after: ::core::option::Option<LogicalName>,
#[prost(uint32, tag = "3")]
pub maximum_entries: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Conflict {
#[prost(enumeration = "ConflictUse", tag = "8")]
pub r#use: i32,
#[prost(bytes = "vec", tag = "9")]
pub expected_digest: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "10")]
pub actual_digest: ::prost::alloc::vec::Vec<u8>,
#[prost(oneof = "conflict::Region", tags = "1, 2, 3, 4, 5, 6, 7")]
pub region: ::core::option::Option<conflict::Region>,
}
pub mod conflict {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Region {
#[prost(message, tag = "1")]
FileRecord(super::FileConflict),
#[prost(message, tag = "2")]
Metadata(super::FileConflict),
#[prost(message, tag = "3")]
FileLength(super::FileConflict),
#[prost(message, tag = "4")]
ContentRange(super::ContentConflict),
#[prost(message, tag = "5")]
SparseSeek(super::SparseConflict),
#[prost(message, tag = "6")]
DirectoryName(super::DirectoryNameConflict),
#[prost(message, tag = "7")]
DirectoryRange(super::DirectoryRangeConflict),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RebaseResponse {
#[prost(enumeration = "RebaseStatus", tag = "1")]
pub status: i32,
#[prost(message, optional, tag = "2")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(message, repeated, tag = "3")]
pub conflicts: ::prost::alloc::vec::Vec<Conflict>,
#[prost(bool, tag = "4")]
pub truncated: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PlanJoinRequest {
#[prost(message, optional, tag = "1")]
pub source: ::core::option::Option<GenerationRef>,
#[prost(message, optional, tag = "2")]
pub target: ::core::option::Option<GenerationRef>,
#[prost(uint32, tag = "3")]
pub maximum_changes: u32,
#[prost(uint32, tag = "4")]
pub maximum_conflicts: u32,
#[prost(uint32, tag = "5")]
pub maximum_generations: u32,
#[prost(enumeration = "JoinHistory", tag = "6")]
pub history: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JoinPlan {
#[prost(bytes = "vec", tag = "1")]
pub plan_id: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "2")]
pub source: ::core::option::Option<GenerationRef>,
#[prost(message, optional, tag = "3")]
pub expected_target: ::core::option::Option<GenerationRef>,
#[prost(message, repeated, tag = "4")]
pub file_changes: ::prost::alloc::vec::Vec<FileRecordChange>,
#[prost(message, repeated, tag = "5")]
pub conflicts: ::prost::alloc::vec::Vec<Conflict>,
#[prost(bool, tag = "6")]
pub truncated: bool,
#[prost(message, optional, tag = "7")]
pub common_ancestor: ::core::option::Option<GenerationRef>,
#[prost(uint32, tag = "8")]
pub maximum_generations: u32,
#[prost(uint32, tag = "9")]
pub maximum_changes: u32,
#[prost(uint32, tag = "10")]
pub maximum_conflicts: u32,
#[prost(enumeration = "JoinHistory", tag = "11")]
pub history: i32,
#[prost(message, repeated, tag = "12")]
pub binding_changes: ::prost::alloc::vec::Vec<DirectoryBindingChange>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ApplyJoinRequest {
#[prost(message, optional, tag = "1")]
pub plan: ::core::option::Option<JoinPlan>,
#[prost(message, optional, tag = "2")]
pub operation: ::core::option::Option<OperationOptions>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JoinResponse {
#[prost(enumeration = "JoinStatus", tag = "1")]
pub status: i32,
#[prost(message, optional, tag = "2")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(message, repeated, tag = "3")]
pub conflicts: ::prost::alloc::vec::Vec<Conflict>,
#[prost(bool, tag = "4")]
pub truncated: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RetainGenerationRequest {
#[prost(message, optional, tag = "1")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(string, tag = "2")]
pub identity: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub operation: ::core::option::Option<OperationOptions>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RetainGenerationResponse {
#[prost(message, optional, tag = "1")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(string, tag = "2")]
pub identity: ::prost::alloc::string::String,
#[prost(enumeration = "MutationStatus", tag = "3")]
pub status: i32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ExportRequest {
#[prost(message, optional, tag = "1")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(bytes = "vec", tag = "2")]
pub after: ::prost::alloc::vec::Vec<u8>,
#[prost(uint32, tag = "3")]
pub maximum_objects: u32,
#[prost(uint64, tag = "4")]
pub maximum_bytes: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ExportChunk {
#[prost(bytes = "vec", tag = "1")]
pub cursor: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "2")]
pub object_id: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "3")]
pub contents: ::prost::alloc::vec::Vec<u8>,
#[prost(bool, tag = "4")]
pub terminal: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ImportChunk {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
#[prost(bytes = "vec", tag = "2")]
pub operation_id: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "3")]
pub cursor: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "4")]
pub object_id: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "5")]
pub contents: ::prost::alloc::vec::Vec<u8>,
#[prost(bool, tag = "6")]
pub terminal: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ImportResponse {
#[prost(message, optional, tag = "1")]
pub outcome: ::core::option::Option<MutationResponse>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CredentialRequest {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
#[prost(message, optional, tag = "2")]
pub generation: ::core::option::Option<GenerationRef>,
#[prost(bool, tag = "3")]
pub writable: bool,
#[prost(uint64, tag = "4")]
pub expires_after_seconds: u64,
#[prost(message, optional, tag = "5")]
pub operation: ::core::option::Option<OperationOptions>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CredentialResponse {
#[prost(string, tag = "1")]
pub endpoint: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub expires_at_unix_seconds: i64,
#[prost(oneof = "credential_response::Credential", tags = "3, 4")]
pub credential: ::core::option::Option<credential_response::Credential>,
}
pub mod credential_response {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Credential {
#[prost(string, tag = "3")]
BearerToken(::prost::alloc::string::String),
#[prost(message, tag = "4")]
S3(super::S3Credential),
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct S3Credential {
#[prost(string, tag = "1")]
pub bucket: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub region: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub access_key_id: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub secret_access_key: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub session_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ObserveRequest {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
#[prost(bytes = "vec", tag = "2")]
pub operation_id: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObserveResponse {
#[prost(string, tag = "1")]
pub state: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub outcome: ::core::option::Option<MutationResponse>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CancelRequest {
#[prost(message, optional, tag = "1")]
pub workspace: ::core::option::Option<WorkspaceRef>,
#[prost(bytes = "vec", tag = "2")]
pub operation_id: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CancelResponse {
#[prost(message, optional, tag = "1")]
pub operation: ::core::option::Option<ObserveResponse>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum FilesystemProfile {
Unspecified = 0,
Portable = 1,
Posix = 2,
Windows = 3,
Browser = 4,
}
impl FilesystemProfile {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "FILESYSTEM_PROFILE_UNSPECIFIED",
Self::Portable => "FILESYSTEM_PROFILE_PORTABLE",
Self::Posix => "FILESYSTEM_PROFILE_POSIX",
Self::Windows => "FILESYSTEM_PROFILE_WINDOWS",
Self::Browser => "FILESYSTEM_PROFILE_BROWSER",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"FILESYSTEM_PROFILE_UNSPECIFIED" => Some(Self::Unspecified),
"FILESYSTEM_PROFILE_PORTABLE" => Some(Self::Portable),
"FILESYSTEM_PROFILE_POSIX" => Some(Self::Posix),
"FILESYSTEM_PROFILE_WINDOWS" => Some(Self::Windows),
"FILESYSTEM_PROFILE_BROWSER" => Some(Self::Browser),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum FileKind {
Unspecified = 0,
Regular = 1,
Directory = 2,
SymbolicLink = 3,
Fifo = 4,
Socket = 5,
CharacterDevice = 6,
BlockDevice = 7,
ReparsePoint = 8,
MountBoundary = 9,
}
impl FileKind {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "FILE_KIND_UNSPECIFIED",
Self::Regular => "FILE_KIND_REGULAR",
Self::Directory => "FILE_KIND_DIRECTORY",
Self::SymbolicLink => "FILE_KIND_SYMBOLIC_LINK",
Self::Fifo => "FILE_KIND_FIFO",
Self::Socket => "FILE_KIND_SOCKET",
Self::CharacterDevice => "FILE_KIND_CHARACTER_DEVICE",
Self::BlockDevice => "FILE_KIND_BLOCK_DEVICE",
Self::ReparsePoint => "FILE_KIND_REPARSE_POINT",
Self::MountBoundary => "FILE_KIND_MOUNT_BOUNDARY",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"FILE_KIND_UNSPECIFIED" => Some(Self::Unspecified),
"FILE_KIND_REGULAR" => Some(Self::Regular),
"FILE_KIND_DIRECTORY" => Some(Self::Directory),
"FILE_KIND_SYMBOLIC_LINK" => Some(Self::SymbolicLink),
"FILE_KIND_FIFO" => Some(Self::Fifo),
"FILE_KIND_SOCKET" => Some(Self::Socket),
"FILE_KIND_CHARACTER_DEVICE" => Some(Self::CharacterDevice),
"FILE_KIND_BLOCK_DEVICE" => Some(Self::BlockDevice),
"FILE_KIND_REPARSE_POINT" => Some(Self::ReparsePoint),
"FILE_KIND_MOUNT_BOUNDARY" => Some(Self::MountBoundary),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MutationStatus {
Unspecified = 0,
Committed = 1,
AlreadyCommitted = 2,
Conflict = 3,
Fenced = 4,
IdempotencyConflict = 5,
Indeterminate = 6,
}
impl MutationStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "MUTATION_STATUS_UNSPECIFIED",
Self::Committed => "MUTATION_STATUS_COMMITTED",
Self::AlreadyCommitted => "MUTATION_STATUS_ALREADY_COMMITTED",
Self::Conflict => "MUTATION_STATUS_CONFLICT",
Self::Fenced => "MUTATION_STATUS_FENCED",
Self::IdempotencyConflict => "MUTATION_STATUS_IDEMPOTENCY_CONFLICT",
Self::Indeterminate => "MUTATION_STATUS_INDETERMINATE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MUTATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
"MUTATION_STATUS_COMMITTED" => Some(Self::Committed),
"MUTATION_STATUS_ALREADY_COMMITTED" => Some(Self::AlreadyCommitted),
"MUTATION_STATUS_CONFLICT" => Some(Self::Conflict),
"MUTATION_STATUS_FENCED" => Some(Self::Fenced),
"MUTATION_STATUS_IDEMPOTENCY_CONFLICT" => Some(Self::IdempotencyConflict),
"MUTATION_STATUS_INDETERMINATE" => Some(Self::Indeterminate),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum JoinHistory {
Unspecified = 0,
Merge = 1,
Rebase = 2,
Squash = 3,
CherryPick = 4,
}
impl JoinHistory {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "JOIN_HISTORY_UNSPECIFIED",
Self::Merge => "JOIN_HISTORY_MERGE",
Self::Rebase => "JOIN_HISTORY_REBASE",
Self::Squash => "JOIN_HISTORY_SQUASH",
Self::CherryPick => "JOIN_HISTORY_CHERRY_PICK",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"JOIN_HISTORY_UNSPECIFIED" => Some(Self::Unspecified),
"JOIN_HISTORY_MERGE" => Some(Self::Merge),
"JOIN_HISTORY_REBASE" => Some(Self::Rebase),
"JOIN_HISTORY_SQUASH" => Some(Self::Squash),
"JOIN_HISTORY_CHERRY_PICK" => Some(Self::CherryPick),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ConflictUse {
Unspecified = 0,
Observation = 1,
Mutation = 2,
ObservationAndMutation = 3,
}
impl ConflictUse {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "CONFLICT_USE_UNSPECIFIED",
Self::Observation => "CONFLICT_USE_OBSERVATION",
Self::Mutation => "CONFLICT_USE_MUTATION",
Self::ObservationAndMutation => "CONFLICT_USE_OBSERVATION_AND_MUTATION",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CONFLICT_USE_UNSPECIFIED" => Some(Self::Unspecified),
"CONFLICT_USE_OBSERVATION" => Some(Self::Observation),
"CONFLICT_USE_MUTATION" => Some(Self::Mutation),
"CONFLICT_USE_OBSERVATION_AND_MUTATION" => Some(Self::ObservationAndMutation),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SparseTarget {
Unspecified = 0,
Data = 1,
Hole = 2,
}
impl SparseTarget {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "SPARSE_TARGET_UNSPECIFIED",
Self::Data => "SPARSE_TARGET_DATA",
Self::Hole => "SPARSE_TARGET_HOLE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SPARSE_TARGET_UNSPECIFIED" => Some(Self::Unspecified),
"SPARSE_TARGET_DATA" => Some(Self::Data),
"SPARSE_TARGET_HOLE" => Some(Self::Hole),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ExtentKind {
Unspecified = 0,
Hole = 1,
AllocatedZero = 2,
Content = 3,
}
impl ExtentKind {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "EXTENT_KIND_UNSPECIFIED",
Self::Hole => "EXTENT_KIND_HOLE",
Self::AllocatedZero => "EXTENT_KIND_ALLOCATED_ZERO",
Self::Content => "EXTENT_KIND_CONTENT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"EXTENT_KIND_UNSPECIFIED" => Some(Self::Unspecified),
"EXTENT_KIND_HOLE" => Some(Self::Hole),
"EXTENT_KIND_ALLOCATED_ZERO" => Some(Self::AllocatedZero),
"EXTENT_KIND_CONTENT" => Some(Self::Content),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SourceState {
Unspecified = 0,
Clean = 1,
PendingCapture = 2,
NeedsRescan = 3,
Conflict = 4,
Sealed = 5,
}
impl SourceState {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "SOURCE_STATE_UNSPECIFIED",
Self::Clean => "SOURCE_STATE_CLEAN",
Self::PendingCapture => "SOURCE_STATE_PENDING_CAPTURE",
Self::NeedsRescan => "SOURCE_STATE_NEEDS_RESCAN",
Self::Conflict => "SOURCE_STATE_CONFLICT",
Self::Sealed => "SOURCE_STATE_SEALED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SOURCE_STATE_UNSPECIFIED" => Some(Self::Unspecified),
"SOURCE_STATE_CLEAN" => Some(Self::Clean),
"SOURCE_STATE_PENDING_CAPTURE" => Some(Self::PendingCapture),
"SOURCE_STATE_NEEDS_RESCAN" => Some(Self::NeedsRescan),
"SOURCE_STATE_CONFLICT" => Some(Self::Conflict),
"SOURCE_STATE_SEALED" => Some(Self::Sealed),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SourceInvalidationReason {
Unspecified = 0,
InitialSnapshotRequired = 1,
QueueOverflow = 2,
NativeRescanRequired = 3,
BackendError = 4,
UnrepresentablePath = 5,
AmbiguousRename = 6,
RootChanged = 7,
}
impl SourceInvalidationReason {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "SOURCE_INVALIDATION_REASON_UNSPECIFIED",
Self::InitialSnapshotRequired => "SOURCE_INVALIDATION_REASON_INITIAL_SNAPSHOT_REQUIRED",
Self::QueueOverflow => "SOURCE_INVALIDATION_REASON_QUEUE_OVERFLOW",
Self::NativeRescanRequired => "SOURCE_INVALIDATION_REASON_NATIVE_RESCAN_REQUIRED",
Self::BackendError => "SOURCE_INVALIDATION_REASON_BACKEND_ERROR",
Self::UnrepresentablePath => "SOURCE_INVALIDATION_REASON_UNREPRESENTABLE_PATH",
Self::AmbiguousRename => "SOURCE_INVALIDATION_REASON_AMBIGUOUS_RENAME",
Self::RootChanged => "SOURCE_INVALIDATION_REASON_ROOT_CHANGED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SOURCE_INVALIDATION_REASON_UNSPECIFIED" => Some(Self::Unspecified),
"SOURCE_INVALIDATION_REASON_INITIAL_SNAPSHOT_REQUIRED" => Some(Self::InitialSnapshotRequired),
"SOURCE_INVALIDATION_REASON_QUEUE_OVERFLOW" => Some(Self::QueueOverflow),
"SOURCE_INVALIDATION_REASON_NATIVE_RESCAN_REQUIRED" => Some(Self::NativeRescanRequired),
"SOURCE_INVALIDATION_REASON_BACKEND_ERROR" => Some(Self::BackendError),
"SOURCE_INVALIDATION_REASON_UNREPRESENTABLE_PATH" => Some(Self::UnrepresentablePath),
"SOURCE_INVALIDATION_REASON_AMBIGUOUS_RENAME" => Some(Self::AmbiguousRename),
"SOURCE_INVALIDATION_REASON_ROOT_CHANGED" => Some(Self::RootChanged),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum NameEncoding {
Unspecified = 0,
Utf8 = 1,
PosixBytes = 2,
WindowsUtf16le = 3,
}
impl NameEncoding {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "NAME_ENCODING_UNSPECIFIED",
Self::Utf8 => "NAME_ENCODING_UTF8",
Self::PosixBytes => "NAME_ENCODING_POSIX_BYTES",
Self::WindowsUtf16le => "NAME_ENCODING_WINDOWS_UTF16LE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NAME_ENCODING_UNSPECIFIED" => Some(Self::Unspecified),
"NAME_ENCODING_UTF8" => Some(Self::Utf8),
"NAME_ENCODING_POSIX_BYTES" => Some(Self::PosixBytes),
"NAME_ENCODING_WINDOWS_UTF16LE" => Some(Self::WindowsUtf16le),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RebaseStatus {
Unspecified = 0,
Rebased = 1,
AlreadyRebased = 2,
Current = 3,
Stale = 4,
Conflicted = 5,
Fenced = 6,
IdempotencyConflict = 7,
}
impl RebaseStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "REBASE_STATUS_UNSPECIFIED",
Self::Rebased => "REBASE_STATUS_REBASED",
Self::AlreadyRebased => "REBASE_STATUS_ALREADY_REBASED",
Self::Current => "REBASE_STATUS_CURRENT",
Self::Stale => "REBASE_STATUS_STALE",
Self::Conflicted => "REBASE_STATUS_CONFLICTED",
Self::Fenced => "REBASE_STATUS_FENCED",
Self::IdempotencyConflict => "REBASE_STATUS_IDEMPOTENCY_CONFLICT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"REBASE_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
"REBASE_STATUS_REBASED" => Some(Self::Rebased),
"REBASE_STATUS_ALREADY_REBASED" => Some(Self::AlreadyRebased),
"REBASE_STATUS_CURRENT" => Some(Self::Current),
"REBASE_STATUS_STALE" => Some(Self::Stale),
"REBASE_STATUS_CONFLICTED" => Some(Self::Conflicted),
"REBASE_STATUS_FENCED" => Some(Self::Fenced),
"REBASE_STATUS_IDEMPOTENCY_CONFLICT" => Some(Self::IdempotencyConflict),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum JoinStatus {
Unspecified = 0,
Applied = 1,
AlreadyApplied = 2,
NoChanges = 3,
StaleTarget = 4,
Conflicted = 5,
Fenced = 6,
IdempotencyConflict = 7,
}
impl JoinStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "JOIN_STATUS_UNSPECIFIED",
Self::Applied => "JOIN_STATUS_APPLIED",
Self::AlreadyApplied => "JOIN_STATUS_ALREADY_APPLIED",
Self::NoChanges => "JOIN_STATUS_NO_CHANGES",
Self::StaleTarget => "JOIN_STATUS_STALE_TARGET",
Self::Conflicted => "JOIN_STATUS_CONFLICTED",
Self::Fenced => "JOIN_STATUS_FENCED",
Self::IdempotencyConflict => "JOIN_STATUS_IDEMPOTENCY_CONFLICT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"JOIN_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
"JOIN_STATUS_APPLIED" => Some(Self::Applied),
"JOIN_STATUS_ALREADY_APPLIED" => Some(Self::AlreadyApplied),
"JOIN_STATUS_NO_CHANGES" => Some(Self::NoChanges),
"JOIN_STATUS_STALE_TARGET" => Some(Self::StaleTarget),
"JOIN_STATUS_CONFLICTED" => Some(Self::Conflicted),
"JOIN_STATUS_FENCED" => Some(Self::Fenced),
"JOIN_STATUS_IDEMPOTENCY_CONFLICT" => Some(Self::IdempotencyConflict),
_ => None,
}
}
}
include!("acyclic.filesystem.v2.tonic.rs");