aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/yandex-cloud-api-protos/yandex/cloud/apploadbalancer/v1/backend_group_service.proto
blob: 5b0ce6542f67c89f60e6c9abe39ece69daaa34f2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
syntax = "proto3";

package yandex.cloud.apploadbalancer.v1;

import "google/api/annotations.proto";
import "google/protobuf/field_mask.proto";
import "yandex/cloud/api/operation.proto";
import "yandex/cloud/apploadbalancer/v1/backend_group.proto";
import "yandex/cloud/operation/operation.proto";
import "yandex/cloud/validation.proto";

option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/apploadbalancer/v1;apploadbalancer";
option java_package = "yandex.cloud.api.apploadbalancer.v1";

// A set of methods for managing backend groups.
service BackendGroupService {
  // Returns the specified backend group.
  //
  // To get the list of all available backend groups, make a [List] request.
  rpc Get(GetBackendGroupRequest) returns (BackendGroup) {
    option (google.api.http) = {get: "/apploadbalancer/v1/backendGroups/{backend_group_id}"};
  }

  // Lists backend groups in the specified folder.
  rpc List(ListBackendGroupsRequest) returns (ListBackendGroupsResponse) {
    option (google.api.http) = {get: "/apploadbalancer/v1/backendGroups"};
  }

  // Creates a backend group in the specified folder.
  rpc Create(CreateBackendGroupRequest) returns (operation.Operation) {
    option (google.api.http) = {
      post: "/apploadbalancer/v1/backendGroups"
      body: "*"
    };
    option (yandex.cloud.api.operation) = {
      metadata: "CreateBackendGroupMetadata"
      response: "BackendGroup"
    };
  }

  // Updates the specified backend group.
  rpc Update(UpdateBackendGroupRequest) returns (operation.Operation) {
    option (google.api.http) = {
      patch: "/apploadbalancer/v1/backendGroups/{backend_group_id}"
      body: "*"
    };
    option (yandex.cloud.api.operation) = {
      metadata: "UpdateBackendGroupMetadata"
      response: "BackendGroup"
    };
  }

  // Deletes the specified backend group.
  rpc Delete(DeleteBackendGroupRequest) returns (operation.Operation) {
    option (google.api.http) = {delete: "/apploadbalancer/v1/backendGroups/{backend_group_id}"};
    option (yandex.cloud.api.operation) = {
      metadata: "DeleteBackendGroupMetadata"
      response: "google.protobuf.Empty"
    };
  }

  // Adds backends to the specified backend group.
  rpc AddBackend(AddBackendRequest) returns (operation.Operation) {
    option (google.api.http) = {
      post: "/apploadbalancer/v1/backendGroups/{backend_group_id}:addBackend"
      body: "*"
    };
    option (yandex.cloud.api.operation) = {
      metadata: "AddBackendMetadata"
      response: "BackendGroup"
    };
  }

  // Removes backends from the specified backend group.
  rpc RemoveBackend(RemoveBackendRequest) returns (operation.Operation) {
    option (google.api.http) = {
      post: "/apploadbalancer/v1/backendGroups/{backend_group_id}:removeBackend"
      body: "*"
    };
    option (yandex.cloud.api.operation) = {
      metadata: "RemoveBackendMetadata"
      response: "BackendGroup"
    };
  }

  // Updates the specified backend.
  rpc UpdateBackend(UpdateBackendRequest) returns (operation.Operation) {
    option (google.api.http) = {
      post: "/apploadbalancer/v1/backendGroups/{backend_group_id}:updateBackend"
      body: "*"
    };
    option (yandex.cloud.api.operation) = {
      metadata: "UpdateBackendMetadata"
      response: "BackendGroup"
    };
  }

  // Lists operations for the specified backend group.
  rpc ListOperations(ListBackendGroupOperationsRequest) returns (ListBackendGroupOperationsResponse) {
    option (google.api.http) = {get: "/apploadbalancer/v1/backendGroups/{backend_group_id}/operations"};
  }
}

message GetBackendGroupRequest {
  // ID of the backend group to return.
  //
  // To get the backend group ID, make a [BackendGroupService.List] request.
  string backend_group_id = 1 [(required) = true];
}

