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

package yandex.cloud.mdb.redis.v1;

import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/type/timeofday.proto";
import "yandex/cloud/mdb/redis/v1/config/redis.proto";
import "yandex/cloud/mdb/redis/v1/config/redis5_0.proto";
import "yandex/cloud/mdb/redis/v1/config/redis6_0.proto";
import "yandex/cloud/mdb/redis/v1/config/redis6_2.proto";
import "yandex/cloud/mdb/redis/v1/config/redis7_0.proto";
import "yandex/cloud/mdb/redis/v1/maintenance.proto";

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

// Description of a Redis cluster. For more information, see
// the Managed Service for Redis [documentation](/docs/managed-redis/concepts/).
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 {

    // Cluster is in unknown state (we have no data)
    HEALTH_UNKNOWN = 0;

    // Cluster is alive and well (all hosts are alive)
    ALIVE = 1;

    // Cluster is inoperable (it cannot perform any of its essential functions)
    DEAD = 2;

    // Cluster is partially alive (it can perform some of its essential functions)
    DEGRADED = 3;
  }

  enum Status {

    // Cluster status is unknown
    STATUS_UNKNOWN = 0;

    // Cluster is being created
    CREATING = 1;

    // Cluster is running
    RUNNING = 2;

    // Cluster failed
    ERROR = 3;

    // Cluster is being updated.
    UPDATING = 4;

    // Cluster is stopping.
    STOPPING = 5;

    // Cluster stopped.
    STOPPED = 6;

    // Cluster is starting.
    STARTING = 7;
  }

  enum PersistenceMode {
    ON = 0; // cluster persistence mode on
    OFF = 1; // cluster persistence mode off
  }

  // ID of the Redis cluster.
  // This ID is assigned by MDB at creation time.
  string id = 1;

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

  // Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  google.protobuf.Timestamp created_at = 3;

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

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

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

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

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

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

  string network_id = 10;

  // Aggregated cluster health.
  Health health = 11;

  // Cluster status.
  Status status = 12;

  // Redis cluster mode on/off.
  bool sharded = 13;

  // Maintenance window for the cluster.
  MaintenanceWindow maintenance_window = 14;

  // Planned maintenance operation to be started for the cluster within the nearest [maintenance_window].
  MaintenanceOperation planned_operation = 15;

  // User security groups
  repeated string security_group_ids = 16;

  // TLS port and functionality on\off
  bool tls_enabled = 17;

  // Deletion Protection inhibits deletion of the cluster
  bool deletion_protection = 18;

  // Persistence mode
  PersistenceMode persistence_mode = 19;

  // Enable FQDN instead of ip
  bool announce_hostnames = 20;
}

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 Redis cluster.
  string link = 3;
}

message ClusterConfig {
  // Version of Redis server software.
  string version = 1;

  // Configuration for Redis servers in the cluster.
  oneof redis_config {
    // Configuration of a Redis 5.0 server.
    config.RedisConfigSet5_0 redis_config_5_0 = 2 [json_name="redisConfig_5_0"];
    // Configuration of a Redis 6.0 server.
    config.RedisConfigSet6_0 redis_config_6_0 = 6 [json_name="redisConfig_6_0"];
    // Configuration of a Redis 6.2 server.
    config.RedisConfigSet6_2 redis_config_6_2 = 7 [json_name="redisConfig_6_2"];
    // Configuration of a Redis 7.0 server.
    config.RedisConfigSet7_0 redis_config_7_0 = 8 [json_name="redisConfig_7_0"];
  }

  // Resources allocated to Redis hosts.
  Resources resources = 3;

  // Time to start the daily backup, in the UTC timezone.
  google.type.TimeOfDay backup_window_start = 4;

  // Access policy to DB
  Access access = 5;

  // Unified configuration of a Redis cluster.
  config.RedisConfigSet redis = 9;
}

message Shard {
  // Name of the Redis shard. The shard name is assigned by user at creation time, and cannot be changed.
  // 1-63 characters long.
  string name = 1;

  // ID of the Redis cluster the shard belongs to. The ID is assigned by MDB at creation time.
  string cluster_id = 2;
}

message Host {

  enum Role {

    // Role of the host in the cluster is unknown. Default value.
    ROLE_UNKNOWN = 0;

    // Host is the master Redis server in the cluster.
    MASTER = 1;

    // Host is a replica (standby) Redis server in the cluster.
    REPLICA = 2;
  }

  enum Health {

    // Health of the host is unknown. Default value.
    HEALTH_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 degraded, and can perform only some of its essential functions.
    DEGRADED = 3;
  }

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

  // ID of the Redis cluster. The ID is assigned by MDB at creation time.
  string cluster_id = 2;

  // ID of the availability zone where the Redis host resides.
  string zone_id = 3;

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

  // Resources allocated to the Redis host.
  Resources resources = 5;

  // Role of the host in the cluster. If the field has default value, it is not returned in the response.
  Role role = 6;

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

  // Services provided by the host.
  repeated Service services = 8;

  string shard_name = 9;

  // A replica with a low priority number is considered better for promotion.
  // A replica with priority of 0 will never be selected by Redis Sentinel for promotion.
  // Works only for non-sharded clusters. Default value is 100.
  google.protobuf.Int64Value replica_priority = 10;

  // Flag showing public IP assignment status to this host.
  bool assign_public_ip = 11;
}

message Service {

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

    // The host is a Redis server.
    REDIS = 1;

    // The host provides a Sentinel-only service (a quorum node).
    ARBITER = 2;

    // The host is a Redis Cluster node.
    REDIS_CLUSTER = 3;
  }

  enum Health {

    // Health of the server is unknown. Default value.
    HEALTH_UNKNOWN = 0;

    // The server is working normally.
    ALIVE = 1;

    // The server is dead or unresponsive.
    DEAD = 2;
  }

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

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

message Resources {
  // ID of the preset for computational resources available to a host (CPU, memory etc.).
  // All available presets are listed in the [documentation](/docs/managed-redis/concepts/instance-types).
  string resource_preset_id = 1;

  // Volume of the storage available to a host, in bytes.
  int64 disk_size = 2;

  // Type of the storage environment for the host.
  // Possible values:
  // * network-ssd - network SSD drive,
  // * local-ssd - local SSD storage.
  string disk_type_id = 3;
}

message Access {
  // Allow access for DataLens
  bool data_lens = 1;
}