diff --git a/proto/spaces/spaces.proto b/proto/spaces/spaces.proto index 87cbef95d35660369ba9b08f8d3ed858c4080ff6..0e58ed2b1397d81644210e39a4ad4cb08e9e17fa 100644 --- a/proto/spaces/spaces.proto +++ b/proto/spaces/spaces.proto @@ -12,6 +12,10 @@ message Space { string name = 3; string description = 4; State state = 5; + + + string transfer_to_org = 6; // идентификатор организации, в которую запрошен перенос пространства + Config config = 10; } @@ -67,6 +71,27 @@ message DeleteRequest { string space_id = 1; } +message TransferRequest { + string space_id = 1; + string transfer_to_org = 2; +} + +message AbortTransferRequest { + string space_id = 1; +} + +message ListTransfersRequest { + string org_id = 1; +} + +message ListTransfersResponse { + repeated Space spaces = 1; +} + +message AcceptTransferRequest { + string space_id = 1; +} + service Spaces { rpc Create(CreateRequest) returns(CreateResponse) {} rpc Get(GetRequest) returns(GetResponse) {} @@ -74,4 +99,21 @@ service Spaces { rpc Update(UpdateRequest) returns(google.protobuf.Empty) {} rpc UpdateConfig(UpdateConfigRequest) returns(google.protobuf.Empty) {} rpc Delete(DeleteRequest) returns(google.protobuf.Empty) {} + + // Transfer устанавливает для пространства значение поля RequestedMoveTo. После этого пространство + // будет отображаться в списке входящих запросов на перемещение в организации `orgID` (запрос ListIncoming) + // С пространством можно продолжать работу в текущей организации, пока запрос на перемещение не будет + // принят в целевой организации + rpc Transfer(TransferRequest) returns(google.protobuf.Empty) {} + + // AbortTransfer - отменить перемещение пространства в другую организацию + rpc AbortTransfer(AbortTransferRequest) returns(google.protobuf.Empty) {} + + // ListTransfers возвращает список пространств, перемещение которых было запрошено в текущую организацию + rpc ListTransfers(ListTransfersRequest) returns(ListTransfersResponse) {} + + // AcceptTransfer - принять запрос на перемещение пространства. Оно будет перемещено в текущую организацию со + // всеми входящими в него данными: ролями, участниками, контентом, пр. и более не будет доступно в + // старой организации + rpc AcceptTransfer(AcceptTransferRequest) returns(google.protobuf.Empty) {} }