message ListBackendGroupsRequest {
  // ID of the folder to list backend groups in.
  //
  // To get the folder ID, make a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
  string folder_id = 1 [(required) = true];

  // The maximum number of results per page to return. If the number of available
  // results is larger than `page_size`, the service returns a [ListBackendGroupsResponse.next_page_token]
  // that can be used to get the next page of results in subsequent list requests.
  // Default value: 100.
  int64 page_size = 2 [(value) = "0-1000"];

  // Page token. To get the next page of results, set `page_token` to the
  // [ListBackendGroupsResponse.next_page_token] returned by a previous list request.
  string page_token = 3 [(length) = "<=100"];

  // A filter expression that filters backend groups listed in the response.
  //
  // The expression must specify:
  // 1. The field name. Currently you can use filtering only on [BackendGroup.name] field.
  // 2. An `=` operator.
  // 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z][-a-z0-9]{1,61}[a-z0-9]`.
  // Example of a filter: `name=my-backend-group`.
  string filter = 4 [(length) = "<=1000"];
}

message ListBackendGroupsResponse {
  // List of backend groups in the specified folder.
  repeated BackendGroup backend_groups = 1;

  // Token for getting the next page of the list. If the number of results is greater than
  // the specified [ListBackendGroupsRequest.page_size], use `next_page_token` as the value
  // for the [ListBackendGroupsRequest.page_token] parameter in the next list request.
  //
  // Each subsequent page will have its own `next_page_token` to continue paging through the results.
  string next_page_token = 2;
}

message DeleteBackendGroupRequest {
  // ID of the backend group to delete.
  //
  // To get the backend group ID, make a [BackendGroupService.List] request.
  string backend_group_id = 1 [(required) = true];
}

message DeleteBackendGroupMetadata {
  // ID of the backend group that is being deleted.
  string backend_group_id = 1;
}

message UpdateBackendGroupRequest {
  // ID of the backend group to update.
  //
  // To get the backend group ID, make a [BackendGroupService.List] request.
  string backend_group_id = 1 [(required) = true];

  // Field mask that specifies which attributes of the backend group should be updated.
  google.protobuf.FieldMask update_mask = 2;

  // New name for the backend group.
  // The name must be unique within the folder.
  string name = 3 [(pattern) = "([a-z]([-a-z0-9]{0,61}[a-z0-9])?)?"];

  // New description of the backend group.
  string description = 4 [(length) = "<=256"];

  // Backend group labels as `key:value` pairs.
  // For details about the concept, see [documentation](/docs/overview/concepts/services#labels).
  //
  // Existing set of labels is completely replaced by the provided set, so if you just want
  // to add or remove a label:
  // 1. Get the current set of labels with a [BackendGroupService.Get] request.
  // 2. Add or remove a label in this set.
  // 3. Send the new set in this field.
  map<string, string> labels = 5 [
    (yandex.cloud.size) = "<=64",
    (length) = "<=63",
    (pattern) = "[-_./\\@0-9a-z]*",
    (map_key).length = "1-63",
    (map_key).pattern = "[a-z][-_./\\@0-9a-z]*"
  ];

  // New list of backends in the backend group.
  //
  // Existing list of backends is completely replaced by the specified list, so if you just want to add or remove
  // a target, make a [BackendGroupService.AddBackend] request or a [BackendGroupService.RemoveBackend] request.
  oneof backend {
    option (exactly_one) = true;

    // New list of HTTP backends that the backend group will consist of.
    HttpBackendGroup http = 6;

    // New list of gRPC backends that the backend group will consist of.
    GrpcBackendGroup grpc = 7;

    // New list of stream (TCP) backends that the backend group will consist of.
    StreamBackendGroup stream = 8;
  }
}

message UpdateBackendGroupMetadata {
  // ID of the backend group that is being updated.
  string backend_group_id = 1;
}

message CreateBackendGroupRequest {
  // ID of the folder to create a backend group in.
  //
  // To get the folder ID, make a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
  string folder_id = 1 [(required) = true];

  // Name of the backend group.
  // The name must be unique within the folder.
  string name = 2 [(pattern) = "([a-z]([-a-z0-9]{0,61}[a-z0-9])?)?"];

  // Description of the backend group.
  string description = 3 [(length) = "<=256"];

  // Backend group labels as `key:value` pairs.
  // For details about the concept, see [documentation](/docs/overview/concepts/services#labels).
  map<string, string> labels = 4 [
    (yandex.cloud.size) = "<=64",
    (length) = "<=63",
    (pattern) = "[-_./\\@0-9a-z]*",
    (map_key).length = "1-63",
    (map_key).pattern = "[a-z][-_./\\@0-9a-z]*"
  ];

  // Backends that the backend group will consist of.
  oneof backend {
    // List of HTTP backends that the backend group will consist of.
    HttpBackendGroup http = 5;

    // List of gRPC backends that the backend group consists of.
    GrpcBackendGroup grpc = 6;

    // List of stream (TCP) backends that the backend group consists of.
    StreamBackendGroup stream = 7;
  }
}

message CreateBackendGroupMetadata {
  // ID of the backend group that is being created.
  string backend_group_id = 1;
}

message AddBackendRequest {
  reserved 4;
  // ID of the backend group to add a backend to.
  //
  // To get the backend group ID, make a [BackendGroupService.List] request.
  string backend_group_id = 1 [(required) = true];

  // Backend to add to the backend group.
  oneof backend {
    option (exactly_one) = true;

    // HTTP backend to add to the backend group.
    HttpBackend http = 2;

    // gRPC backend to add to the backend group.
    GrpcBackend grpc = 3;

    // New settings for the Stream backend.
    StreamBackend stream = 5;
  }
}

message AddBackendMetadata {
  // ID of the backend group that the backend is being added to.
  string backend_group_id = 1;

  // Name of the backend that is being added to the backend group.
  string backend_name = 2;
}

message UpdateBackendRequest {
  // ID of the backend group to update the backend in.
  string backend_group_id = 1 [(required) = true];

  // Field mask that specifies which attributes of the backend should be updated.
  google.protobuf.FieldMask update_mask = 2;

  // Name of the backend to update (required) and new settings for the backend.
  oneof backend {
    option (exactly_one) = true;
    // New settings for the HTTP backend.
    HttpBackend http = 3;

    // New settings for the gRPC backend.
    GrpcBackend grpc = 4;

    // New settings for the stream (TCP) backend.
    StreamBackend stream = 5;
  }
}

message UpdateBackendMetadata {
  // ID of the backend group that the backend is being updated it.
  string backend_group_id = 1;

  // Name of the backend that is being updated.
  string backend_name = 2;
}

message RemoveBackendRequest {
  // ID of the backend group to remove a backend from.
  //
  // To get the backend group ID, make a [BackendGroupService.List] request.
  string backend_group_id = 1 [(required) = true];

  // Name of the backend to remove.
  //
  // To get the backend name, make a [BackendGroupService.Get] request.
  string backend_name = 2 [(required) = true];
}

message RemoveBackendMetadata {
  // ID of the backend group that the backend is being removed from.
  string backend_group_id = 1;

  // Name of the backend that is being removed.
  string backend_name = 2;
}

message ListBackendGroupOperationsRequest {
  // ID of the backend group to get operations for.
  //
  // To get the backend group ID, use a [BackendGroupService.List] request.
  string backend_group_id = 1 [
    (required) = true,
    (length) = "<=50"
  ];

  // The maximum number of results per page that should be returned. If the number of available
  // results is larger than [page_size], the service returns a [ListBackendGroupOperationsResponse.next_page_token]
  // that can be used to get the next page of results in subsequent list requests.
  // Default value: 100.
  int64 page_size = 2 [(value) = "<=1000"];

  // Page token. To get the next page of results, set [page_token] to the
  // [ListBackendGroupOperationsResponse.next_page_token] returned by a previous list request.
  string page_token = 3 [(length) = "<=100"];
}

message ListBackendGroupOperationsResponse {
  // List of operations for the specified backend group.
  repeated operation.Operation operations = 1;

  // Token for getting the next page of the list. If the number of results is greater than
  // the specified [ListBackendGroupOperationsRequest.page_size], use `next_page_token` as the value
  // for the [ListBackendGroupOperationsRequest.page_token] parameter in the next list request.
  //
  // Each subsequent page will have its own `next_page_token` to continue paging through the results.
  string next_page_token = 2;
}