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

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

syntax = "proto3";
option cc_enable_arenas = true;

package Ydb.Scheme;
option java_package = "com.yandex.ydb.scheme";
option java_outer_classname = "SchemeOperationProtos";

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

// Create directory.
// All intermediate directories must be created
message MakeDirectoryRequest {
    Ydb.Operations.OperationParams operation_params = 1;
    string path = 2;
}

message MakeDirectoryResponse {
    Ydb.Operations.Operation operation = 1;
}

// Remove directory
message RemoveDirectoryRequest {
    Ydb.Operations.OperationParams operation_params = 1;
    string path = 2;
}

message RemoveDirectoryResponse {
    Ydb.Operations.Operation operation = 1;
}

// List directory
message ListDirectoryRequest {
    Ydb.Operations.OperationParams operation_params = 1;
    string path = 2;
}

message ListDirectoryResponse {
    // Holds ListDirectoryResult in case of successful call
    Ydb.Operations.Operation operation = 1;
}

message Permissions {
    // SID (Security ID) of user or group
    string subject = 1;
    repeated string permission_names = 2;
}

message Entry {
    enum Type {
        TYPE_UNSPECIFIED = 0;
        DIRECTORY = 1;
        TABLE = 2;
        PERS_QUEUE_GROUP = 3;
        DATABASE = 4;
        RTMR_VOLUME = 5;
        BLOCK_STORE_VOLUME = 6;
        COORDINATION_NODE = 7;
        COLUMN_TABLE = 13;
        SEQUENCE = 15;
        REPLICATION = 16;
    }

    // Name of scheme entry (dir2 of /dir1/dir2)
    string name = 1;
    // SID (Security ID) of user or group
    string owner = 2;
    Type type = 5;
    repeated Permissions effective_permissions = 6;
    repeated Permissions permissions = 7;

    // Size of entry in bytes. Currently filled for:
    // - TABLE;
    // - DATABASE.
    // Empty (zero) in other cases.
    uint64 size_bytes = 8;
}

message ListDirectoryResult {
    Entry self = 1;
    repeated Entry children = 2;
}

// Returns information about object with given path
message DescribePathRequest {
    Ydb.Operations.OperationParams operation_params = 1;
    string path = 2;
}

message DescribePathResponse {
    // Holds DescribePathResult in case of DescribePathResult
    Ydb.Operations.Operation operation = 1;
}

message DescribePathResult {
    Entry self = 1;
}

message PermissionsAction {
    oneof action {
        // Grant permissions
        Permissions grant = 1;
        // Revoke permissions
        Permissions revoke = 2;
        // Rewrite permissions for given subject (last set win in case of multiple set for one subject)
        Permissions set = 3;
        // New owner for object
        string change_owner = 4;
    }
}

// Modify permissions of given object
message ModifyPermissionsRequest {
    Ydb.Operations.OperationParams operation_params = 1;
    string path = 2;
    repeated PermissionsAction actions = 3;
    // Clear all permissions on the object for all subjects
    bool clear_permissions = 4;
}

message ModifyPermissionsResponse {
    Ydb.Operations.Operation operation = 1;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy