aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1
diff options
context:
space:
mode:
authoriddqd <iddqd@yandex-team.com>2024-06-11 10:12:13 +0300
committeriddqd <iddqd@yandex-team.com>2024-06-11 10:22:43 +0300
commit07f57e35443ab7f09471caf2dbf1afbcced4d9f7 (patch)
treea4a7b66ead62e83fa988a2ec2ce6576311c1f4b1 /contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1
parent6db3b8ca95e44179e48306a58656fb1f9317d9c3 (diff)
downloadydb-07f57e35443ab7f09471caf2dbf1afbcced4d9f7.tar.gz
add contrib/python/yandexcloud to import
03b7d3cad2237366b55b393e18d4dc5eb222798c
Diffstat (limited to 'contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1')
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/backup.proto56
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/backup_service.proto78
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/cluster.proto270
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/cluster_service.proto828
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/config.proto459
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/hba_rule.proto54
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/hba_rule_service.proto126
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/host.proto75
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/maintenance.proto72
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/pxf.proto167
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/pxf_service.proto92
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/resource_preset.proto44
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/resource_preset_service.proto61
13 files changed, 2382 insertions, 0 deletions
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/backup.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/backup.proto
new file mode 100644
index 0000000000..dd9d3b5f7f
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/backup.proto
@@ -0,0 +1,56 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+import "google/protobuf/timestamp.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";
+
+message Backup {
+ enum BackupMethod {
+ BACKUP_METHOD_UNSPECIFIED = 0;
+
+ // Base backup
+ BASE = 1;
+
+ // Delta (incremental) Greenplum backup
+ INCREMENTAL = 2;
+ }
+ enum BackupCreationType {
+ BACKUP_CREATION_TYPE_UNSPECIFIED = 0;
+
+ // Backup created by automated daily schedule
+ AUTOMATED = 1;
+
+ // Backup created by user request
+ MANUAL = 2;
+ }
+
+ // Required. ID of the backup.
+ string id = 1;
+
+ // ID of the folder that the backup belongs to.
+ string folder_id = 2;
+
+ // Time when the backup operation was completed.
+ google.protobuf.Timestamp created_at = 3;
+
+ // ID of the Greenplum® cluster that the backup was created for.
+ string source_cluster_id = 4;
+
+ // Time when the backup operation was started.
+ google.protobuf.Timestamp started_at = 5;
+
+ // Size of the backup in bytes.
+ int64 size = 6;
+
+ // How this backup was created (manual/automatic/etc...)
+ BackupCreationType type = 7;
+
+ // Method of backup creation
+ BackupMethod method = 8;
+
+ // Size of the journal associated with backup, in bytes
+ int64 journal_size = 9;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/backup_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/backup_service.proto
new file mode 100644
index 0000000000..bd753bb721
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/backup_service.proto
@@ -0,0 +1,78 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+import "google/api/annotations.proto";
+import "yandex/cloud/api/operation.proto";
+import "yandex/cloud/operation/operation.proto";
+import "yandex/cloud/validation.proto";
+import "yandex/cloud/mdb/greenplum/v1/backup.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 set of methods for managing backups.
+service BackupService {
+ // Returns the specified backup of Greenplum® cluster.
+ rpc Get (GetBackupRequest) returns (Backup) {
+ option (google.api.http) = { get: "/managed-greenplum/v1/backups/{backup_id}" };
+ }
+
+ // Returns the list of available backups for the specified Greenplum® cluster.
+ rpc List (ListBackupsRequest) returns (ListBackupsResponse) {
+ option (google.api.http) = { get: "/managed-greenplum/v1/backups" };
+ }
+
+ rpc Delete (DeleteBackupRequest) returns (operation.Operation) {
+ option (google.api.http) = { delete: "/managed-greenplum/v1/backups/{backup_id}" };
+ option (yandex.cloud.api.operation) = {
+ metadata: "DeleteBackupMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+}
+
+message GetBackupRequest {
+ // ID of the backup to return.
+ string backup_id = 1 [(required) = true];
+}
+
+message ListBackupsRequest {
+ // ID of the folder to list backups in.
+ //
+ string folder_id = 1 [(required) = true, (length) = "<=50"];
+
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns a [ListBackupsResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ //
+ // Default value is 100.
+ int64 page_size = 2 [(value) = "0-1000"];
+
+ // The page token. To get the next page of results, set [page_token] to the [ListBackupsResponse.next_page_token] returned by the previous list request.
+ string page_token = 3 [(length) = "<=100"];
+}
+
+message ListBackupsResponse {
+ // Requested list of backups.
+ repeated Backup backups = 1;
+
+ // This token allows you to get the next page of results for a list request.
+ //
+ // If the number of results is larger than [ListBackupsRequest.page_size] specified in the request, use the [next_page_token] as the value for the [ListBackupsRequest.page_token] parameter in the next list request.
+ //
+ // Each subsequent ListBackups request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2;
+}
+
+message DeleteBackupRequest {
+ // Required. ID of the backup to delete.
+ string backup_id = 1 [(required) = true];
+}
+
+message DeleteBackupMetadata {
+ // Required. ID of the Greenplum backup that is currently being deleted.
+ string backup_id = 1;
+ // ID of the Greenplum backup that is being deleted.
+ string cluster_id = 2 [(length) = "<=50"];
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/cluster.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/cluster.proto
new file mode 100644
index 0000000000..db2a162359
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/cluster.proto
@@ -0,0 +1,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;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/cluster_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/cluster_service.proto
new file mode 100644
index 0000000000..53fbc7d20b
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/cluster_service.proto
@@ -0,0 +1,828 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/timestamp.proto";
+import "yandex/cloud/api/operation.proto";
+import "yandex/cloud/mdb/greenplum/v1/backup.proto";
+import "yandex/cloud/mdb/greenplum/v1/cluster.proto";
+import "yandex/cloud/mdb/greenplum/v1/config.proto";
+import "yandex/cloud/mdb/greenplum/v1/host.proto";
+import "yandex/cloud/mdb/greenplum/v1/maintenance.proto";
+import "yandex/cloud/mdb/greenplum/v1/pxf.proto";
+import "yandex/cloud/operation/operation.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 set of methods for managing Greenplum® clusters.
+service ClusterService {
+ // Returns the specified Greenplum® cluster.
+ //
+ // To get the list of all available Greenplum® clusters, make a [List] request.
+ rpc Get(GetClusterRequest) returns (Cluster) {
+ option (google.api.http) = {get: "/managed-greenplum/v1/clusters/{cluster_id}"};
+ }
+
+ // Retrieves a list of Greenplum® clusters that belong to the specified folder.
+ rpc List(ListClustersRequest) returns (ListClustersResponse) {
+ option (google.api.http) = {get: "/managed-greenplum/v1/clusters"};
+ }
+
+ // Creates a Greenplum® cluster in the specified folder.
+ rpc Create(CreateClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ post: "/managed-greenplum/v1/clusters"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "CreateClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Updates the specified Greenplum® cluster.
+ rpc Update(UpdateClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ patch: "/managed-greenplum/v1/clusters/{cluster_id}"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "UpdateClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Expands the specified Greenplum® cluster.
+ rpc Expand(ExpandRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ post: "/managed-greenplum/v1/clusters/{cluster_id}/expand"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "AddClusterHostsMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Deletes the specified Greenplum® cluster.
+ rpc Delete(DeleteClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {delete: "/managed-greenplum/v1/clusters/{cluster_id}"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "DeleteClusterMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Starts the specified Greenplum® cluster.
+ rpc Start(StartClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {post: "/managed-greenplum/v1/clusters/{cluster_id}:start"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "StartClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Stops the specified Greenplum® cluster.
+ rpc Stop(StopClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {post: "/managed-greenplum/v1/clusters/{cluster_id}:stop"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "StopClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Retrieves the list of Operation resources for the specified cluster.
+ rpc ListOperations(ListClusterOperationsRequest) returns (ListClusterOperationsResponse) {
+ option (google.api.http) = {get: "/managed-greenplum/v1/clusters/{cluster_id}/operations"};
+ }
+
+ // Retrieves a list of master hosts for the specified cluster.
+ rpc ListMasterHosts(ListClusterHostsRequest) returns (ListClusterHostsResponse) {
+ option (google.api.http) = {get: "/managed-greenplum/v1/clusters/{cluster_id}/master-hosts"};
+ }
+
+ // Retrieves a list of segment hosts for the specified cluster.
+ rpc ListSegmentHosts(ListClusterHostsRequest) returns (ListClusterHostsResponse) {
+ option (google.api.http) = {get: "/managed-greenplum/v1/clusters/{cluster_id}/segment-hosts"};
+ }
+
+ // Retrieves logs for the specified Greenplum® cluster.
+ rpc ListLogs(ListClusterLogsRequest) returns (ListClusterLogsResponse) {
+ option (google.api.http) = {get: "/managed-greenplum/v1/clusters/{cluster_id}:logs"};
+ }
+
+ // Same as [ListLogs] but using server-side streaming. Also allows for `tail -f` semantics.
+ rpc StreamLogs(StreamClusterLogsRequest) returns (stream StreamLogRecord) {
+ option (google.api.http) = {get: "/managed-greenplum/v1/clusters/{cluster_id}:stream_logs"};
+ }
+
+ // Retrieves a list of available backups for the specified Greenplum® cluster.
+ rpc ListBackups(ListClusterBackupsRequest) returns (ListClusterBackupsResponse) {
+ option (google.api.http) = {get: "/managed-greenplum/v1/clusters/{cluster_id}/backups"};
+ }
+
+ // Creates a backup for the specified Greenplum cluster.
+ rpc Backup(BackupClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {post: "/managed-greenplum/v1/clusters/{cluster_id}:backup"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "BackupClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Creates a new Greenplum® cluster using the specified backup.
+ rpc Restore(RestoreClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ post: "/managed-greenplum/v1/clusters:restore"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "RestoreClusterMetadata"
+ response: "Cluster"
+ };
+ }
+}
+
+message GetClusterRequest {
+ // ID of the Greenplum® cluster resource to return.
+ //
+ // To get the cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message ListClustersRequest {
+ // ID of the folder to list Greenplum® clusters in.
+ //
+ // To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
+ string folder_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns a [ListClustersResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ int64 page_size = 2 [(value) = "<=1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token] returned by the previous list request.
+ string page_token = 3 [(length) = "<=100"];
+
+ // A filter expression that filters resources listed in the response.
+ //
+ // The expression must specify:
+ //
+ // 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
+ //
+ // 2. An `=` operator.
+ //
+ // 3. The value in double quotes (`"`). Must be 1-63 characters long and match the regular expression `[a-zA-Z0-9_-]+`.
+ string filter = 4 [(length) = "<=1000"];
+}
+
+message ListClustersResponse {
+ // List of Greenplum® cluster resources.
+ repeated Cluster clusters = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value for the [ListClustersRequest.page_token] parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2;
+}
+
+message CreateClusterRequest {
+ reserved 18;
+ // ID of the folder to create the Greenplum® cluster in.
+ string folder_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Name of the Greenplum® cluster. The name must be unique within the folder.
+ string name = 2 [
+ (required) = true,
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+
+ // Description of the Greenplum® cluster.
+ string description = 3 [(length) = "<=256"];
+
+ // Custom labels for the Greenplum® cluster as `key:value` pairs.
+ // For example, `"project":"mvp"` or `"source":"dictionary"`.
+ map<string, string> labels = 4 [
+ (yandex.cloud.size) = "<=64",
+ (length) = "<=63",
+ (pattern) = "[-_0-9a-z]*",
+ (map_key).length = "<=63",
+ (map_key).pattern = "[a-z][-_0-9a-z]*"
+ ];
+
+ // Deployment environment of the Greenplum® cluster.
+ Cluster.Environment environment = 5 [(required) = true];
+
+ // Greenplum® cluster configuration.
+ GreenplumConfig config = 6;
+
+ // Configuration of the Greenplum® master subcluster.
+ MasterSubclusterConfigSpec master_config = 7;
+
+ // Configuration of the Greenplum® segment subcluster.
+ SegmentSubclusterConfigSpec segment_config = 8;
+
+ // Number of hosts in the master subcluster.
+ int64 master_host_count = 9;
+
+ // Number of segments per host.
+ int64 segment_in_host = 10;
+
+ // Number of hosts in the segment subcluster.
+ int64 segment_host_count = 11;
+
+ // Owner user name.
+ string user_name = 12 [(required) = true];
+
+ // Owner user password.
+ string user_password = 13 [
+ (required) = true,
+ (length) = "8-128"
+ ];
+
+ // ID of the network to create the cluster in.
+ string network_id = 14 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // User security groups.
+ repeated string security_group_ids = 15;
+
+ // Determines whether the cluster is protected from being deleted.
+ bool deletion_protection = 16;
+
+ // Host groups to place VMs of the cluster in.
+ repeated string host_group_ids = 17;
+
+ // A Greenplum® cluster maintenance window. Should be defined by either one of the two options.
+ MaintenanceWindow maintenance_window = 19;
+
+ // Configuration of Greenplum® and Odyssey®.
+ ConfigSpec config_spec = 20;
+
+ // Cloud storage settings
+ CloudStorage cloud_storage = 21;
+}
+
+// Configuration of Greenplum® and Odyssey®.
+
+message ConfigSpec {
+ reserved 7;
+ oneof greenplum_config {
+ GreenplumConfig6_17 greenplum_config_6_17 = 1 [json_name = "greenplumConfig_6_17"];
+ GreenplumConfig6_19 greenplum_config_6_19 = 2 [json_name = "greenplumConfig_6_19"];
+ GreenplumConfig6_21 greenplum_config_6_21 = 4 [json_name = "greenplumConfig_6_21"];
+ GreenplumConfig6_22 greenplum_config_6_22 = 5 [json_name = "greenplumConfig_6_22"];
+ GreenplumConfig6 greenplum_config_6 = 9 [json_name = "greenplumConfig_6"];
+ }
+
+ // Odyssey® pool settings.
+ ConnectionPoolerConfig pool = 3;
+
+ BackgroundActivitiesConfig background_activities = 6;
+
+ PXFConfig pxf_config = 8;
+}
+
+message CreateClusterMetadata {
+ // ID of the Greenplum® cluster that is being created.
+ string cluster_id = 1;
+}
+
+message UpdateClusterRequest {
+ reserved 14;
+ reserved 16;
+ reserved 9 to 12;
+ // ID of the Greenplum® cluster resource to update.
+ // To get the Greenplum® cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Field mask that specifies which fields of the Greenplum® cluster resource should be updated.
+ google.protobuf.FieldMask update_mask = 2;
+
+ // New description of the Greenplum® cluster.
+ string description = 3 [(length) = "<=256"];
+
+ // Custom labels for the Greenplum® cluster as `key:value` pairs.
+ // For example, `"project":"mvp"` or `"source":"dictionary"`.
+ //
+ // The new set of labels completely replaces the old one.
+ // To add a label, request the current set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
+ map<string, string> labels = 4 [
+ (yandex.cloud.size) = "<=64",
+ (length) = "<=63",
+ (pattern) = "[-_0-9a-z]*",
+ (map_key).length = "<=63",
+ (map_key).pattern = "[a-z][-_0-9a-z]*"
+ ];
+
+ // New name for the cluster.
+ string name = 5 [
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+
+ // The Greenplum® cluster configuration.
+ GreenplumConfig config = 6;
+
+ // Configuration of the Greenplum® master subcluster.
+ MasterSubclusterConfigSpec master_config = 7;
+
+ // Configuration of the Greenplum® segment subcluster.
+ SegmentSubclusterConfigSpec segment_config = 8;
+
+ // Owner user password.
+ string user_password = 13 [
+ (required) = true,
+ (length) = "8-128"
+ ];
+
+ // The Greenplum® cluster maintenance window. Should be defined by either one of the two options.
+ MaintenanceWindow maintenance_window = 15;
+
+ // User security groups.
+ repeated string security_group_ids = 17;
+
+ // Determines whether the cluster is protected from being deleted.
+ bool deletion_protection = 18;
+
+ // Settings of the Greenplum® cluster.
+ ConfigSpec config_spec = 19;
+
+ // Cloud storage settings
+ CloudStorage cloud_storage = 20;
+}
+
+message UpdateClusterMetadata {
+ // ID of the Greenplum® cluster resource that is being updated.
+ string cluster_id = 1;
+}
+
+message AddClusterHostsMetadata {
+ // ID of the Greenplum Cluster resource that is being updated.
+ string cluster_id = 1;
+}
+
+message ExpandRequest {
+ // ID of the Greenplum Cluster resource to update.
+ // To get the Greenplum cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Number of hosts for add to the segment subcluster
+ int64 segment_host_count = 2;
+
+ // Number of segments per host to add
+ int64 add_segments_per_host_count = 3;
+
+ // Redistribute duration, in seconds
+ int64 duration = 4;
+}
+
+message DeleteClusterRequest {
+ // ID of the Greenplum® cluster to delete.
+ // To get the Greenplum® cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message DeleteClusterMetadata {
+ // ID of the Greenplum® cluster that is being deleted.
+ string cluster_id = 1;
+}
+
+message StartClusterRequest {
+ // ID of the Greenplum® cluster to start.
+ // To get the Greenplum® cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message StartClusterMetadata {
+ // ID of the Greenplum® cluster being started.
+ string cluster_id = 1;
+}
+
+message StopClusterRequest {
+ // ID of the Greenplum® cluster to stop.
+ // To get the Greenplum® cluster ID, use a [ClusterService.List] request.
+ //
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message StopClusterMetadata {
+ // ID of the Greenplum® cluster being stopped.
+ string cluster_id = 1;
+}
+
+message ListClusterOperationsRequest {
+ // ID of the Greenplum® cluster resource to list operations for.
+ //
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns a [ListClusterOperationsResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ //
+ int64 page_size = 2 [(value) = "<=1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the [ListClusterOperationsResponse.next_page_token] returned by the previous list request.
+ //
+ string page_token = 3 [(length) = "<=100"];
+}
+
+message ListClusterOperationsResponse {
+ // List of Operation resources for the specified Greenplum® cluster.
+ repeated operation.Operation operations = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListClusterOperationsRequest.page_size], use the [next_page_token] as the value for the [ListClusterOperationsRequest.page_token] query parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2;
+}
+
+message ListClusterHostsRequest {
+ // ID of the Greenplum® cluster.
+ //
+ // To get the Greenplum® cluster ID use a [ClusterService.List] request.
+ //
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns a [ListClusterHostsResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ //
+ int64 page_size = 2 [(value) = "<=1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the [ListClusterHostsResponse.next_page_token] returned by the previous list request.
+ //
+ string page_token = 3 [(length) = "<=100"];
+}
+
+message ListClusterHostsResponse {
+ // Requested list of hosts for the cluster.
+ repeated Host hosts = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListClusterHostsRequest.page_size], use the [next_page_token] as the value for the [ListClusterHostsRequest.page_token] query parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2;
+}
+
+// Configuration of the master subcluster.
+
+message MasterSubclusterConfigSpec {
+ // Resources allocated to Greenplum® master subcluster hosts.
+ Resources resources = 1;
+}
+
+// Configuration of the segment subcluster.
+
+message SegmentSubclusterConfigSpec {
+ // Resources allocated to Greenplum® segment subcluster hosts.
+ Resources resources = 1;
+}
+
+message ListClusterLogsResponse {
+ // Requested log records.
+ repeated LogRecord logs = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListClusterLogsRequest.page_size], use the [next_page_token] as the value for the [ListClusterLogsRequest.page_token] query parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ //
+ // This value is interchangeable with the [StreamLogRecord.next_record_token] from [StreamLogs] method.
+ string next_page_token = 2;
+}
+
+message LogRecord {
+ // Time when the log was recorded.
+ google.protobuf.Timestamp timestamp = 1;
+
+ // Contents of the log record.
+ map<string, string> message = 2;
+}
+
+message ListClusterLogsRequest {
+ // ID of the Greenplum® cluster to request logs for.
+ //
+ // To get the Greenplum® cluster ID, use a [ClusterService.List] request.
+ //
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Columns from log table to request.
+ // If no columns are specified, entire log records are returned.
+ repeated string column_filter = 2;
+
+ // Type of the service to request logs about.
+ ServiceType service_type = 3;
+
+ enum ServiceType {
+ // Type is not specified.
+ SERVICE_TYPE_UNSPECIFIED = 0;
+
+ // Greenplum® activity logs.
+ GREENPLUM = 1;
+
+ // Greenplum® pooler logs.
+ GREENPLUM_POOLER = 2;
+
+ // Greenplum® PXF service logs.
+ GREENPLUM_PXF = 3;
+ }
+
+ // Start timestamp for the logs request.
+ google.protobuf.Timestamp from_time = 4;
+
+ // End timestamp for the logs request.
+ google.protobuf.Timestamp to_time = 5;
+
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns a [ListClusterLogsResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ //
+ int64 page_size = 6 [(value) = "<=1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the [ListClusterLogsResponse.next_page_token] returned by the previous list request.
+ //
+ string page_token = 7 [(length) = "<=100"];
+
+ // The service always returns a [ListClusterLogsResponse.next_page_token], even if the current page is empty.
+ bool always_next_page_token = 8;
+
+ // A filter expression that filters resources listed in the response.
+ //
+ // The expression must specify:
+ //
+ // 1. A field name. Currently filtering can be applied to the [LogRecord.logs.message.hostname], [LogRecord.logs.message.error_severity] (for `GREENPLUM` service) and [LogRecord.logs.message.level] (for `GREENPLUM_POOLER` service) fields.
+ //
+ // 2. A conditional operator. Can be either `=` or `!=` for single values, `IN` or `NOT IN` for lists of values.
+ //
+ // 3. A value. Must be 1-63 characters long and match the regular expression `^[a-z0-9.-]{1,61}$`.
+ //
+ // Examples of a filter:
+ // * `message.hostname='node1.db.cloud.yandex.net'`;
+ // * `message.error_severity IN ("ERROR", "FATAL", "PANIC") AND message.hostname = "node1.db.cloud.yandex.net"`.
+ //
+ string filter = 9 [(length) = "<=1000"];
+}
+
+message ListClusterBackupsRequest {
+ // ID of the Greenplum® cluster.
+ //
+ // To get the Greenplum® cluster ID use a [ClusterService.List] request.
+ //
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // The maximum number of results per page to return.
+ //
+ //If the number of available results is larger than [page_size], the service returns a [ListClusterBackupsResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ //
+ int64 page_size = 2 [(value) = "<=1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the [ListClusterBackupsResponse.next_page_token] returned by the previous list request.
+ //
+ string page_token = 3 [(length) = "<=100"];
+}
+
+message StreamLogRecord {
+ // One of the requested log records.
+ LogRecord record = 1;
+
+ // This token allows you to continue streaming logs starting from the exact same record.
+ //
+ // To do that, specify value of [next_record_token] as the value for [StreamLogs.record_token] parameter in the next [StreamLogs] request.
+ //
+ // This value is interchangeable with [ListLogs.next_page_token] from [ListLogs] method.
+ string next_record_token = 2;
+}
+
+message StreamClusterLogsRequest {
+ // ID of the Greenplum® cluster.
+ //
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Columns from log table to get in the response.
+ // If no columns are specified, entire log records are returned.
+ repeated string column_filter = 2;
+
+ // Type of the service to request logs about.
+ ServiceType service_type = 3;
+
+ enum ServiceType {
+ // Type is not specified.
+ SERVICE_TYPE_UNSPECIFIED = 0;
+
+ // Greenplum® activity logs.
+ GREENPLUM = 1;
+
+ // Greenplum® pooler logs.
+ GREENPLUM_POOLER = 2;
+
+ // Greenplum® PXF service logs.
+ GREENPLUM_PXF = 3;
+ }
+
+ // Start timestamp for the logs request.
+ google.protobuf.Timestamp from_time = 4;
+
+ // End timestamp for the logs request.
+ //
+ // If this field is not set, all existing logs are sent as well as the new ones as they appear.
+ //
+ // In essence it has `tail -f` semantics.
+ //
+ google.protobuf.Timestamp to_time = 5;
+
+ // Record token. Set [record_token] to the [StreamLogs.next_record_token] returned by the previous [StreamLogs] request to start streaming from the next log record.
+ //
+ string record_token = 6 [(length) = "<=100"];
+
+ // A filter expression that filters resources listed in the response.
+ //
+ // The expression must specify:
+ //
+ // 1. A field name. Currently filtering can be applied to the [LogRecord.logs.message.hostname], [LogRecord.logs.message.error_severity] (for GREENPLUM service), [LogRecord.logs.message.level] (for POOLER service) fields.
+ //
+ // 2. An `=` operator.
+ //
+ // 3. A value in double quotes (`"`). Must be 1-63 characters long and match the regular expression `[a-z0-9.-]{1,61}`.
+ //
+ // Examples of a filter:
+ //
+ // * `message.hostname='node1.db.cloud.yandex.net'`;
+ // * `message.error_severity IN ("ERROR", "FATAL", "PANIC") AND message.hostname = "node1.db.cloud.yandex.net"`.
+ //
+ string filter = 7 [(length) = "<=1000"];
+}
+
+message ListClusterBackupsResponse {
+ // List of Greenplum® backups.
+ repeated Backup backups = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListClusterBackupsRequest.page_size], use the [next_page_token] as the value for the [ListClusterBackupsRequest.page_token] query parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2;
+}
+
+message BackupClusterRequest {
+ // ID of the Greenplum cluster to back up.
+ // To get the Greenplum cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message BackupClusterMetadata {
+ // ID of the Greenplum cluster to back up.
+ string cluster_id = 1;
+ string backup_id = 2;
+}
+
+message RestoreClusterRequest {
+ // ID of the backup to create a cluster from.
+ //
+ // To get the backup ID, use a [ClusterService.ListBackups] request.
+ string backup_id = 1 [(required) = true];
+
+ // Timestamp of the moment to which the Greenplum cluster should be restored.
+ google.protobuf.Timestamp time = 16;
+
+ // ID of the folder to create the Greenplum® cluster in.
+ //
+ string folder_id = 2 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Name of the Greenplum® cluster. The name must be unique within the folder.
+ //
+ string name = 3 [
+ (required) = true,
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+
+ // Description of the Greenplum® cluster.
+ string description = 4 [(length) = "<=256"];
+
+ // Custom labels for the Greenplum® cluster as `key:value` pairs.
+ // For example, "project":"mvp" or "source":"dictionary".
+ //
+ map<string, string> labels = 5 [
+ (yandex.cloud.size) = "<=64",
+ (length) = "<=63",
+ (pattern) = "[-_0-9a-z]*",
+ (map_key).length = "<=63",
+ (map_key).pattern = "[a-z][-_0-9a-z]*"
+ ];
+
+ // Deployment environment of the Greenplum® cluster.
+ Cluster.Environment environment = 6 [(required) = true];
+
+ // Greenplum® cluster config.
+ GreenplumRestoreConfig config = 7;
+
+ // Resources of the Greenplum® master subcluster.
+ Resources master_resources = 8;
+
+ // Resources of the Greenplum® segment subcluster.
+ Resources segment_resources = 9;
+
+ // ID of the network to create the cluster in.
+ //
+ string network_id = 10 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // User security groups.
+ repeated string security_group_ids = 11;
+
+ // Determines whether the cluster is protected from being deleted.
+ bool deletion_protection = 12;
+
+ // Host groups to place VMs of cluster on.
+ repeated string host_group_ids = 13;
+
+ // ID of the placement group.
+ string placement_group_id = 14;
+
+ // A Greenplum® cluster maintenance window. Should be defined by either one of the two options.
+ MaintenanceWindow maintenance_window = 15;
+
+ // Number of segment hosts
+ int64 segment_host_count = 17;
+
+ // Number of segments on each host
+ int64 segment_in_host = 18;
+
+ // List of databases and tables to restore
+ repeated string restore_only = 19 [
+ (size) = "<=50",
+ (length) = "<=256",
+ (pattern) = "[a-zA-Z0-9\\*_]*(\\/[a-zA-Z0-9\\*_]*){0,2}"
+ ];
+}
+
+message RestoreClusterMetadata {
+ // ID of the new Greenplum® cluster that is being created from a backup.
+ string cluster_id = 1;
+
+ // ID of the backup that is being used for creating a cluster.
+ string backup_id = 2;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/config.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/config.proto
new file mode 100644
index 0000000000..b6b1e06f26
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/config.proto
@@ -0,0 +1,459 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+import "google/protobuf/wrappers.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 list of computational resources allocated to a host.
+
+message Resources {
+
+ // ID of the preset for computational resources allocated to a host.
+ //
+ // Available presets are listed in the [documentation](/docs/managed-greenplum/concepts/instance-types).
+ 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;
+}
+
+// Route server configuration.
+
+message ConnectionPoolerConfig {
+
+ // Route server pool mode.
+
+ enum PoolMode {
+ POOL_MODE_UNSPECIFIED = 0;
+
+ // Assign server connection to a client until it disconnects. Default value.
+ SESSION = 1;
+
+ // Assign server connection to a client for a transaction processing.
+ TRANSACTION = 2;
+ }
+
+ // Route server pool mode.
+ PoolMode mode = 1;
+
+ // The number of servers in the server pool. Clients are placed in a wait queue when all servers are busy.
+ //
+ // Set to zero to disable the limit.
+ google.protobuf.Int64Value size = 2;
+
+ // Server pool idle timeout, in seconds.
+ //
+ // A server connection closes after being idle for the specified time.
+ //
+ // Set to zero to disable the limit.
+ google.protobuf.Int64Value client_idle_timeout = 3;
+}
+
+message BackgroundActivityStartAt {
+ int64 hours = 1 [(value) = "0-23"];
+ int64 minutes = 2 [(value) = "0-59"];
+}
+
+message TableSizes {
+ repeated BackgroundActivityStartAt starts = 1 [(size) = "<=4"];
+}
+
+message AnalyzeAndVacuum {
+ BackgroundActivityStartAt start = 1;
+ // Maximum duration of the `ANALYZE` operation, in seconds. The default value is `36000`. As soon as this period expires, the `ANALYZE` operation will be forced to terminate.
+ google.protobuf.Int64Value analyze_timeout = 2[(value) = "7200-86399"];
+ // Maximum duration of the `VACUUM` operation, in seconds. The default value is `36000`. As soon as this period expires, the `VACUUM` operation will be forced to terminate.
+ google.protobuf.Int64Value vacuum_timeout = 3[(value) = "7200-86399"];
+}
+
+message BackgroundActivitiesConfig {
+ TableSizes table_sizes = 1;
+ AnalyzeAndVacuum analyze_and_vacuum = 2;
+}
+
+// Configuration of the master subcluster.
+
+message MasterSubclusterConfig {
+
+ // Computational resources allocated to Greenplum® master subcluster hosts.
+ Resources resources = 1;
+}
+
+// Configuration of the segment subcluster.
+
+message SegmentSubclusterConfig {
+
+ // Computational resources allocated to Greenplum® segment subcluster hosts.
+ Resources resources = 1;
+}
+
+enum LogStatement {
+ LOG_STATEMENT_UNSPECIFIED = 0;
+
+ // None statements are logged.
+ NONE = 1;
+
+ // Logs all data definition commands like `CREATE`, `ALTER`, and `DROP`. Default value.
+ DDL = 2;
+
+ // Logs all `DDL` statements, plus `INSERT`, `UPDATE`, `DELETE`, `TRUNCATE`, and `COPY FROM`.
+ MOD = 3;
+
+ // Logs all statements.
+ ALL = 4;
+}
+
+message GreenplumConfig6 {
+ // Maximum number of inbound connections on master segment
+ google.protobuf.Int64Value max_connections = 1;
+
+ // Specify the maximum size of WAL files that replication slots are allowed to retain in the pg_wal directory at checkpoint time.
+ // https://www.postgresql.org/docs/current/runtime-config-replication.html
+ google.protobuf.Int64Value max_slot_wal_keep_size = 2;
+
+ // Sets the maximum total disk size that all running queries are allowed to use for creating temporary spill files at each segment.
+ // The default value is 0, which means a limit is not enforced.
+ // https://docs.greenplum.org/6-5/ref_guide/config_params/guc-list.html#gp_workfile_limit_per_segment
+ google.protobuf.Int64Value gp_workfile_limit_per_segment = 3;
+
+ // Sets the maximum disk size an individual query is allowed to use for creating temporary spill files at each segment.
+ // The default value is 0, which means a limit is not enforced.
+ // https://docs.greenplum.org/6-5/ref_guide/config_params/guc-list.html#gp_workfile_limit_per_query
+ google.protobuf.Int64Value gp_workfile_limit_per_query = 4;
+
+ // Sets the maximum number of temporary spill files (also known as workfiles) allowed per query per segment.
+ // Spill files are created when executing a query that requires more memory than it is allocated.
+ // The current query is terminated when the limit is exceeded.
+ // Set the value to 0 (zero) to allow an unlimited number of spill files. master session reload
+ // https://docs.greenplum.org/6-5/ref_guide/config_params/guc-list.html#gp_workfile_limit_files_per_query
+ // Default value is 10000
+ google.protobuf.Int64Value gp_workfile_limit_files_per_query = 5;
+
+ // Sets the maximum number of transactions that can be in the "prepared" state simultaneously
+ // https://www.postgresql.org/docs/9.6/runtime-config-resource.html
+ google.protobuf.Int64Value max_prepared_transactions = 6;
+
+ // Specifies whether the temporary files created, when a hash aggregation or hash join operation spills to disk, are compressed.
+ // https://docs.greenplum.org/6-5/ref_guide/config_params/guc-list.html#gp_workfile_compression
+ google.protobuf.BoolValue gp_workfile_compression = 7;
+
+ // Sets the maximum memory limit for a query. Helps avoid out-of-memory errors on a segment host during query processing as a result of setting statement_mem too high.
+ // Taking into account the configuration of a single segment host, calculate max_statement_mem as follows:
+ // (seghost_physical_memory) / (average_number_concurrent_queries)
+ // When changing both max_statement_mem and statement_mem, max_statement_mem must be changed first, or listed first in the postgresql.conf file.
+ // https://greenplum.docs.pivotal.io/6-19/ref_guide/config_params/guc-list.html#max_statement_mem
+ // Default value is 2097152000 (2000MB)
+ google.protobuf.Int64Value max_statement_mem = 8; // in bytes
+
+ // Controls which SQL statements are logged. DDL logs all data definition commands like CREATE, ALTER, and DROP commands.
+ // MOD logs all DDL statements, plus INSERT, UPDATE, DELETE, TRUNCATE, and COPY FROM.
+ // PREPARE and EXPLAIN ANALYZE statements are also logged if their contained command is of an appropriate type.
+ // https://docs.greenplum.org/6-5/ref_guide/config_params/guc-list.html#log_statement
+ // Default value is ddl
+ LogStatement log_statement = 9;
+
+ // https://docs.vmware.com/en/VMware-Tanzu-Greenplum/6/greenplum-database/GUID-ref_guide-config_params-guc-list.html#gp_add_column_inherits_table_setting
+ google.protobuf.BoolValue gp_add_column_inherits_table_setting = 10;
+}
+
+message GreenplumConfig6_17 {
+ // Maximum number of inbound connections on master segment.
+ google.protobuf.Int64Value max_connections = 1;
+
+ // The maximum size of WAL files that replication slots are allowed to retain in the `pg_wal` directory at checkpoint time.
+ //
+ // More info in [PostgreSQL® documentation](https://www.postgresql.org/docs/current/runtime-config-replication.html).
+ google.protobuf.Int64Value max_slot_wal_keep_size = 2;
+
+ // The maximum total disk size that all running queries are allowed to use for creating temporary spill files at each segment.
+ //
+ // The default value is 0 (no limit).
+ //
+ // More info in [Greenplum® documentation](https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_per_segment).
+ google.protobuf.Int64Value gp_workfile_limit_per_segment = 3;
+
+ // The maximum disk size that an individual query is allowed to use for creating temporary spill files at each segment.
+ //
+ // The default value is 0 (no limit).
+ //
+ // More info in [Greenplum® documentation](https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_per_query).
+ google.protobuf.Int64Value gp_workfile_limit_per_query = 4;
+
+ // The maximum number of temporary spill files allowed per query at each segment.
+ //
+ // Spill files, also known as workfiles, are created when a query requires more memory than there is allocated.
+ //
+ // The current query is terminated if the limit is exceeded.
+ //
+ // Set to zero to disable the limit.
+ //
+ // Master session reloads if the parameter changes.
+ //
+ // Default value is 10000.
+ //
+ // More info in [Greenplum® documentation](https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_files_per_query).
+ google.protobuf.Int64Value gp_workfile_limit_files_per_query = 5;
+
+ // The maximum number of transactions that can be in the `prepared` state simultaneously.
+ //
+ // More info in [PostgreSQL® documentation](https://www.postgresql.org/docs/9.6/runtime-config-resource.html).
+ google.protobuf.Int64Value max_prepared_transactions = 6;
+
+ // Whether the spill files are compressed or not.
+ //
+ // More info in [Greenplum® documentation](https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_compression).
+ google.protobuf.BoolValue gp_workfile_compression = 7;
+}
+
+message GreenplumConfig6_19 {
+ // Maximum number of inbound connections on master segment.
+ google.protobuf.Int64Value max_connections = 1;
+
+ // The maximum size of WAL files that replication slots are allowed to retain in the `pg_wal` directory at checkpoint time.
+ //
+ // More info in [PostgreSQL® documentation](https://www.postgresql.org/docs/current/runtime-config-replication.html).
+ google.protobuf.Int64Value max_slot_wal_keep_size = 2;
+
+ // The maximum total disk size that all running queries are allowed to use for creating temporary spill files at each segment.
+ //
+ // The default value is 0 (no limit).
+ //
+ // More info in [Greenplum® documentation](https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_per_segment).
+ google.protobuf.Int64Value gp_workfile_limit_per_segment = 3;
+
+ // The maximum disk size that an individual query is allowed to use for creating temporary spill files at each segment.
+ //
+ // The default value is 0 (no limit).
+ //
+ // More info in [Greenplum® documentation](https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_per_query).
+ google.protobuf.Int64Value gp_workfile_limit_per_query = 4;
+
+ // The maximum number of temporary spill files allowed per query at each segment.
+ //
+ // Spill files, also known as workfiles, are created when a query requires more memory than there is allocated.
+ //
+ // The current query is terminated if the limit is exceeded.
+ //
+ // Set to zero to disable the limit.
+ //
+ // Master session reloads if the parameter changes.
+ //
+ // Default value is 10000.
+ //
+ // More info in [Greenplum® documentation](https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_files_per_query).
+ google.protobuf.Int64Value gp_workfile_limit_files_per_query = 5;
+
+ // The maximum number of transactions that can be in the `prepared` state simultaneously.
+ //
+ // More info in [PostgreSQL® documentation](https://www.postgresql.org/docs/9.6/runtime-config-resource.html).
+ google.protobuf.Int64Value max_prepared_transactions = 6;
+
+ // Whether the spill files are compressed or not.
+ //
+ // More info in [Greenplum® documentation](https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_compression).
+ google.protobuf.BoolValue gp_workfile_compression = 7;
+
+ // The maximum memory limit for a query, in bytes.
+ //
+ // Helps to avoid out-of-memory errors on a segment host during query processing as a result of setting `statement_mem` too high.
+ //
+ // Taking into account the configuration of a single segment host, calculate [max_statement_mem] as follows: `seghost_physical_memory` / `average_number_concurrent_queries`.
+ //
+ // When changing both [max_statement_mem] and `statement_mem`, [max_statement_mem] must be changed first, or listed first in the `postgresql.conf` file.
+ //
+ // Default value is 2097152000 (2000 MB).
+ //
+ // More info in [Greenplum® documentation](https://greenplum.docs.pivotal.io/6-19/ref_guide/config_params/guc-list.html#max_statement_mem).
+ google.protobuf.Int64Value max_statement_mem = 8; // in bytes
+
+ // Logged SQL statements.
+ //
+ // `PREPARE` and `EXPLAIN ANALYZE` statements are also logged if their contained command belongs to an appropriate type.
+ //
+ // More info in [Greenplum® documentation](https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#log_statement).
+ //
+ LogStatement log_statement = 9;
+}
+
+message GreenplumConfig6_21 {
+ // Maximum number of inbound connections on master segment
+ google.protobuf.Int64Value max_connections = 1;
+
+ // Specify the maximum size of WAL files that replication slots are allowed to retain in the pg_wal directory at checkpoint time.
+ // https://www.postgresql.org/docs/current/runtime-config-replication.html
+ google.protobuf.Int64Value max_slot_wal_keep_size = 2;
+
+ // Sets the maximum total disk size that all running queries are allowed to use for creating temporary spill files at each segment.
+ // The default value is 0, which means a limit is not enforced.
+ // https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_per_segment
+ google.protobuf.Int64Value gp_workfile_limit_per_segment = 3;
+
+ // Sets the maximum disk size an individual query is allowed to use for creating temporary spill files at each segment.
+ // The default value is 0, which means a limit is not enforced.
+ // https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_per_query
+ google.protobuf.Int64Value gp_workfile_limit_per_query = 4;
+
+ // Sets the maximum number of temporary spill files (also known as workfiles) allowed per query per segment.
+ // Spill files are created when executing a query that requires more memory than it is allocated.
+ // The current query is terminated when the limit is exceeded.
+ // Set the value to 0 (zero) to allow an unlimited number of spill files. master session reload
+ // https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_files_per_query
+ // Default value is 10000
+ google.protobuf.Int64Value gp_workfile_limit_files_per_query = 5;
+
+ // Sets the maximum number of transactions that can be in the "prepared" state simultaneously
+ // https://www.postgresql.org/docs/9.6/runtime-config-resource.html
+ google.protobuf.Int64Value max_prepared_transactions = 6;
+
+ // Specifies whether the temporary files created, when a hash aggregation or hash join operation spills to disk, are compressed.
+ // https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_compression
+ google.protobuf.BoolValue gp_workfile_compression = 7;
+
+ // Sets the maximum memory limit for a query. Helps avoid out-of-memory errors on a segment host during query processing as a result of setting statement_mem too high.
+ // Taking into account the configuration of a single segment host, calculate max_statement_mem as follows:
+ // (seghost_physical_memory) / (average_number_concurrent_queries)
+ // When changing both max_statement_mem and statement_mem, max_statement_mem must be changed first, or listed first in the postgresql.conf file.
+ // https://greenplum.docs.pivotal.io/6-19/ref_guide/config_params/guc-list.html#max_statement_mem
+ // Default value is 2097152000 (2000MB)
+ google.protobuf.Int64Value max_statement_mem = 8; // in bytes
+
+ // Controls which SQL statements are logged. DDL logs all data definition commands like CREATE, ALTER, and DROP commands.
+ // MOD logs all DDL statements, plus INSERT, UPDATE, DELETE, TRUNCATE, and COPY FROM.
+ // PREPARE and EXPLAIN ANALYZE statements are also logged if their contained command is of an appropriate type.
+ // https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#log_statement
+ // Default value is ddl
+ LogStatement log_statement = 9;
+
+ // https://docs.vmware.com/en/VMware-Tanzu-Greenplum/6/greenplum-database/GUID-ref_guide-config_params-guc-list.html#gp_add_column_inherits_table_setting
+ google.protobuf.BoolValue gp_add_column_inherits_table_setting = 10;
+}
+
+message GreenplumConfig6_22 {
+ // Maximum number of inbound connections on master segment
+ google.protobuf.Int64Value max_connections = 1;
+
+ // Specify the maximum size of WAL files that replication slots are allowed to retain in the pg_wal directory at checkpoint time.
+ // https://www.postgresql.org/docs/current/runtime-config-replication.html
+ google.protobuf.Int64Value max_slot_wal_keep_size = 2;
+
+ // Sets the maximum total disk size that all running queries are allowed to use for creating temporary spill files at each segment.
+ // The default value is 0, which means a limit is not enforced.
+ // https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_per_segment
+ google.protobuf.Int64Value gp_workfile_limit_per_segment = 3;
+
+ // Sets the maximum disk size an individual query is allowed to use for creating temporary spill files at each segment.
+ // The default value is 0, which means a limit is not enforced.
+ // https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_per_query
+ google.protobuf.Int64Value gp_workfile_limit_per_query = 4;
+
+ // Sets the maximum number of temporary spill files (also known as workfiles) allowed per query per segment.
+ // Spill files are created when executing a query that requires more memory than it is allocated.
+ // The current query is terminated when the limit is exceeded.
+ // Set the value to 0 (zero) to allow an unlimited number of spill files. master session reload
+ // https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_limit_files_per_query
+ // Default value is 10000
+ google.protobuf.Int64Value gp_workfile_limit_files_per_query = 5;
+
+ // Sets the maximum number of transactions that can be in the "prepared" state simultaneously
+ // https://www.postgresql.org/docs/9.6/runtime-config-resource.html
+ google.protobuf.Int64Value max_prepared_transactions = 6;
+
+ // Specifies whether the temporary files created, when a hash aggregation or hash join operation spills to disk, are compressed.
+ // https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#gp_workfile_compression
+ google.protobuf.BoolValue gp_workfile_compression = 7;
+
+ // Sets the maximum memory limit for a query. Helps avoid out-of-memory errors on a segment host during query processing as a result of setting statement_mem too high.
+ // Taking into account the configuration of a single segment host, calculate max_statement_mem as follows:
+ // (seghost_physical_memory) / (average_number_concurrent_queries)
+ // When changing both max_statement_mem and statement_mem, max_statement_mem must be changed first, or listed first in the postgresql.conf file.
+ // https://greenplum.docs.pivotal.io/6-19/ref_guide/config_params/guc-list.html#max_statement_mem
+ // Default value is 2097152000 (2000MB)
+ google.protobuf.Int64Value max_statement_mem = 8; // in bytes
+
+ // Controls which SQL statements are logged. DDL logs all data definition commands like CREATE, ALTER, and DROP commands.
+ // MOD logs all DDL statements, plus INSERT, UPDATE, DELETE, TRUNCATE, and COPY FROM.
+ // PREPARE and EXPLAIN ANALYZE statements are also logged if their contained command is of an appropriate type.
+ // https://docs.vmware.com/en/VMware-Greenplum/6/greenplum-database/ref_guide-config_params-guc-list.html#log_statement
+ // Default value is ddl
+ LogStatement log_statement = 9;
+
+ // https://docs.vmware.com/en/VMware-Tanzu-Greenplum/6/greenplum-database/GUID-ref_guide-config_params-guc-list.html#gp_add_column_inherits_table_setting
+ google.protobuf.BoolValue gp_add_column_inherits_table_setting = 10;
+}
+
+// Configuration settings version 6.17
+message GreenplumConfigSet6_17 {
+ // Effective settings for a Greenplum® cluster (a combination of settings defined in [user_config] and [default_config]).
+ GreenplumConfig6_17 effective_config = 1 [(required) = true];
+
+ // User-defined settings for a Greenplum® cluster.
+ GreenplumConfig6_17 user_config = 2;
+
+ // Default configuration for a Greenplum® cluster.
+ GreenplumConfig6_17 default_config = 3;
+}
+
+// Configuration settings version 6.19
+message GreenplumConfigSet6_19 {
+ // Effective settings for a Greenplum® cluster (a combination of settings defined in [user_config] and [default_config]).
+ GreenplumConfig6_19 effective_config = 1 [(required) = true];
+
+ // User-defined settings for a Greenplum® cluster.
+ GreenplumConfig6_19 user_config = 2;
+
+ // Default configuration for a Greenplum® cluster.
+ GreenplumConfig6_19 default_config = 3;
+}
+
+message GreenplumConfigSet6_21 {
+ // Effective settings for a Greenplum® cluster (a combination of settings defined in [user_config] and [default_config]).
+ GreenplumConfig6_21 effective_config = 1 [(required) = true];
+
+ // User-defined settings for a Greenplum® cluster.
+ GreenplumConfig6_21 user_config = 2;
+
+ // Default configuration for a Greenplum® cluster.
+ GreenplumConfig6_21 default_config = 3;
+}
+
+message GreenplumConfigSet6_22 {
+ // Effective settings for a Greenplum® cluster (a combination of settings defined in [user_config] and [default_config]).
+ GreenplumConfig6_22 effective_config = 1 [(required) = true];
+
+ // User-defined settings for a Greenplum® cluster.
+ GreenplumConfig6_22 user_config = 2;
+
+ // Default configuration for a Greenplum® cluster.
+ GreenplumConfig6_22 default_config = 3;
+}
+
+message GreenplumConfigSet6 {
+ // Effective settings for a Greenplum (a combination of settings defined
+ // in [user_config] and [default_config]).
+ GreenplumConfig6 effective_config = 1 [(required) = true];
+
+ // User-defined settings for a Greenplum.
+ GreenplumConfig6 user_config = 2;
+
+ // Default configuration for a Greenplum.
+ GreenplumConfig6 default_config = 3;
+}
+
+message ConnectionPoolerConfigSet {
+ // Effective settings for an Odyssey® pooler (a combination of settings defined in [ConnectionPoolerConfigSet.user_config] and [ConnectionPoolerConfigSet.default_config]).
+ ConnectionPoolerConfig effective_config = 1 [(required) = true];
+
+ // User-defined settings for an Odyssey® pooler.
+ ConnectionPoolerConfig user_config = 2;
+
+ // Default configuration for an Odyssey® pooler.
+ ConnectionPoolerConfig default_config = 3;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/hba_rule.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/hba_rule.proto
new file mode 100644
index 0000000000..ea30fd688f
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/hba_rule.proto
@@ -0,0 +1,54 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+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";
+
+message HBARule {
+ enum ConnectionType {
+ CONNECTION_TYPE_UNSPECIFIED = 0;
+
+ // Matches connection attempts made using TCP/IP.
+ HOST = 1;
+
+ // Matches connection attempts made using TCP/IP, but only when the connection is made with SSL encryption.
+ HOSTSSL = 2;
+
+ // Matches connection attempts made over TCP/IP that do not use SSL.
+ HOSTNOSSL = 3;
+ }
+
+ enum AuthMethod {
+ AUTH_METHOD_UNSPECIFIED = 0;
+
+ // Perform SCRAM-SHA-256 or MD5 authentication to verify the user's password.
+ MD5 = 1;
+
+ // Perform LDAP authentication, if MDB_GREENPLUM_LDAP flag is set
+ LDAP = 2;
+
+ // Disable authentication
+ REJECT = 3;
+ }
+
+ // Priority of the Greenplum cluster rule.
+ int64 priority = 1 [(value) = "0-1000"];
+
+ ConnectionType connection_type = 2;
+
+ // Specifies which database names this record matches.
+ string database = 3 [(required) = true];
+
+ // Specifies which database role names this user matches.
+ string user = 4 [(required) = true];
+
+ // Specifies the client machine addresses that this record matches.
+ string address = 5 [(required) = true];
+
+ // Specifies the authentication method to use when a connection matches this record.
+ // https://gpdb.docs.pivotal.io/6-6/security-guide/topics/Authenticate.html
+ AuthMethod auth_method = 6;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/hba_rule_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/hba_rule_service.proto
new file mode 100644
index 0000000000..e526c134cf
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/hba_rule_service.proto
@@ -0,0 +1,126 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+import "google/api/annotations.proto";
+
+import "yandex/cloud/api/operation.proto";
+import "yandex/cloud/operation/operation.proto";
+import "yandex/cloud/validation.proto";
+
+import "yandex/cloud/mdb/greenplum/v1/hba_rule.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 set of methods for managing Greenplum clusters.
+service HBARuleService {
+
+ // Retrieves a list of HBA rules for Greenplum clusters.
+ rpc List (ListHBARulesRequest) returns (ListHBARulesResponse) {
+ option (google.api.http) = { get: "/managed-greenplum/v1/clusters/{cluster_id}/hbaRules" };
+ }
+
+ // Retrieves a list of HBA rules for Greenplum clusters for particular revision.
+ rpc ListAtRevision (ListHBARulesAtRevisionRequest) returns (ListHBARulesResponse) {
+ option (google.api.http) = { get: "/managed-greenplum/v1/clusters/{cluster_id}/hbaRules/atRevision" };
+ }
+
+ // Create single HBA rule for the specified Greenplum cluster to the end of HBA rules list.
+ rpc Create (CreateHBARuleRequest) returns (operation.Operation) {
+ option (google.api.http) = { post: "/managed-greenplum/v1/clusters/{cluster_id}/hbaRules" body: "*" };
+ option (yandex.cloud.api.operation) = {
+ metadata: "HBARulesMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Update specified HBA rule for the specified Greenplum cluster without changind it order.
+ rpc Update (UpdateHBARuleRequest) returns (operation.Operation) {
+ option (google.api.http) = { patch: "/managed-greenplum/v1/clusters/{cluster_id}/hbaRules" body: "*" };
+ option (yandex.cloud.api.operation) = {
+ metadata: "HBARulesMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Delete specified HBA rule for the specified Greenplum cluster.
+ rpc Delete (DeleteHBARuleRequest) returns (operation.Operation) {
+ option (google.api.http) = { delete: "/managed-greenplum/v1/clusters/{cluster_id}/hbaRule/{priority}" };
+ option (yandex.cloud.api.operation) = {
+ metadata: "HBARulesMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Modifies all HBA rules for the specified Greenplum cluster.
+ rpc BatchUpdate (BatchUpdateHBARulesRequest) returns (operation.Operation) {
+ option (google.api.http) = { post: "/managed-greenplum/v1/clusters/{cluster_id}/hbaRules:batchUpdate" body: "*" };
+ option (yandex.cloud.api.operation) = {
+ metadata: "HBARulesMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+}
+
+message CreateHBARuleRequest {
+ // ID of the Greenplum cluster.
+ // To get the Greenplum cluster ID use a [ClusterService.List] request.
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+
+ // New hba rule for the cluster.
+ HBARule hba_rule = 2 [(required) = true];
+}
+
+message UpdateHBARuleRequest {
+ // ID of the Greenplum cluster.
+ // To get the Greenplum cluster ID use a [ClusterService.List] request.
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+
+ // Updated hba rule for the cluster.
+ HBARule hba_rule = 2 [(required) = true];
+}
+
+message DeleteHBARuleRequest {
+ // ID of the Greenplum cluster.
+ // To get the Greenplum cluster ID use a [ClusterService.List] request.
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+
+ // Priority of the Greenplum cluster rule.
+ int64 priority = 2 [(value) = "0-1000"];
+}
+
+message ListHBARulesRequest {
+ // ID of the Greenplum cluster.
+ // To get the Greenplum cluster ID use a [ClusterService.List] request.
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+}
+
+message ListHBARulesAtRevisionRequest {
+ // ID of the Greenplum cluster.
+ // To get the Greenplum cluster ID use a [ClusterService.List] request.
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+
+ // Cluster revision
+ int64 revision = 2 [(value) = ">0"];
+}
+
+message ListHBARulesResponse {
+ // Requested list of hba rules for the cluster.
+ repeated HBARule hba_rules = 1;
+}
+
+message BatchUpdateHBARulesRequest {
+ // ID of the Greenplum cluster.
+ // To get the Greenplum cluster ID use a [ClusterService.List] request.
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+
+ // List of new hba rules for the cluster.
+ repeated HBARule hba_rules = 2 [(size) = ">0"];
+}
+
+message HBARulesMetadata {
+ // ID of the Greenplum cluster which HBA rules was affected.
+ string cluster_id = 1;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/host.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/host.proto
new file mode 100644
index 0000000000..2629dbcd76
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/host.proto
@@ -0,0 +1,75 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+
+import "yandex/cloud/mdb/greenplum/v1/config.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 host resource.
+message Host {
+ enum Type {
+
+ // Host type is not specified. Default value.
+ TYPE_UNSPECIFIED = 0;
+
+ // A Greenplum® master host.
+ MASTER = 1;
+
+ // A Greenplum® master replica host.
+ REPLICA = 2;
+
+ // A Greenplum® segment host.
+ SEGMENT = 3;
+ }
+
+ 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;
+
+ // One or more segments are not in the preferred role.
+ UNBALANCED = 4;
+ }
+
+ // Name of the Greenplum® 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) = true, (length) = "<=63"];
+
+ // ID of the Greenplum® cluster. The ID is assigned by the platform at creation time.
+ string cluster_id = 2;
+
+ // ID of the availability zone the Greenplum® host belongs to.
+ string zone_id = 3;
+
+ // Type of the host. If the field has default value, it is not returned in the response.
+ Type type = 4;
+
+ // Resources allocated to the Greenplum® host.
+ Resources resources = 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 = 7;
+
+ // Determines whether a public IP is assigned to the host.
+ bool assign_public_ip = 8;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/maintenance.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/maintenance.proto
new file mode 100644
index 0000000000..7a148abff5
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/maintenance.proto
@@ -0,0 +1,72 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+import "google/protobuf/timestamp.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 maintenance window. Should be defined by either one of the two options.
+
+message MaintenanceWindow {
+ oneof policy {
+ option (exactly_one) = true;
+
+ // An any-time maintenance window.
+ AnytimeMaintenanceWindow anytime = 1;
+
+ // A weekly maintenance window.
+ WeeklyMaintenanceWindow weekly_maintenance_window = 2;
+ }
+}
+
+// An any-time maintenance window.
+message AnytimeMaintenanceWindow {}
+
+// A weekly maintenance window.
+message WeeklyMaintenanceWindow {
+ enum WeekDay {
+ WEEK_DAY_UNSPECIFIED = 0;
+
+ // Monday
+ MON = 1;
+
+ // Tuesday
+ TUE = 2;
+
+ // Wednesday
+ WED = 3;
+
+ // Thursday
+ THU = 4;
+
+ // Friday
+ FRI = 5;
+
+ // Saturday
+ SAT = 6;
+
+ // Sunday
+ SUN = 7;
+ }
+
+ // Day of the week.
+ WeekDay day = 1;
+
+ // Hour of the day in the UTC timezone.
+ int64 hour = 2 [(value) = "1-24"];
+}
+
+// The operation to perform during maintenance.
+
+message MaintenanceOperation {
+
+ // The description of the operation.
+ string info = 1 [(length) = "<=256"];
+
+ // Delay time for the maintenance operation.
+ google.protobuf.Timestamp delayed_until = 2;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/pxf.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/pxf.proto
new file mode 100644
index 0000000000..ef3989c998
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/pxf.proto
@@ -0,0 +1,167 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+import "google/protobuf/wrappers.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";
+
+
+message PXFConfig {
+ // Connection
+ google.protobuf.Int64Value connection_timeout = 1 [(value) = "5-600"];
+ google.protobuf.Int64Value upload_timeout = 2 [(value) = "5-600"];
+
+ // Thread pool
+ google.protobuf.Int64Value max_threads = 3 [(value) = "1-1024"];
+ google.protobuf.BoolValue pool_allow_core_thread_timeout = 4;
+ google.protobuf.Int64Value pool_core_size = 5 [(value) = "1-1024"];
+ google.protobuf.Int64Value pool_queue_capacity = 6 [(value) = ">=0"];
+ google.protobuf.Int64Value pool_max_size = 7 [(value) = "1-1024"];
+
+ // JVM
+ google.protobuf.Int64Value xmx = 8[(value) = ">=64"];
+ google.protobuf.Int64Value xms = 9[(value) = ">=64"];
+}
+
+message PXFConfigSet {
+ PXFConfig effective_config = 1 [(required) = true];
+
+ // User-defined settings
+ PXFConfig user_config = 2;
+
+ // Default configuration
+ PXFConfig default_config = 3;
+}
+
+// Datasources API
+
+message PXFDatasourceS3 {
+ string access_key = 1 [(length) = "<=200"];
+ string secret_key = 2 [(length) = "<=200"];
+ google.protobuf.BoolValue fast_upload = 3;
+ string endpoint = 4 [(length) = "<=200", (pattern) = "(((s3|https?)://)?([a-z0-9]([a-z0-9-]*[a-z0-9])?[.])+[a-z]{2,})?"];
+}
+
+message PXFDatasourceJDBC {
+ // Matches jdbc.driver
+ string driver = 1 [(length) = "<=50"];
+ // Matches jdbc.url
+ string url = 2 [(length) = "<=1000"];
+
+ // Matches jdbc.user
+ string user = 3 [(length) = "<=200"];
+ // Matches jdbc.password
+ string password = 4 [(length) = "<=200"];
+
+ // Matches jdbc.statement.batchsize
+ google.protobuf.Int64Value statement_batch_size = 5 [(value) = "50-1000"];
+ // Matches jdbc.statement.fetchsize
+ google.protobuf.Int64Value statement_fetch_size = 6 [(value) = "50-10000"];
+ // Matches jdbc.statement.querytimeout
+ google.protobuf.Int64Value statement_query_timeout = 7 [(value) = "5-43200"];
+
+ // Matches jdbc.pool.enabled
+ google.protobuf.BoolValue pool_enabled = 8;
+ // Matches jdbc.pool.property.maximumpoolsize
+ google.protobuf.Int64Value pool_maximum_size = 9 [(value) = "1-200"];
+ // Matches jdbc.pool.property.connectiontimeout
+ google.protobuf.Int64Value pool_connection_timeout = 10 [(value) = "5000-600000"];
+ // Matches jdbc.pool.property.idletimeout
+ google.protobuf.Int64Value pool_idle_timeout = 11 [(value) = "5000-600000"];
+ // Matches jdbc.pool.property.minimumidle
+ google.protobuf.Int64Value pool_minimum_idle = 12 [(value) = "0-200"];
+}
+
+message PXFDatasourceCore {
+ string default_fs = 1 [(length) = "<=200"];
+ string security_auth_to_local = 2 [(length) = "<=1000"];
+}
+
+message PXFDatasourceKerberos {
+ google.protobuf.BoolValue enable = 1;
+ string primary = 2 [(length) = "<=128"];
+ string realm = 3 [(length) = "<=1000"];
+ repeated string kdc_servers = 4 [(size) = "<=200", (length) = "1-200"];
+ string admin_server = 5 [(length) = "<=128"];
+ string default_domain = 6 [(length) = "<=128"];
+ string keytab_base64 = 7 [(pattern) = "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$", (length) = "<=65536"];
+}
+
+message PXFDatasourceHDFSDfsNamenode {
+ string rpc_address = 1 [(length) = "<=1000"];
+ string service_rpc_address = 2 [(length) = "<=1000"];
+ string http_address = 3 [(length) = "<=1000"];
+ string https_address = 4 [(length) = "<=1000"];
+}
+
+message PXFDatasourceHDFSDfs {
+ google.protobuf.BoolValue ha_automatic_failover_enabled = 1;
+ google.protobuf.BoolValue block_access_token_enabled = 2;
+ google.protobuf.BoolValue use_datanode_hostname = 3;
+
+ map<string, PXFDatasourceHDFSDfsNamenode> namenodes = 4 [(size) = "<=10000"];
+
+ // Corresponds well-known HDFS client setting "dfs.nameservices" for this datasource
+ string nameservices = 5;
+}
+
+message PXFDatasourceHDFSYarnHaRm {
+ string resourcemanager_address = 1;
+ string resourcemanager_scheduler_address = 2;
+ string resourcemanager_resource_tracker_address = 3;
+ string resourcemanager_admin_address = 4;
+ string resourcemanager_webapp_address = 5;
+ string resourcemanager_webapp_https_address = 6;
+}
+
+message PXFDatasourceHDFSYarn {
+ google.protobuf.BoolValue resourcemanager_ha_enabled = 1;
+ google.protobuf.BoolValue resourcemanager_ha_auto_failover_enabled = 2;
+ google.protobuf.BoolValue resourcemanager_ha_auto_failover_embedded = 3;
+ string resourcemanager_cluster_id = 4 [(length) = "<=1000"];
+
+ map<string, PXFDatasourceHDFSYarnHaRm> ha_rm = 5 [(size) = "<=10000"];
+}
+
+message PXFDatasourceHDFS {
+ PXFDatasourceCore core = 1;
+ PXFDatasourceKerberos kerberos = 2;
+
+ google.protobuf.BoolValue user_impersonation = 3;
+ string username = 4 [(length) = "<=128"];
+ google.protobuf.Int64Value sasl_connection_retries = 5 [(value) = "1-50"];
+ repeated string zk_hosts = 6 [(size) = "<=200", (length) = "1-200"];
+
+ PXFDatasourceHDFSDfs dfs = 7;
+ PXFDatasourceHDFSYarn yarn = 8;
+}
+
+message PXFDatasourceHive {
+ PXFDatasourceCore core = 1;
+ PXFDatasourceKerberos kerberos = 2;
+
+ google.protobuf.BoolValue user_impersonation = 3;
+ string username = 4 [(length) = "<=128"];
+ google.protobuf.Int64Value sasl_connection_retries = 5 [(value) = "1-50"];
+ repeated string zk_hosts = 6 [(size) = "<=200", (length) = "1-200"];
+
+ google.protobuf.BoolValue ppd = 7;
+ repeated string metastore_uris = 8 [(size) = "<=200", (length) = "1-200"];
+ string metastore_kerberos_principal = 9 [(length) = "<=1000"];
+ string auth_kerberos_principal = 10 [(length) = "<=1000"];
+}
+
+message PXFDatasource {
+ string name = 1 [(required) = true, (length) = "3-200", (pattern) = "^[^\\|/*?.,;\"'<>]+$"];
+ oneof settings {
+ PXFDatasourceS3 s3 = 2;
+ PXFDatasourceJDBC jdbc = 3;
+ PXFDatasourceHDFS hdfs = 4;
+ PXFDatasourceHive hive = 5;
+ }
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/pxf_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/pxf_service.proto
new file mode 100644
index 0000000000..b7aa2826a3
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/pxf_service.proto
@@ -0,0 +1,92 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+
+import "yandex/cloud/api/operation.proto";
+import "yandex/cloud/validation.proto";
+import "yandex/cloud/operation/operation.proto";
+import "yandex/cloud/mdb/greenplum/v1/pxf.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";
+
+
+service PXFDatasourceService {
+ // List all PXF datasources
+ rpc List (ListPXFDatasourcesRequest) returns (ListPXFDatasourcesResponse) {
+ option (google.api.http) = { get: "/managed-greenplum/v1/clusters/{cluster_id}/pxf_datasources" };
+ }
+
+ // Creates PXF datasource
+ rpc Create (CreatePXFDatasourceRequest) returns (operation.Operation) {
+ option (google.api.http) = { post: "/managed-greenplum/v1/clusters/{cluster_id}/pxf_datasources" body: "*" };
+ option (yandex.cloud.api.operation) = {
+ metadata: "CreatePXFDatasourceMetadata"
+ response: "PXFDatasource"
+ };
+ }
+
+ // Update PXF datasource
+ rpc Update (UpdatePXFDatasourceRequest) returns (operation.Operation) {
+ option (google.api.http) = { patch: "/managed-greenplum/v1/clusters/{cluster_id}/pxf_datasources" body: "*" };
+ option (yandex.cloud.api.operation) = {
+ metadata: "UpdatePXFDatasourceMetadata"
+ response: "PXFDatasource"
+ };
+ }
+
+ // Delete PXF datasource
+ rpc Delete (DeletePXFDatasourceRequest) returns (operation.Operation) {
+ option (google.api.http) = { delete: "/managed-greenplum/v1/clusters/{cluster_id}/pxf_datasource/{datasource_name}"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "DeletePXFDatasourceMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+}
+
+message CreatePXFDatasourceMetadata {
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+ string datasource_name = 2 [(required) = true, (length) = "3-200", (pattern) = "^[^\\|/*?.,;\"'<>]+$"];
+}
+
+message UpdatePXFDatasourceMetadata {
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+ string datasource_name = 2 [(required) = true, (length) = "3-200", (pattern) = "^[^\\|/*?.,;\"'<>]+$"];
+}
+
+message DeletePXFDatasourceMetadata {
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+ string datasource_name = 2 [(required) = true, (length) = "3-200", (pattern) = "^[^\\|/*?.,;\"'<>]+$"];
+}
+
+
+// Datasources API
+
+message ListPXFDatasourcesRequest {
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+}
+
+message ListPXFDatasourcesResponse {
+ repeated PXFDatasource datasources = 1;
+}
+
+message CreatePXFDatasourceRequest {
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+ PXFDatasource datasource = 2;
+}
+
+message UpdatePXFDatasourceRequest {
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+ google.protobuf.FieldMask update_mask = 2;
+ PXFDatasource datasource = 3;
+}
+
+message DeletePXFDatasourceRequest {
+ string cluster_id = 1 [(required) = true, (length) = "<=50"];
+ string datasource_name = 2 [(required) = true, (length) = "3-200", (pattern) = "^[^\\|/*?.,;\"'<>]+$"];;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/resource_preset.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/resource_preset.proto
new file mode 100644
index 0000000000..9a6c324b69
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/resource_preset.proto
@@ -0,0 +1,44 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+
+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 preset of resources for hardware configuration of Greenplum® hosts.
+message ResourcePreset {
+ reserved 6 to 7;
+ enum Type {
+ TYPE_UNSPECIFIED = 0;
+
+ // Greenplum® master host.
+ MASTER = 1;
+ // Greenplum® segment host.
+ SEGMENT = 2;
+ }
+
+ // ID of the resource preset.
+ string id = 1;
+
+ // IDs of availability zones where the resource preset is available.
+ repeated string zone_ids = 2;
+
+ // IDs of availability disk types available in the resource preset.
+ repeated string disk_type_ids = 10;
+
+ // Number of CPU cores for a Greenplum® host created with the preset.
+ int64 cores = 3;
+
+ // RAM volume for a Greenplum® host created with the preset, in bytes.
+ int64 memory = 4;
+
+ // Host type.
+ Type type = 5;
+
+ // The number of hosts must be divisible by [host_count_divider].
+ int64 host_count_divider = 8;
+
+ // Maximum number of segments in segment host.
+ int64 max_segment_in_host_count = 9;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/resource_preset_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/resource_preset_service.proto
new file mode 100644
index 0000000000..118c03c6a3
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1/resource_preset_service.proto
@@ -0,0 +1,61 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.greenplum.v1;
+
+import "google/api/annotations.proto";
+import "yandex/cloud/validation.proto";
+import "yandex/cloud/mdb/greenplum/v1/resource_preset.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 set of methods for managing resource presets.
+service ResourcePresetService {
+ // Returns the specified resource preset.
+ //
+ // To get the list of available resource presets, make a [List] request.
+ rpc Get (GetResourcePresetRequest) returns (ResourcePreset) {
+ option (google.api.http) = { get: "/managed-greenplum/v1/resourcePresets/{resource_preset_id}" };
+ }
+
+ // Retrieves the list of available resource presets.
+ rpc List (ListResourcePresetsRequest) returns (ListResourcePresetsResponse) {
+ option (google.api.http) = { get: "/managed-greenplum/v1/resourcePresets" };
+ }
+}
+
+message GetResourcePresetRequest {
+ // ID of the resource preset to return.
+ //
+ // To get the resource preset ID, use a [ResourcePresetService.List] request.
+ string resource_preset_id = 1 [(required) = true];
+
+ // Required. ResourcePreset type - master or segment.
+ ResourcePreset.Type type = 2 [(required) = true];
+}
+
+message ListResourcePresetsRequest {
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns a [ListResourcePresetsResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ //
+ int64 page_size = 2 [(value) = "0-1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the [ListResourcePresetsResponse.next_page_token] returned by the previous list request.
+ string page_token = 3 [(length) = "<=100"];
+
+ // Required. ResourcePreset type - master or segment.
+ ResourcePreset.Type type = 4 [(required) = true];
+}
+
+message ListResourcePresetsResponse {
+ // List of resource presets.
+ repeated ResourcePreset resource_presets = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListResourcePresetsRequest.page_size], use the [next_page_token] as the value for the [ListResourcePresetsRequest.page_token] parameter in the next list request.
+ //
+ //Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2 [(length) = "<=100"];
+}