aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/cluster.proto
blob: fdc605855868cd9ae07f272524f8d1cdd0b8908c (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
syntax = "proto3";

package yandex.cloud.mdb.opensearch.v1;

import "google/protobuf/timestamp.proto";
import "yandex/cloud/mdb/opensearch/v1/config/opensearch.proto";
import "yandex/cloud/mdb/opensearch/v1/maintenance.proto";

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

// An OpenSearch cluster resource.
message Cluster {
  enum Environment {
    ENVIRONMENT_UNSPECIFIED = 0;

    // Stable environment with a conservative update policy:
    // only hotfixes are applied during regular maintenance.
    PRODUCTION = 1;

    // Environment with more aggressive update policy: new versions
    // are rolled out irrespective of backward compatibility.
    PRESTABLE = 2;
  }

  enum Health {

    // Health of the cluster is unknown ([Host.health] for every host in the cluster is UNKNOWN).
    HEALTH_UNKNOWN = 0;

    // Cluster is working normally ([Host.health] for every host in the cluster is ALIVE).
    ALIVE = 1;

    // Cluster is inoperable ([Host.health] for every host in the cluster is DEAD).
    DEAD = 2;

    // Cluster is working below capacity ([Host.health] for at least one host in the cluster is not ALIVE).
    DEGRADED = 3;
  }

  // Current state of the cluster.
  enum Status {

    // Cluster state is unknown.
    STATUS_UNKNOWN = 0;

    // Cluster is being created.
    CREATING = 1;

    // Cluster is running normally.
    RUNNING = 2;

    // Cluster has encountered a problem and cannot operate.
    ERROR = 3;

    // Cluster is being updated.
    UPDATING = 4;

    // Cluster is stopping.
    STOPPING = 5;

    // Cluster has stopped.
    STOPPED = 6;

    // Cluster is starting.
    STARTING = 7;
  }

  // ID of the OpenSearch cluster.
  // This ID is assigned by the platform at the moment of cluster creation.
  string id = 1;

  // ID of the folder that the OpenSearch cluster belongs to.
  string folder_id = 2;

  // Time when the cluster was created.
  google.protobuf.Timestamp created_at = 3;

  // Name of the OpenSearch cluster.
  // The name is unique within the folder. 1-63 characters long.
  string name = 4;

  // Description of the OpenSearch cluster. 0-256 characters long.
  string description = 5;

  // Custom labels for the OpenSearch cluster as `key:value` pairs.
  // Maximum 64 labels per resource.
  map<string, string> labels = 6;

  // Deployment environment of the OpenSearch cluster.
  Environment environment = 7;

  // Description of monitoring systems relevant to the OpenSearch cluster.
  repeated Monitoring monitoring = 8;

  // Configuration of the OpenSearch cluster.
  ClusterConfig config = 9;

  // ID of the cloud network that the cluster belongs to.
  string network_id = 10;

  // Aggregated cluster health.
  Health health = 11;

  // Current state of the cluster.
  Status status = 12;

  // User security groups.
  repeated string security_group_ids = 13;

  // ID of the service account used to access Object Storage.
  string service_account_id = 14;

  // Determines whether the cluster is protected from being deleted.
  bool deletion_protection = 15;

  // Cluster maintenance window. Should be defined by either one of the two options.
  MaintenanceWindow maintenance_window = 16;

  // Maintenance operation planned at nearest [maintenance_window].
  MaintenanceOperation planned_operation = 17;
}

// Monitoring system metadata.
message Monitoring {
  // Name of the monitoring system.
  string name = 1;

  // Description of the monitoring system.
  string description = 2;

  // Link to the monitoring system charts for the OpenSearch cluster.
  string link = 3;
}

// The OpenSearch cluster configuration.
message ClusterConfig {
  // Version of the OpenSearch server software.
  string version = 1;

  // OpenSearch configuration.
  OpenSearch opensearch = 2;

  // Dashboards configuration.
  Dashboards dashboards = 3;

  // Access policy for external services.
  Access access = 4;
}

// The OpenSearch host group type configuration.
message OpenSearch {
  enum GroupRole {
    GROUP_ROLE_UNSPECIFIED = 0;
    DATA = 1;
    MANAGER = 2;
  }

  // Configuration of the host group.
  message NodeGroup {
    // Name of the group. Must be 1-63 characters long.
    string name = 1;

    // Resources allocated to the hosts.
    Resources resources = 2;

    // Number of hosts in the group.
    int64 hosts_count = 3;

    // IDs of the availability zones the hosts belong to.
    repeated string zone_ids = 4;

    // IDs of the subnets that the hosts belong to.
    repeated string subnet_ids = 5;

    // Determines whether a public IP is assigned to the hosts in the group.
    bool assign_public_ip = 6;

    // Roles of the host group.
    repeated GroupRole roles = 7;
  }

  // Names of the cluster plugins.
  repeated string plugins = 1;

  // Host groups of the OpenSearch type.
  repeated NodeGroup node_groups = 2;

  oneof config {
    config.OpenSearchConfigSet2 opensearch_config_set_2 = 3 [json_name = "opensearchConfigSet_2"];
  }

  // Keystore entries names.
  repeated string keystore_settings = 4;
}

// The Dashboards host group type configuration.
message Dashboards {
  message NodeGroup {
    // Name of the group. 1-63 characters long.
    string name = 1;

    // Resources allocated to the hosts.
    Resources resources = 2;

    // Number of hosts in the group.
    int64 hosts_count = 3;

    // IDs of the availability zones the hosts belong to.
    repeated string zone_ids = 4;

    // IDs of the subnets that the hosts belong to.
    repeated string subnet_ids = 5;

    // Determines whether a public IP is assigned to the hosts in the group.
    bool assign_public_ip = 6;
  }

  // Host groups of the Dashboards type.
  repeated NodeGroup node_groups = 2;
}

// A list of computational resources allocated to a host.
message Resources {
  // ID of the preset for computational resources allocated to a host.
  string resource_preset_id = 1;

  // Volume of the storage used by the host, in bytes.
  int64 disk_size = 2;

  // Type of the storage used by the host: `network-hdd`, `network-ssd` or `local-ssd`.
  string disk_type_id = 3;
}

// An OpenSearch cluster host resource.
message Host {
  reserved 7;

  enum Health {

    // Health of the host is unknown. Default value.
    UNKNOWN = 0;

    // The host is performing all its functions normally.
    ALIVE = 1;

    // The host is inoperable and cannot perform any of its essential functions.
    DEAD = 2;

    // The host is working below capacity or not fully functional.
    DEGRADED = 3;
  }

  enum Type {
    // Type of the host is unspecified. Default value.
    TYPE_UNSPECIFIED = 0;

    // An OpenSearch type host.
    OPENSEARCH = 1;

    // A Dashboards type host.
    DASHBOARDS = 2;
  }

  // CPU usage of the host.
  message CPUMetric {
    // Time of the record.
    int64 timestamp = 1;

    // Percentage of the CPU used.
    double used = 2;
  }

  // RAM usage of the host.
  message MemoryMetric {
    // Time of the record.
    int64 timestamp = 1;

    // The amount of RAM used, in bytes.
    int64 used = 2;

    // Total amount of RAM allocated to the host.
    int64 total = 3;
  }

  // Disk usage of the host.
  message DiskMetric {
    // Time of the record.
    int64 timestamp = 1;

    // The amount of disk space used, in bytes.
    int64 used = 2;

    // Total amount of disk space allocated to the host.
    int64 total = 3;
  }

  // Resources used by the host.
  message SystemMetrics {
    // CPU usage of the host.
    CPUMetric cpu = 1;

    // RAM usage of the host.
    MemoryMetric memory = 2;

    // Disk usage of the host.
    DiskMetric disk = 3;
  }

  // Required. Name of the OpenSearch host.
  //
  // The host name is assigned by the platform at creation time and cannot be changed.
  //
  // The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
  string name = 1;

  // Required. ID of the OpenSearch cluster. The ID is assigned by the platform at creation time.
  string cluster_id = 2;

  // ID of the availability zone the OpenSearch host belongs to.
  string zone_id = 3;

  // Resources allocated to the OpenSearch host.
  Resources resources = 4;

  // Type of the host. If the field has default value, it is not returned in the response.
  Type type = 5;

  // Aggregated health of the host. If the field has default value, it is not returned in the response.
  Health health = 6;

  // ID of the subnet that the host belongs to.
  string subnet_id = 8;

  // Determines whether a public IP is assigned to the host.
  bool assign_public_ip = 9;

  // Resources used by the host.
  SystemMetrics system = 10;

  // Name of the host group that the host belongs to.
  string node_group = 11;

  // Roles of the host.
  repeated OpenSearch.GroupRole roles = 12;
}

// Access policy for external services.
message Access {
  // Determines whether the access to Data Transfer is allowed.
  bool data_transfer = 1;

  // Determines whether the access to Serverless is allowed.
  bool serverless = 2;
}