@@ -45,7 +45,8 @@ message ImportFromS3Settings {
4545 The S3 object name begins with a prefix, followed by:
4646 * '/data_PartNumber', where 'PartNumber' represents the index of the part, starting at zero;
4747 * '/scheme.pb' - object with information about scheme, indexes, etc;
48- * '/permissions.pb' - object with information about ACL and owner.
48+ * '/permissions.pb' - object with information about ACL and owner;
49+ * '/metadata.json' - object with metadata about the backup.
4950 */
5051
5152 // The S3 object prefix can be either provided explicitly
@@ -121,6 +122,65 @@ message ImportFromS3Response {
121122 Ydb.Operations.Operation operation = 1 ;
122123}
123124
125+ /// File system (FS)
126+ message ImportFromFsSettings {
127+ message Item {
128+ /* YDB tables in FS are stored in a directory structure (see ydb_export.proto).
129+ The directory contains:
130+ * '/data_PartNumber', where 'PartNumber' represents the index of the part, starting at zero;
131+ * '/scheme.pb' - object with information about scheme, indexes, etc;
132+ * '/permissions.pb' - object with information about ACL and owner;
133+ * '/metadata.json' - object with metadata about the backup.
134+ The path in FS is specified relative to base_path.
135+ Example: "my_export/table1"
136+ */
137+ string source_path = 1 [(required) = true ];
138+
139+ // Database path to a table to import to.
140+ string destination_path = 2 [(required) = true ];
141+ }
142+
143+ // Base path on FS where the export is located
144+ // Path to the mounted directory in the case of NFS
145+ // Example: /mnt/exports
146+ string base_path = 1 [(required) = true ];
147+
148+ repeated Item items = 2 ; // Empty collection means import of all export objects
149+
150+ // Optional description
151+ string description = 3 [(length).le = 128 ];
152+
153+ // Number of retries for failed file operations
154+ uint32 number_of_retries = 4 ;
155+
156+ // Prevent importing of ACL and owner. If true, objects are created with empty ACL
157+ // and their owner will be the user who started the import.
158+ bool no_acl = 5 ;
159+
160+ // Skip checksum validation during import
161+ bool skip_checksum_validation = 6 ;
162+ }
163+
164+ message ImportFromFsResult {
165+ }
166+
167+ message ImportFromFsMetadata {
168+ ImportFromFsSettings settings = 1 ;
169+ ImportProgress.Progress progress = 2 ;
170+ repeated ImportItemProgress items_progress = 3 ;
171+ }
172+
173+ message ImportFromFsRequest {
174+ Ydb.Operations.OperationParams operation_params = 1 ;
175+ ImportFromFsSettings settings = 2 [(required) = true ];
176+ }
177+
178+ message ImportFromFsResponse {
179+ // operation.result = ImportFromFsResult
180+ // operation.metadata = ImportFromFsMetadata
181+ Ydb.Operations.Operation operation = 1 ;
182+ }
183+
124184message ListObjectsInS3ExportSettings {
125185 message Item {
126186 // Database object path
0 commit comments