syntax = "proto3"; import "google/protobuf/empty.proto"; import "common/common.proto"; option go_package = "git.perx.ru/perxis/perxis-go/roles;roles"; package content.roles; message Role { // Внутренний идентификатор роли string id = 1; // Идентификатор пространства string space_id = 2; // Описание роли, назначение string description = 3; // Список правил доступа к коллекциям repeated common.Rule rules = 4; // Список доступных окружений (ID или Alias) repeated string environments = 5; // Разрешить доступ API управления: // - Управление коллекциями // - Управление приложениями // - Управление ролями // - Управление окружениями // - Управление приглашениями // - Управление locales // - Управление участниками bool allow_management = 10; } message CreateRequest { Role role = 1; } message CreateResponse { Role created = 1; } message GetRequest { string space_id = 1; string role_id = 2; } message GetResponse { Role role = 1; } message UpdateRequest { Role role = 1; } message ListRequest { string space_id = 1; } message ListResponse { repeated Role roles = 1; } message DeleteRequest { string space_id = 1; string role_id = 2; } service Roles { // Create - создает роль в рамках пространства rpc Create(CreateRequest) returns(CreateResponse) {} // Get - возвращает роль по id rpc Get(GetRequest) returns(GetResponse) {} // Update - обновляет параметры роли rpc Update(UpdateRequest) returns(google.protobuf.Empty) {} // List - возвращает список ролей, созданных в пространстве rpc List(ListRequest) returns(ListResponse) {} // Delete - удаляет указанную роль из пространстве rpc Delete(DeleteRequest) returns(google.protobuf.Empty) {} }