All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ydb.public.api.protos.ydb_export.proto Maven / Gradle / Ivy

syntax = "proto3";
option cc_enable_arenas = true;

import "ydb/public/api/protos/annotations/validation.proto";
import "ydb/public/api/protos/ydb_operation.proto";

import "google/protobuf/timestamp.proto";

package Ydb.Export;
option java_package = "com.yandex.ydb.export";

/// Common
message ExportProgress {
    enum Progress {
        PROGRESS_UNSPECIFIED = 0;
        PROGRESS_PREPARING = 1;
        PROGRESS_TRANSFER_DATA = 2;
        PROGRESS_DONE = 3;
        PROGRESS_CANCELLATION = 4;
        PROGRESS_CANCELLED = 5;
    }
}

message ExportItemProgress {
    uint32 parts_total = 1;
    uint32 parts_completed = 2;
    google.protobuf.Timestamp start_time = 3;
    google.protobuf.Timestamp end_time = 4;
}

/// YT
message ExportToYtSettings {
    message Item {
        // Database path to a table to be exported
        string source_path = 1 [(required) = true];
        string destination_path = 2 [(required) = true];
    }

    string host = 1 [(required) = true];
    uint32 port = 2;
    string token = 3 [(required) = true];
    repeated Item items = 4 [(size).ge = 1];
    string description = 5 [(length).le = 128];
    uint32 number_of_retries = 6;
    bool use_type_v3 = 7;
}

message ExportToYtResult {
}

message ExportToYtMetadata {
    ExportToYtSettings settings = 1;
    ExportProgress.Progress progress = 2;
    repeated ExportItemProgress items_progress = 3;
}

message ExportToYtRequest {
    Ydb.Operations.OperationParams operation_params = 1;
    ExportToYtSettings settings = 2 [(required) = true];
}

message ExportToYtResponse {
    // operation.result = ExportToYtResult
    // operation.metadata = ExportToYtMetadata
    Ydb.Operations.Operation operation = 1;
}

/// S3
message ExportToS3Settings {
    enum Scheme {
        UNSPECIFIED = 0;
        HTTP = 1;
        HTTPS = 2;
    }

    enum StorageClass {
        STORAGE_CLASS_UNSPECIFIED = 0;
        STANDARD = 1;
        REDUCED_REDUNDANCY = 2;
        STANDARD_IA = 3;
        ONEZONE_IA = 4;
        INTELLIGENT_TIERING = 5;
        GLACIER = 6;
        DEEP_ARCHIVE = 7;
        OUTPOSTS = 8;
    };

    message Item {
        // Database path to a table to be exported
        string source_path = 1 [(required) = true];

        /* Tables are exported to one or more S3 objects.
           The object name begins with 'destination_prefix'.
           This prefix will be followed by '/data_PartNumber', where 'PartNumber'
           represents the index of the part, starting at zero.
        */
        string destination_prefix = 2 [(required) = true];
    }

    string endpoint = 1 [(required) = true];
    Scheme scheme = 2; // HTTPS if not specified
    string bucket = 3 [(required) = true];
    string access_key = 4 [(required) = true];
    string secret_key = 5 [(required) = true];
    repeated Item items = 6 [(size).ge = 1];
    string description = 7 [(length).le = 128];
    uint32 number_of_retries = 8;
    StorageClass storage_class = 9;
}

message ExportToS3Result {
}

message ExportToS3Metadata {
    ExportToS3Settings settings = 1;
    ExportProgress.Progress progress = 2;
    repeated ExportItemProgress items_progress = 3;
}

message ExportToS3Request {
    Ydb.Operations.OperationParams operation_params = 1;
    ExportToS3Settings settings = 2 [(required) = true];
}

message ExportToS3Response {
    // operation.result = ExportToS3Result
    // operation.metadata = ExportToS3Metadata
    Ydb.Operations.Operation operation = 1;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy