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

package yandex.cloud.mdb.greenplum.v1;

import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/type/timeofday.proto";
import "yandex/cloud/mdb/greenplum/v1/config.proto";
import "yandex/cloud/mdb/greenplum/v1/maintenance.proto";
import "yandex/cloud/mdb/greenplum/v1/pxf.proto";
import "yandex/cloud/validation.proto";

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

// A Greenplum® cluster resource.
message Cluster {
  reserved 25;
  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;

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

  // 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 Greenplum® cluster.
  // This ID is assigned by the platform at the moment of cluster creation.
  string id = 1;

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

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

  // Name of the Greenplum® cluster.
  // The name is unique within the folder.
  string name = 4 [
    (required) = true,
    (length) = "<=63"
  ];

  // Greenplum® cluster configuration.
  GreenplumConfig config = 5;

  // Description of the Greenplum® cluster.
  string description = 6 [(length) = "<=256"];

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

  // Deployment environment of the Greenplum® cluster.
  Environment environment = 8;

  // Description of monitoring systems relevant to the Greenplum® cluster.
  repeated Monitoring monitoring = 9;

  // Configuration of the Greenplum® master subcluster.
  MasterSubclusterConfig master_config = 10;

  // Configuration of the Greenplum® segment subcluster.
  SegmentSubclusterConfig segment_config = 11;

  // Number of hosts in the master subcluster.
  int64 master_host_count = 12;

  // Number of hosts in the segment subcluster.
  int64 segment_host_count = 13;

  // Number of segments per host.
  int64 segment_in_host = 14;

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

  // Aggregated cluster health.
  Health health = 16;

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

  // A Greenplum® cluster maintenance window. Should be defined by either one of the two options.
  MaintenanceWindow maintenance_window = 18;

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

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

  // Owner user name.
  string user_name = 21;

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

  // Host groups hosting VMs of the cluster.
  repeated string host_group_ids = 23;

  // Greenplum® and Odyssey® configuration.
  ClusterConfigSet cluster_config = 24;

  // Cloud storage settings
  CloudStorage cloud_storage = 26;
}

message ClusterConfigSet {
  reserved 7;
  oneof greenplum_config {
    GreenplumConfigSet6_17 greenplum_config_set_6_17 = 1 [json_name = "greenplumConfigSet_6_17"];
    GreenplumConfigSet6_19 greenplum_config_set_6_19 = 2 [json_name = "greenplumConfigSet_6_19"];
    GreenplumConfigSet6_21 greenplum_config_set_6_21 = 4 [json_name = "greenplumConfigSet_6_21"];
    GreenplumConfigSet6_22 greenplum_config_set_6_22 = 5 [json_name = "greenplumConfigSet_6_22"];
    GreenplumConfigSet6 greenplum_config_set_6 = 9 [json_name = "greenplumConfigSet_6"];
  }

  // Odyssey® pool settings.
  ConnectionPoolerConfigSet pool = 3;

  BackgroundActivitiesConfig background_activities = 6;

  PXFConfigSet pxf_config = 8;
}

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

// Greenplum® cluster configuration.

message GreenplumConfig {
  reserved 7 to 8;

  // Version of the Greenplum® server software.
  string version = 1;

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

  // Retention policy of automated backups.
  google.protobuf.Int64Value backup_retain_period_days = 9 [(value) = "1-60"];

  // Access policy for external services.
  Access access = 3;

  // ID of the availability zone the cluster belongs to.
  // To get a list of available zones, use the [yandex.cloud.compute.v1.ZoneService.List] request.
  string zone_id = 4 [(length) = "<=50"];

  // ID of the subnet the cluster belongs to. This subnet should be a part of the cloud network the cluster belongs to (see [Cluster.network_id]).
  string subnet_id = 5 [(length) = "<=50"];

  // Determines whether the cluster has a public IP address.
  //
  // After the cluster has been created, this setting cannot be changed.
  bool assign_public_ip = 6;
}

// Greenplum® cluster access options.

message Access {
  // Allows data export from the cluster to DataLens.
  bool data_lens = 1;

  // Allows SQL queries to the cluster databases from the management console.
  bool web_sql = 2;

  // Allows access for DataTransfer.
  bool data_transfer = 3;
}

message GreenplumRestoreConfig {
  // Time to start the daily backup, in the UTC timezone.
  google.type.TimeOfDay backup_window_start = 1;

  // Access policy for external services.
  Access access = 2;

  // ID of the availability zone where the host resides.
  //
  // To get a list of available zones, use the [yandex.cloud.compute.v1.ZoneService.List] request.
  string zone_id = 3 [(length) = "<=50"];

  // ID of the subnet that the host should belong to. This subnet should be a part of the network that the cluster belongs to.
  // The ID of the network is set in the field [Cluster.network_id].
  string subnet_id = 4 [(length) = "<=50"];

  // Determines whether the host should get a public IP address on creation.
  //
  // After a host has been created, this setting cannot be changed.
  //
  // To remove an assigned public IP, or to assign a public IP to a host without one, recreate the host with [assign_public_ip] set as needed.
  //
  // Possible values:
  // * `false` - do not assign a public IP to the master host.
  // * `true` - assign a public IP to the master host.
  bool assign_public_ip = 5;
}

message RestoreResources {
  // ID of the preset for computational resources available to a host (CPU, memory, etc.).
  string resource_preset_id = 1;

  // Volume of the storage available to a host.
  int64 disk_size = 2;
}

// Cloud Storage Settings
message CloudStorage {
  // enable Cloud Storage for cluster
  bool enable = 1;
}