diff options
author | iddqd <iddqd@yandex-team.com> | 2024-06-11 10:12:13 +0300 |
---|---|---|
committer | iddqd <iddqd@yandex-team.com> | 2024-06-11 10:22:43 +0300 |
commit | 07f57e35443ab7f09471caf2dbf1afbcced4d9f7 (patch) | |
tree | a4a7b66ead62e83fa988a2ec2ce6576311c1f4b1 /contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1 | |
parent | 6db3b8ca95e44179e48306a58656fb1f9317d9c3 (diff) | |
download | ydb-07f57e35443ab7f09471caf2dbf1afbcced4d9f7.tar.gz |
add contrib/python/yandexcloud to import
03b7d3cad2237366b55b393e18d4dc5eb222798c
Diffstat (limited to 'contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/greenplum/v1')
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"]; +} |