Skip to content

Commit d53d8c5

Browse files
authored
Merge pull request #46 from LTD-Beget/fix-s3-api
fix: добавлены комментарии к методам S3, убраны лишние коды ошибок
2 parents c2a298d + fa21c1a commit d53d8c5

File tree

1 file changed

+88
-22
lines changed

1 file changed

+88
-22
lines changed

proto/v1/s3.proto

+88-22
Original file line numberDiff line numberDiff line change
@@ -5,48 +5,80 @@ import "google/api/annotations.proto";
55

66
// Управление S3
77
//
8-
// Предоставляет набор методов для работы с S3 хранилищем
8+
// Предоставляет набор методов для работы с S3 хранилищем.
99
service S3Service {
10+
// Получить информацию о квоте
11+
//
12+
// Возращает количество доступной квоты в рамках подписки, а также общее количество использованной квоты.
1013
rpc getQuota(GetQuotaRequest) returns (GetQuotaResponse) {
1114
option (google.api.http) = {
1215
get: "/v1/cloud/s3/quota",
1316
};
1417
}
1518

19+
// Изменить ключи доступа к бакету
20+
//
21+
// Меняет ключи доступа к бакету.
22+
//
23+
// Для получения доступных идентификаторов сервисов `service_id` необходимо использовать метод
24+
// "Получить информацию о сервисах" из API "Управляемые сервисы" -> "Управление сервисами".
1625
rpc changeAccessKey(ChangeAccessKeyRequest) returns (ChangeAccessKeyResponse) {
1726
option (google.api.http) = {
1827
patch: "/v1/cloud/s3/{service_id}/access-key",
1928
body: "*"
2029
};
2130
}
2231

32+
// Изменить политику доступа(CORS) бакета
33+
//
34+
// Меняет политику доступа(CORS) бакета.
35+
// Для получения доступных идентификаторов сервисов `service_id` необходимо использовать метод
36+
// "Получить информацию о сервисах" из API "Управляемые сервисы" -> "Управление сервисами".
2337
rpc changeCors(ChangeCorsRequest) returns (ChangeCorsResponse) {
2438
option (google.api.http) = {
2539
patch: "/v1/cloud/s3/{service_id}/cors",
2640
body: "*"
2741
};
2842
}
2943

44+
// Изменить доменое имя для доступа к бакету
45+
//
46+
// Меняет доменное имя для доступа к бакету.
47+
//
48+
// Для получения доступных идентификаторов сервисов `service_id` необходимо использовать метод
49+
// "Получить информацию о сервисах" из API "Управляемые сервисы" -> "Управление сервисами".
3050
rpc changeDomain(ChangeDomainRequest) returns (ChangeDomainResponse) {
3151
option (google.api.http) = {
3252
patch: "/v1/cloud/s3/{service_id}/domain",
3353
body: "*"
3454
};
3555
}
3656

57+
// Изменить тип доступа к бакету(публичный/приватный)
58+
//
59+
// Меняет тип доступа к бакету - без авторизации, либо с авторизацией по ключам.
60+
//
61+
// Для получения доступных идентификаторов сервисов `service_id` необходимо использовать метод
62+
// "Получить информацию о сервисах" из API "Управляемые сервисы" -> "Управление сервисами".
3763
rpc changePublic(ChangePublicRequest) returns (ChangePublicResponse) {
3864
option (google.api.http) = {
3965
patch: "/v1/cloud/s3/{service_id}/public",
4066
body: "*"
4167
};
4268
}
4369

70+
// Узнать тарификацию облачного хранилища S3
71+
//
72+
// Возвращает стоимость в день по подписке и стоимость в день дополнительной тарификации за 1 GB.
4473
rpc getPrice(GetPriceRequest) returns (GetPriceResponse) {
4574
option (google.api.http) = {
4675
get: "/v1/cloud/s3/price",
4776
};
4877
}
4978

79+
// Узнать префикс имени бакета
80+
//
81+
// Возвращает префикс имени бакета, который будет использован при создании бакета.
5082
rpc getPrefix(GetPrefixRequest) returns (GetPrefixResponse) {
5183
option (google.api.http) = {
5284
get: "/v1/cloud/s3/prefix",
@@ -58,11 +90,15 @@ message GetQuotaRequest {
5890
}
5991

6092
message GetQuotaResponse {
93+
// Общее количество используемой квоты(в том числе дополнительной) в MB
6194
uint32 used_size = 1;
95+
96+
// Количество оставшейся квоты в MB доступной по подписке
6297
uint32 available_size = 2;
6398
}
6499

65100
message ChangeAccessKeyRequest {
101+
// Идентификатор сервиса в формате uuid v4
66102
string service_id = 1;
67103
}
68104

@@ -86,15 +122,17 @@ message ChangeAccessKeyResponse {
86122
// Зарезервированный код ошибки
87123
_ = 0;
88124

89-
SERVICE_NOT_FOUND = 2;
90-
125+
// Доступ к сервису заблокирован
91126
SERVICE_DISABLED = 6;
92127
}
93128
}
94129
}
95130

96131
message ChangeCorsRequest {
132+
// Идентификатор сервиса в формате uuid v4
97133
string service_id = 1;
134+
135+
// Список политик доступа CORS
98136
repeated Cors cors = 2;
99137
}
100138

@@ -118,19 +156,20 @@ message ChangeCorsResponse {
118156
// Зарезервированный код ошибки
119157
_ = 0;
120158

121-
SERVICE_NOT_FOUND = 2;
122-
159+
// Доступ к сервису заблокирован
123160
SERVICE_DISABLED = 3;
124161

125-
CORS_NOT_FOUND = 4;
126-
162+
// Некорректный домен
127163
INVALID_DOMAIN = 5;
128164
}
129165
}
130166
}
131167

