diff --git a/proto/references/references.proto b/proto/references/references.proto index e8ef011f881d9f77f13da7f29ee63a07c3d26a87..a6e7070cb5e5f0bccee6e6933443dd8a83b546bb 100644 --- a/proto/references/references.proto +++ b/proto/references/references.proto @@ -24,8 +24,37 @@ message GetResponse { repeated Reference notfound = 2; } -// References принимает список ссылок на записи и возвращает два списка: -// список найденных записей и не найденных ссылок +// PublishRequest запрос на публикацию записей по ссылкам +message PublishRequest { + string space_id = 1; // Пространство публикации + string env_id = 2; // Окружение публикации + repeated Reference references = 3; // Список ссылок на записи для публикации + bool recursive = 4; // Рекурсивно публиковать все ссылки на найденные записи + bool force = 5; // Принудительно публиковать записи, даже если они содержат не опубликованные ссылки +} + +// PublishResponse ответ на запрос публикации записей +message PublishResponse { + repeated Reference published = 2; // Список опубликованных записей + repeated Reference notfound = 3; // Список не найденных записей + repeated Reference unpublished = 4; // Список не опубликованных записей, требующих публикации +} + +// References сервис предназначен для работы со ссылками на записи service References { + + // Get возвращает список записей по ссылкам rpc Get(GetRequest) returns(GetResponse) {} + + // Publish принимает список ссылок на записи и публикует их с учетом вложенных ссылок. + // + // - В случае если флаг `recursive` установлен в true, то будут рекурсивно опубликованы + // все записи на которые ссылаются найденные записи. + // - Если флаг `recursive` установлен в false, то будут опубликованы записи + // только из списка `references` в случае если они не содержат не опубликованных + // ссылок. В противном случае возвращается список не опубликованных записей `unpublished` + // которые требуют публикации. Список `published` при этом будет пустым. В случае если флаг + // `force` установлен в true, то записи будут опубликованы даже если они содержат + // не опубликованные ссылки. + rpc Publish(PublishRequest) returns(PublishResponse) {} }