idl/backup.thrift (156 lines of code) (raw):

// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you 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. include "dsn.thrift" include "dsn.layer2.thrift" namespace cpp dsn.replication namespace go admin namespace java org.apache.pegasus.replication struct policy_info { 1:string policy_name; 2:string backup_provider_type; } // using configuration_create_app_response to response struct configuration_restore_request { 1:string cluster_name; 2:string policy_name; 3:i64 time_stamp; // namely backup_id 4:string app_name; 5:i32 app_id; 6:string new_app_name; 7:string backup_provider_name; 8:bool skip_bad_partition; 9:optional string restore_path; } struct backup_request { 1:dsn.gpid pid; 2:policy_info policy; 3:string app_name; 4:i64 backup_id; // user specified backup_path. 5:optional string backup_path; } struct backup_response { 1:dsn.error_code err; 2:dsn.gpid pid; 3:i32 progress; // the progress of the cold_backup 4:string policy_name; 5:i64 backup_id; 6:i64 checkpoint_total_size; } // clear all backup resources (including backup contexts and checkpoint dirs) of this policy. struct backup_clear_request { 1:dsn.gpid pid; 2:string policy_name; } struct configuration_modify_backup_policy_request { 1:string policy_name; 2:optional list<i32> add_appids; 3:optional list<i32> removal_appids; 4:optional i64 new_backup_interval_sec; 5:optional i32 backup_history_count_to_keep; 6:optional bool is_disable; 7:optional string start_time; // restrict the start time of each backup, hour:minute } struct configuration_modify_backup_policy_response { 1:dsn.error_code err; 2:string hint_message; } struct configuration_add_backup_policy_request { 1:string backup_provider_type; 2:string policy_name; 3:list<i32> app_ids; 4:i64 backup_interval_seconds; 5:i32 backup_history_count_to_keep; 6:string start_time; } struct configuration_add_backup_policy_response { 1:dsn.error_code err; 2:string hint_message; } struct policy_entry { 1:string policy_name; 2:string backup_provider_type; 3:string backup_interval_seconds; 4:set<i32> app_ids; 5:i32 backup_history_count_to_keep; 6:string start_time; 7:bool is_disable; } struct backup_entry { 1:i64 backup_id; 2:i64 start_time_ms; 3:i64 end_time_ms; 4:set<i32> app_ids; } struct configuration_query_backup_policy_request { 1:list<string> policy_names; 2:i32 backup_info_count; } struct configuration_query_backup_policy_response { 1:dsn.error_code err; 2:list<policy_entry> policys; 3:list<list<backup_entry>> backup_infos; 4:optional string hint_msg; } struct configuration_report_restore_status_request { 1:dsn.gpid pid; 2:dsn.error_code restore_status; 3:i32 progress; //[0~1000] 4:optional string reason; } struct configuration_report_restore_status_response { 1:dsn.error_code err; } struct configuration_query_restore_request { 1:i32 restore_app_id; } struct configuration_query_restore_response { 1:dsn.error_code err; 2:list<dsn.error_code> restore_status; 3:list<i32> restore_progress; } struct start_backup_app_request { 1:string backup_provider_type; 2:i32 app_id; // user specified backup_path. 3:optional string backup_path; } struct start_backup_app_response { // Possible error: // - ERR_INVALID_STATE: app is not available or is backing up // - ERR_INVALID_PARAMETERS: backup provider type is invalid // - ERR_SERVICE_NOT_ACTIVE: meta doesn't enable backup service 1:dsn.error_code err; 2:string hint_message; 3:optional i64 backup_id; } struct backup_item { 1:i64 backup_id; 2:string app_name; 3:string backup_provider_type; // user specified backup_path. 4:string backup_path; 5:i64 start_time_ms; 6:i64 end_time_ms; 7:bool is_backup_failed; } struct query_backup_status_request { 1:i32 app_id; 2:optional i64 backup_id; } struct query_backup_status_response { // Possible error: // - ERR_INVALID_PARAMETERS: no available backup for requested app // - ERR_SERVICE_NOT_ACTIVE: meta doesn't enable backup service 1:dsn.error_code err; 2:string hint_message; 3:optional list<backup_item> backup_items; }