132168
message ChangeDomainRequest {
169+
// Идентификатор сервиса в формате uuid v4
133170
string service_id = 1;
171+
172+
// Доменое имя третьего уровня
134173
string fqdn = 2;
135174
}
136175

@@ -154,21 +193,33 @@ message ChangeDomainResponse {
154193
// Зарезервированный код ошибки
155194
_ = 0;
156195

157-
SERVICE_NOT_FOUND = 2;
158-
196+
// Доступ к сервису заблокирован
159197
SERVICE_DISABLED = 3;
160198

199+
// Домен не зарегистрирован
161200
DOMAIN_NOT_REGISTERED = 4;
162201

202+
// У домена указаны NS сервера отличные от серверов Beget -
203+
// ns1.beget.com
204+
// ns2.beget.com
205+
// ns1.beget.pro
206+
// ns2.beget.pro
163207
DOMAIN_INCORRECT_NS = 5;
164208

209+
// Домен не является доменом третьего уровня
165210
NOT_SUBDOMAIN = 6;
211+
212+
// Домен не найден на аккаунте пользователя
213+
DOMAIN_NOT_FOUND = 7;
166214
}
167215
}
168216
}
169217

170218
message ChangePublicRequest {
219+
// Идентификатор сервиса в формате uuid v4
171220
string service_id = 1;
221+
222+
// Сделать бакет публичным/приватным
172223
bool public = 2;
173224
}
174225

@@ -192,8 +243,7 @@ message ChangePublicResponse {
192243
// Зарезервированный код ошибки
193244
_ = 0;
194245

195-
SERVICE_NOT_FOUND = 2;
196-
246+
// Доступ к сервису заблокирован
197247
SERVICE_DISABLED = 3;
198248
}
199249
}
@@ -203,7 +253,10 @@ message GetPriceRequest {
203253
}
204254

205255
message GetPriceResponse {
256+
// Тарификация в день по подписке
206257
double rate_day = 1;
258+
259+
// Дополнительная тарификация(сверх подписки) в день за 1 GB
207260
double rate_day_overload = 2;
208261
}
209262

@@ -218,6 +271,7 @@ message S3CreateParams {
218271
// Признак публичности репозитория
219272
bool public = 1;
220273

274+
// Имя бакета, может содержать только латинские символы, цифры и знак `-`, при этом символ `-` не может быть в начале или конце названия или повторяться два раза подряд
221275
string bucket_name = 2;
222276
}
223277

@@ -241,15 +295,6 @@ message S3CreateError {
241295
// Некорректное название сервиса
242296
INVALID_DISPLAY_NAME = 4;
243297

244-
// Создание временно недоступно
245-
TEMPORARILY_UNAVAILABLE = 5;
246-
247-
// Создание недоступно
248-
SERVICE_DISABLED = 6;
249-
250-
// Превышен лимит квоты
251-
QUOTA_LIMIT_EXCEEDED = 7;
252-
253298
// Бакет с таким именем уже существует
254299
BUCKET_NAME_ALREADY_EXISTS = 8;
255300

@@ -258,25 +303,46 @@ message S3CreateError {
258303

259304
// Создано максимально доступное количество бакетов
260305
BUCKET_LIMIT_REACHED = 10;
306+
307+
// Некорректное описание бакета
308+
INVALID_DESCRIPTION = 11;
261309
}
262310
}
263311

264312
message S3 {
265-
// Признак публичности репозитория
313+
// Признак публичности бакета
266314
bool public = 1;
315+
316+
// Имя пользователя для доступа к бакету
267317
string access_key = 2;
318+
319+
// Пароль для доступа к бакету
268320
string secret_key = 3;
321+
322+
// Доменое имя для доступа к бакету
269323
string fqdn = 4;
324+
325+
// Политики доступа CORS
270326
repeated Cors cors = 5;
327+
328+
// Используемая квота в MB
271329
uint32 quota_used_size = 6;
272330
}
273331

274332
message Cors {
333+
// Идентификатор политики доступа (необязательное поле при создании CORS)
275334
uint32 id = 1;
276-
// Тип запроса(GET/POST/PUT/DELETE/HEAD)
335+
336+
// Список HTTP методов, доступны - GET/POST/PUT/DELETE/HEAD
277337
repeated string http_method = 2;
338+
339+
// Список разрешенных HTTP заголовков
278340
repeated string http_header = 3;
341+
342+
// Время кеширования CORS для браузера
279343
uint64 cache_ttl = 4;
344+
345+
// Домен для которого будет разрешен доступ к хранилищу
280346
string fqdn = 5;
281347
}
282348

0 commit comments

Comments
 (0)