// Copyright 2024 RustFS Team // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package node_service; /* -------------------------------------------------------------------- */ message Error { uint32 code = 1; string error_info = 2; } message PingRequest { uint64 version = 1; bytes body = 2; } message PingResponse { uint64 version = 1; bytes body = 2; } message HealBucketRequest { string bucket = 1; string options = 2; } message HealBucketResponse { bool success = 1; optional Error error = 2; } message ListBucketRequest { string options = 1; } message ListBucketResponse { bool success = 1; repeated string bucket_infos = 2; optional Error error = 3; } message MakeBucketRequest { string name = 1; string options = 2; } message MakeBucketResponse { bool success = 1; optional Error error = 2; } message GetBucketInfoRequest { string bucket = 1; string options = 2; } message GetBucketInfoResponse { bool success = 1; string bucket_info = 2; optional Error error = 3; } message DeleteBucketRequest { string bucket = 1; } message DeleteBucketResponse { bool success = 1; optional Error error = 2; } message ReadAllRequest { string disk = 1; // indicate which one in the disks string volume = 2; string path = 3; } message ReadAllResponse { bool success = 1; bytes data = 2; optional Error error = 3; } message WriteAllRequest { string disk = 1; // indicate which one in the disks string volume = 2; string path = 3; bytes data = 4; } message WriteAllResponse { bool success = 1; optional Error error = 2; } message DeleteRequest { string disk = 1; // indicate which one in the disks string volume = 2; string path = 3; string options = 4; } message DeleteResponse { bool success = 1; optional Error error = 2; } message VerifyFileRequest { string disk = 1; // indicate which one in the disks string volume = 2; string path = 3; string file_info = 4; } message VerifyFileResponse { bool success = 1; string check_parts_resp = 2; optional Error error = 3; } message CheckPartsRequest { string disk = 1; // indicate which one in the disks string volume = 2; string path = 3; string file_info = 4; } message CheckPartsResponse { bool success = 1; string check_parts_resp = 2; optional Error error = 3; } message RenamePartRequest { string disk = 1; string src_volume = 2; string src_path = 3; string dst_volume = 4; string dst_path = 5; bytes meta = 6; } message RenamePartResponse { bool success = 1; optional Error error = 2; } message RenameFileRequest { string disk = 1; string src_volume = 2; string src_path = 3; string dst_volume = 4; string dst_path = 5; } message RenameFileResponse { bool success = 1; optional Error error = 2; } message WriteRequest { string disk = 1; // indicate which one in the disks string volume = 2; string path = 3; bool is_append = 4; bytes data = 5; } message WriteResponse { bool success = 1; optional Error error = 2; } // message AppendRequest { // string disk = 1; // indicate which one in the disks // string volume = 2; // string path = 3; // bytes data = 4; // } // // message AppendResponse { // bool success = 1; // optional Error error = 2; // } message ReadAtRequest { string disk = 1; // indicate which one in the disks string volume = 2; string path = 3; int64 offset = 4; int64 length = 5; } message ReadAtResponse { bool success = 1; bytes data = 2; int64 read_size = 3; optional Error error = 4; } message ListDirRequest { string disk = 1; // indicate which one in the disks string volume = 2; } message ListDirResponse { bool success = 1; repeated string volumes = 2; optional Error error = 3; } message WalkDirRequest { string disk = 1; // indicate which one in the disks bytes walk_dir_options = 2; } message WalkDirResponse { bool success = 1; string meta_cache_entry = 2; optional string error_info = 3; } message RenameDataRequest { string disk = 1; // indicate which one in the disks string src_volume = 2; string src_path = 3; string file_info = 4; string dst_volume = 5; string dst_path = 6; } message RenameDataResponse { bool success = 1; string rename_data_resp = 2; optional Error error = 3; } message MakeVolumesRequest { string disk = 1; // indicate which one in the disks repeated string volumes = 2; } message MakeVolumesResponse { bool success = 1; optional Error error = 2; } message MakeVolumeRequest { string disk = 1; // indicate which one in the disks string volume = 2; } message MakeVolumeResponse { bool success = 1; optional Error error = 2; } message ListVolumesRequest { string disk = 1; // indicate which one in the disks } message ListVolumesResponse { bool success = 1; repeated string volume_infos = 2; optional Error error = 3; } message StatVolumeRequest { string disk = 1; // indicate which one in the disks string volume = 2; } message StatVolumeResponse { bool success = 1; string volume_info = 2; optional Error error = 3; } message DeletePathsRequest { string disk = 1; string volume = 2; repeated string paths = 3; } message DeletePathsResponse { bool success = 1; optional Error error = 2; } message UpdateMetadataRequest { string disk = 1; string volume = 2; string path = 3; string file_info = 4; string opts = 5; } message UpdateMetadataResponse { bool success = 1; optional Error error = 2; } message WriteMetadataRequest { string disk = 1; // indicate which one in the disks string volume = 2; string path = 3; string file_info = 4; } message WriteMetadataResponse { bool success = 1; optional Error error = 2; } message ReadVersionRequest { string disk = 1; string volume = 2; string path = 3; string version_id = 4; string opts = 5; } message ReadVersionResponse { bool success = 1; string file_info = 2; optional Error error = 3; } message ReadXLRequest { string disk = 1; string volume = 2; string path = 3; bool read_data = 4; } message ReadXLResponse { bool success = 1; string raw_file_info = 2; optional Error error = 3; } message DeleteVersionRequest { string disk = 1; string volume = 2; string path = 3; string file_info = 4; bool force_del_marker = 5; string opts = 6; } message DeleteVersionResponse { bool success = 1; string raw_file_info = 2; optional Error error = 3; } message DeleteVersionsRequest { string disk = 1; string volume = 2; repeated string versions = 3; string opts = 4; } message DeleteVersionsResponse { bool success = 1; repeated string errors = 2; optional Error error = 3; } message ReadMultipleRequest { string disk = 1; string read_multiple_req = 2; } message ReadMultipleResponse { bool success = 1; repeated string read_multiple_resps = 2; optional Error error = 3; } message DeleteVolumeRequest { string disk = 1; string volume = 2; } message DeleteVolumeResponse { bool success = 1; optional Error error = 2; } message DiskInfoRequest { string disk = 1; string opts = 2; } message DiskInfoResponse { bool success = 1; string disk_info = 2; optional Error error = 3; } message NsScannerRequest { string disk = 1; string cache = 2; uint64 scan_mode = 3; } message NsScannerResponse { bool success = 1; string update = 2; string data_usage_cache = 3; optional Error error = 4; } // lock api have same argument type message GenerallyLockRequest { string args = 1; } message GenerallyLockResponse { bool success = 1; optional string error_info = 2; } message Mss { map value = 1; } message LocalStorageInfoRequest { bool metrics = 1; } message LocalStorageInfoResponse { bool success = 1; bytes storage_info = 2; optional string error_info = 3; } message ServerInfoRequest { bool metrics = 1; } message ServerInfoResponse { bool success = 1; bytes server_properties = 2; optional string error_info = 3; } message GetCpusRequest {} message GetCpusResponse { bool success = 1; bytes cpus = 2; optional string error_info = 3; } message GetNetInfoRequest {} message GetNetInfoResponse { bool success = 1; bytes net_info = 2; optional string error_info = 3; } message GetPartitionsRequest {} message GetPartitionsResponse { bool success = 1; bytes partitions = 2; optional string error_info = 3; } message GetOsInfoRequest {} message GetOsInfoResponse { bool success = 1; bytes os_info = 2; optional string error_info = 3; } message GetSELinuxInfoRequest {} message GetSELinuxInfoResponse { bool success = 1; bytes sys_services = 2; optional string error_info = 3; } message GetSysConfigRequest {} message GetSysConfigResponse { bool success = 1; bytes sys_config = 2; optional string error_info = 3; } message GetSysErrorsRequest {} message GetSysErrorsResponse { bool success = 1; bytes sys_errors = 2; optional string error_info = 3; } message GetMemInfoRequest {} message GetMemInfoResponse { bool success = 1; bytes mem_info = 2; optional string error_info = 3; } message GetMetricsRequest { bytes metric_type = 1; bytes opts = 2; } message GetMetricsResponse { bool success = 1; bytes realtime_metrics = 2; optional string error_info = 3; } message GetProcInfoRequest {} message GetProcInfoResponse { bool success = 1; bytes proc_info = 2; optional string error_info = 3; } message StartProfilingRequest { string profiler = 1; } message StartProfilingResponse { bool success = 1; optional string error_info = 2; } message DownloadProfileDataRequest {} message DownloadProfileDataResponse { bool success = 1; map data = 2; optional string error_info = 3; } message GetBucketStatsDataRequest { string bucket = 1; } message GetBucketStatsDataResponse { bool success = 1; bytes bucket_stats = 2; optional string error_info = 3; } message GetSRMetricsDataRequest {} message GetSRMetricsDataResponse { bool success = 1; bytes sr_metrics_summary = 2; optional string error_info = 3; } message GetAllBucketStatsRequest {} message GetAllBucketStatsResponse { bool success = 1; bytes bucket_stats_map = 2; optional string error_info = 3; } message LoadBucketMetadataRequest { string bucket = 1; } message LoadBucketMetadataResponse { bool success = 1; optional string error_info = 2; } message DeleteBucketMetadataRequest { string bucket = 1; } message DeleteBucketMetadataResponse { bool success = 1; optional string error_info = 2; } message DeletePolicyRequest { string policy_name = 1; } message DeletePolicyResponse { bool success = 1; optional string error_info = 2; } message LoadPolicyRequest { string policy_name = 1; } message LoadPolicyResponse { bool success = 1; optional string error_info = 2; } message LoadPolicyMappingRequest { string user_or_group = 1; uint64 user_type = 2; bool is_group = 3; } message LoadPolicyMappingResponse { bool success = 1; optional string error_info = 2; } message DeleteUserRequest { string access_key = 1; } message DeleteUserResponse { bool success = 1; optional string error_info = 2; } message DeleteServiceAccountRequest { string access_key = 1; } message DeleteServiceAccountResponse { bool success = 1; optional string error_info = 2; } message LoadUserRequest { string access_key = 1; bool temp = 2; } message LoadUserResponse { bool success = 1; optional string error_info = 2; } message LoadServiceAccountRequest { string access_key = 1; } message LoadServiceAccountResponse { bool success = 1; optional string error_info = 2; } message LoadGroupRequest { string group = 1; } message LoadGroupResponse { bool success = 1; optional string error_info = 2; } message ReloadSiteReplicationConfigRequest {} message ReloadSiteReplicationConfigResponse { bool success = 1; optional string error_info = 2; } message SignalServiceRequest { Mss vars = 1; } message SignalServiceResponse { bool success = 1; optional string error_info = 2; } message BackgroundHealStatusRequest {} message BackgroundHealStatusResponse { bool success = 1; bytes bg_heal_state = 2; optional string error_info = 3; } message GetMetacacheListingRequest { bytes opts = 1; } message GetMetacacheListingResponse { bool success = 1; bytes metacache = 2; optional string error_info = 3; } message UpdateMetacacheListingRequest { bytes metacache = 1; } message UpdateMetacacheListingResponse { bool success = 1; bytes metacache = 2; optional string error_info = 3; } message ReloadPoolMetaRequest {} message ReloadPoolMetaResponse { bool success = 1; optional string error_info = 2; } message StopRebalanceRequest {} message StopRebalanceResponse { bool success = 1; optional string error_info = 2; } message LoadRebalanceMetaRequest { bool start_rebalance = 1; } message LoadRebalanceMetaResponse { bool success = 1; optional string error_info = 2; } message LoadTransitionTierConfigRequest {} message LoadTransitionTierConfigResponse { bool success = 1; optional string error_info = 2; } /* -------------------------------------------------------------------- */ service NodeService { /* -------------------------------meta service-------------------------- */ rpc Ping(PingRequest) returns (PingResponse) {}; rpc HealBucket(HealBucketRequest) returns (HealBucketResponse) {}; rpc ListBucket(ListBucketRequest) returns (ListBucketResponse) {}; rpc MakeBucket(MakeBucketRequest) returns (MakeBucketResponse) {}; rpc GetBucketInfo(GetBucketInfoRequest) returns (GetBucketInfoResponse) {}; rpc DeleteBucket(DeleteBucketRequest) returns (DeleteBucketResponse) {}; /* -------------------------------disk service-------------------------- */ rpc ReadAll(ReadAllRequest) returns (ReadAllResponse) {}; rpc WriteAll(WriteAllRequest) returns (WriteAllResponse) {}; rpc Delete(DeleteRequest) returns (DeleteResponse) {}; rpc VerifyFile(VerifyFileRequest) returns (VerifyFileResponse) {}; rpc CheckParts(CheckPartsRequest) returns (CheckPartsResponse) {}; rpc RenamePart(RenamePartRequest) returns (RenamePartResponse) {}; rpc RenameFile(RenameFileRequest) returns (RenameFileResponse) {}; rpc Write(WriteRequest) returns (WriteResponse) {}; rpc WriteStream(stream WriteRequest) returns (stream WriteResponse) {}; // rpc Append(AppendRequest) returns (AppendResponse) {}; rpc ReadAt(stream ReadAtRequest) returns (stream ReadAtResponse) {}; rpc ListDir(ListDirRequest) returns (ListDirResponse) {}; rpc WalkDir(WalkDirRequest) returns (stream WalkDirResponse) {}; rpc RenameData(RenameDataRequest) returns (RenameDataResponse) {}; rpc MakeVolumes(MakeVolumesRequest) returns (MakeVolumesResponse) {}; rpc MakeVolume(MakeVolumeRequest) returns (MakeVolumeResponse) {}; rpc ListVolumes(ListVolumesRequest) returns (ListVolumesResponse) {}; rpc StatVolume(StatVolumeRequest) returns (StatVolumeResponse) {}; rpc DeletePaths(DeletePathsRequest) returns (DeletePathsResponse) {}; rpc UpdateMetadata(UpdateMetadataRequest) returns (UpdateMetadataResponse) {}; rpc WriteMetadata(WriteMetadataRequest) returns (WriteMetadataResponse) {}; rpc ReadVersion(ReadVersionRequest) returns (ReadVersionResponse) {}; rpc ReadXL(ReadXLRequest) returns (ReadXLResponse) {}; rpc DeleteVersion(DeleteVersionRequest) returns (DeleteVersionResponse) {}; rpc DeleteVersions(DeleteVersionsRequest) returns (DeleteVersionsResponse) {}; rpc ReadMultiple(ReadMultipleRequest) returns (ReadMultipleResponse) {}; rpc DeleteVolume(DeleteVolumeRequest) returns (DeleteVolumeResponse) {}; rpc DiskInfo(DiskInfoRequest) returns (DiskInfoResponse) {}; rpc NsScanner(stream NsScannerRequest) returns (stream NsScannerResponse) {}; /* -------------------------------lock service-------------------------- */ rpc Lock(GenerallyLockRequest) returns (GenerallyLockResponse) {}; rpc UnLock(GenerallyLockRequest) returns (GenerallyLockResponse) {}; rpc RLock(GenerallyLockRequest) returns (GenerallyLockResponse) {}; rpc RUnLock(GenerallyLockRequest) returns (GenerallyLockResponse) {}; rpc ForceUnLock(GenerallyLockRequest) returns (GenerallyLockResponse) {}; rpc Refresh(GenerallyLockRequest) returns (GenerallyLockResponse) {}; /* -------------------------------peer rest service-------------------------- */ rpc LocalStorageInfo(LocalStorageInfoRequest) returns (LocalStorageInfoResponse) {}; rpc ServerInfo(ServerInfoRequest) returns (ServerInfoResponse) {}; rpc GetCpus(GetCpusRequest) returns (GetCpusResponse) {}; rpc GetNetInfo(GetNetInfoRequest) returns (GetNetInfoResponse) {}; rpc GetPartitions(GetPartitionsRequest) returns (GetPartitionsResponse) {}; rpc GetOsInfo(GetOsInfoRequest) returns (GetOsInfoResponse) {}; rpc GetSELinuxInfo(GetSELinuxInfoRequest) returns (GetSELinuxInfoResponse) {}; rpc GetSysConfig(GetSysConfigRequest) returns (GetSysConfigResponse) {}; rpc GetSysErrors(GetSysErrorsRequest) returns (GetSysErrorsResponse) {}; rpc GetMemInfo(GetMemInfoRequest) returns (GetMemInfoResponse) {}; rpc GetMetrics(GetMetricsRequest) returns (GetMetricsResponse) {}; rpc GetProcInfo(GetProcInfoRequest) returns (GetProcInfoResponse) {}; rpc StartProfiling(StartProfilingRequest) returns (StartProfilingResponse) {}; rpc DownloadProfileData(DownloadProfileDataRequest) returns (DownloadProfileDataResponse) {}; rpc GetBucketStats(GetBucketStatsDataRequest) returns (GetBucketStatsDataResponse) {}; rpc GetSRMetrics(GetSRMetricsDataRequest) returns (GetSRMetricsDataResponse) {}; rpc GetAllBucketStats(GetAllBucketStatsRequest) returns (GetAllBucketStatsResponse) {}; rpc LoadBucketMetadata(LoadBucketMetadataRequest) returns (LoadBucketMetadataResponse) {}; rpc DeleteBucketMetadata(DeleteBucketMetadataRequest) returns (DeleteBucketMetadataResponse) {}; rpc DeletePolicy(DeletePolicyRequest) returns (DeletePolicyResponse) {}; rpc LoadPolicy(LoadPolicyRequest) returns (LoadPolicyResponse) {}; rpc LoadPolicyMapping(LoadPolicyMappingRequest) returns (LoadPolicyMappingResponse) {}; rpc DeleteUser(DeleteUserRequest) returns (DeleteUserResponse) {}; rpc DeleteServiceAccount(DeleteServiceAccountRequest) returns (DeleteServiceAccountResponse) {}; rpc LoadUser(LoadUserRequest) returns (LoadUserResponse) {}; rpc LoadServiceAccount(LoadServiceAccountRequest) returns (LoadServiceAccountResponse) {}; rpc LoadGroup(LoadGroupRequest) returns (LoadGroupResponse) {}; rpc ReloadSiteReplicationConfig(ReloadSiteReplicationConfigRequest) returns (ReloadSiteReplicationConfigResponse) {}; // rpc VerifyBinary() returns () {}; // rpc CommitBinary() returns () {}; rpc SignalService(SignalServiceRequest) returns (SignalServiceResponse) {}; rpc BackgroundHealStatus(BackgroundHealStatusRequest) returns (BackgroundHealStatusResponse) {}; rpc GetMetacacheListing(GetMetacacheListingRequest) returns (GetMetacacheListingResponse) {}; rpc UpdateMetacacheListing(UpdateMetacacheListingRequest) returns (UpdateMetacacheListingResponse) {}; rpc ReloadPoolMeta(ReloadPoolMetaRequest) returns (ReloadPoolMetaResponse) {}; rpc StopRebalance(StopRebalanceRequest) returns (StopRebalanceResponse) {}; rpc LoadRebalanceMeta(LoadRebalanceMetaRequest) returns (LoadRebalanceMetaResponse) {}; rpc LoadTransitionTierConfig(LoadTransitionTierConfigRequest) returns (LoadTransitionTierConfigResponse) {}; }