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/mysql/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/mysql/v1')
13 files changed, 3339 insertions, 0 deletions
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/backup.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/backup.proto new file mode 100644 index 0000000000..0e56cd6961 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/backup.proto @@ -0,0 +1,56 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1; + +import "yandex/cloud/validation.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// An object that represents MySQL backup. +// +// See [the documentation](/docs/managed-mysql/concepts/backup) for details. +message Backup { + enum BackupCreationType { + BACKUP_CREATION_TYPE_UNSPECIFIED = 0; + + // Backup created by automated daily schedule + AUTOMATED = 1; + + // Backup created by user request + MANUAL = 2; + } + enum BackupStatus { + BACKUP_STATUS_UNSPECIFIED = 0; + + // Backup is done + DONE = 1; + + // Backup is creating + CREATING = 2; + } + // ID of the backup. + string id = 1 [(required) = true]; + + // ID of the folder that the backup belongs to. + string folder_id = 2; + + // Creation timestamp (the time when the backup operation was completed). + google.protobuf.Timestamp created_at = 3; + + // ID of the cluster that the backup was created for. + string source_cluster_id = 4; + + // Start timestamp (the time when the backup operation was started). + google.protobuf.Timestamp started_at = 5; + + // Size of backup, in bytes + int64 size = 6; + + // How this backup was created (manual/automatic/etc...) + BackupCreationType type = 7; + + // Status of backup + BackupStatus status = 8; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/backup_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/backup_service.proto new file mode 100644 index 0000000000..e793fff6a1 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/backup_service.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1; + +import "google/api/annotations.proto"; +import "yandex/cloud/validation.proto"; +import "yandex/cloud/mdb/mysql/v1/backup.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// A set of methods for managing MySQL backups. +// +// See [the documentation](/docs/managed-mysql/operations/cluster-backups) for details. +service BackupService { + + // Retrieves information about the specified backup. + rpc Get (GetBackupRequest) returns (Backup) { + option (google.api.http) = { get: "/managed-mysql/v1/backups/{backup_id}" }; + } + + // Retrieves the list of backups in a folder. + // + // To list backups for an existing cluster, make a [ClusterService.ListBackups] request. + rpc List (ListBackupsRequest) returns (ListBackupsResponse) { + option (google.api.http) = { get: "/managed-mysql/v1/backups" }; + } +} + +message GetBackupRequest { + + // ID of the backup to return information about. + // + // To get this ID, make a [BackupService.List] request (lists all backups in a folder) or a [ClusterService.ListBackups] request (lists all backups for an existing cluster). + string backup_id = 1 [(required) = true]; +} + +message ListBackupsRequest { + + // ID of the folder to list backups in. + // + // To get this ID, make 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 API returns a [ListBackupsResponse.next_page_token] that can be used to get the next page of results in the subsequent [BackupService.List] requests. + int64 page_size = 2 [(value) = "<=1000"]; + + // Page token that can be used to iterate through multiple pages of results. + // + // To get the next page of results, set [page_token] to the [ListBackupsResponse.next_page_token] returned by the previous [BackupService.List] request. + string page_token = 3 [(length) = "<=100"]; +} + +message ListBackupsResponse { + + // List of backups. + repeated Backup backups = 1; + + // The token that can be used to get the next page of results. + // + // If the number of results is larger than [ListBackupsRequest.page_size], use the [next_page_token] as the value for the [ListBackupsRequest.page_token] in the subsequent [BackupService.List] request to iterate through multiple pages of results. + // + // Each of the subsequent [BackupService.List] requests should use the [next_page_token] value returned by the previous request to continue paging through the results. + string next_page_token = 2 [(length) = "<=100"]; +} + +message DeleteBackupRequest { + // Required. ID of the backup to delete. + string backup_id = 1 [(required) = true]; +} + +message DeleteBackupMetadata { + // Required. ID of the MySQL backup that is currently being deleted. + string backup_id = 1; + // ID of the MySQL backup that is being deleted. + string cluster_id = 2; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/cluster.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/cluster.proto new file mode 100644 index 0000000000..28021cb9e9 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/cluster.proto @@ -0,0 +1,327 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1; + +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; +import "google/type/timeofday.proto"; +import "yandex/cloud/validation.proto"; +import "yandex/cloud/mdb/mysql/v1/config/mysql5_7.proto"; +import "yandex/cloud/mdb/mysql/v1/config/mysql8_0.proto"; +import "yandex/cloud/mdb/mysql/v1/maintenance.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// An object that represents MySQL cluster. +// +// See [the documentation](/docs/managed-mysql/concepts) for details. +message Cluster { + enum Environment { + ENVIRONMENT_UNSPECIFIED = 0; + + // Environment for stable versions of your apps. + // A conservative update policy is in effect: only bug fixes are applied during regular maintenance. + PRODUCTION = 1; + + // Environment for testing, including the Managed Service for MySQL itself. + // This environment gets new features, improvements, and bug fixes in the first place, compared to the production environment. + // However, not every update ensures 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 alive and well ([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 degraded ([Host.health] for at least one host in the cluster is not `ALIVE`). + DEGRADED = 3; + } + + enum Status { + + // Cluster state is unknown. + STATUS_UNKNOWN = 0; + + // Cluster is being created. + CREATING = 1; + + // Cluster is running normally. + RUNNING = 2; + + // Cluster encountered a problem and cannot operate. + ERROR = 3; + + // Cluster is being updated. + UPDATING = 4; + + // Cluster is stopping. + STOPPING = 5; + + // Cluster is stopped. + STOPPED = 6; + + // Cluster is starting. + STARTING = 7; + } + + // ID of the cluster. + // + // This ID is assigned by the platform at the time of creation. + string id = 1; + + // ID of the folder that the cluster belongs to. + string folder_id = 2; + + // Creation timestamp of the cluster. + google.protobuf.Timestamp created_at = 3; + + // Name of the cluster. + string name = 4; + + // Description of the cluster. + string description = 5; + + // Custom labels for the cluster as `key:value` pairs. + map<string, string> labels = 6; + + // Deployment environment of the MySQL cluster. + Environment environment = 7; + + // Monitoring systems data that is relevant to the cluster. + repeated Monitoring monitoring = 8; + + // Configuration of the cluster. + ClusterConfig config = 9; + + // ID of the network that the cluster belongs to. + string network_id = 10; + + // Aggregated health of the cluster. + Health health = 11; + + // Current state of the cluster. + Status status = 12; + + // Maintenance window settings for the cluster. + MaintenanceWindow maintenance_window = 13; + + // Planned maintenance operation to be started for the cluster within the nearest [maintenance_window]. + MaintenanceOperation planned_operation = 14; + + // Effective list of security group IDs applied to the cluster. + repeated string security_group_ids = 15; + + // This option prevents unintended deletion of the cluster. + bool deletion_protection = 16; + + // Host groups hosting VMs of the cluster. + repeated string host_group_ids = 17; +} + +// Cluster-related monitoring system data. +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 cluster. + string link = 3; +} + +message ClusterConfig { + + // Version of MySQL used in the cluster. + string version = 1; + + // Cluster-wide MySQL configuration. + oneof mysql_config { + + // Configuration of a MySQL 5.7 server. + config.MysqlConfigSet5_7 mysql_config_5_7 = 2 [json_name="mysqlConfig_5_7"]; + + // Configuration of a MySQL 8.0 server. + config.MysqlConfigSet8_0 mysql_config_8_0 = 6 [json_name="mysqlConfig_8_0"]; + } + + // Resource preset for the cluster hosts. + Resources resources = 3; + + // Time to start the daily backup, in the UTC timezone. + google.type.TimeOfDay backup_window_start = 4; + + // Access policy for external services. + Access access = 5; + + // Configuration of the performance diagnostics service. + PerformanceDiagnostics performance_diagnostics = 7; + + // Retention policy of automated backups. + google.protobuf.Int64Value backup_retain_period_days = 8 [(value) = "7-60"]; +} + +message Host { + + enum Role { + + // Role of the host is unknown. Default value. + ROLE_UNKNOWN = 0; + + // Host is the master. + MASTER = 1; + + // Host is a replica. + REPLICA = 2; + } + + enum Health { + + // Health of the host is unknown. Default value. + HEALTH_UNKNOWN = 0; + + // Host is performing all its functions normally. + ALIVE = 1; + + // Host is inoperable, and cannot perform any of its essential functions. + DEAD = 2; + + // Host is degraded, and can perform only some of its essential functions. + DEGRADED = 3; + + // Host is alive, but in read-only mode. + READONLY = 4; + } + + // Name of the host. + // + // This name is assigned by the platform at the time of creation. + // The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host. + string name = 1; + + // ID of the cluster the host belongs to. + string cluster_id = 2; + + // ID of the availability zone where the host resides. + string zone_id = 3; + + // Resources allocated to the host. + Resources resources = 4; + + // Role of the host in the cluster. If the field has default value, it is not returned in the response. + Role role = 5; + + // Aggregated health of the host. If the field has default value, it is not returned in the response. + Health health = 6; + + // List of services provided by the host. + repeated Service services = 7; + + // ID of the subnet that the host belongs to. + string subnet_id = 8; + + // Flag that shows if public IP address is assigned to the host so that the host can be accessed from the internet. + bool assign_public_ip = 9; + + // Name of the host to be used as the replication source for cascading replication. + string replication_source = 10; + + // Host backup priority. + int64 backup_priority = 11 [(value) = "0-100"]; + + // Host master promotion priority. + int64 priority = 12 [(value) = "0-100"]; +} + + +message Service { + + enum Type { + // Service type of the host is unspecified. Default value. + TYPE_UNSPECIFIED = 0; + + // The host is a MySQL server. + MYSQL = 1; + } + + enum Health { + + // Health of the service is unknown. Default value. + HEALTH_UNKNOWN = 0; + + // The service is working normally. + ALIVE = 1; + + // The service is dead or unresponsive. + DEAD = 2; + + // The service is in read-only mode. + READONLY = 3; + } + + // Type of the service provided by the host. If the field has default value, it is not returned in the response. + Type type = 1; + + // Aggregated health of the service. If the field has default value, it is not returned in the response. + Health health = 2; +} + +// Cluster resource preset. +message Resources { + + // ID of the resource preset that defines available computational resources (vCPU, RAM, etc.) for a cluster host. + // + // All available presets are listed in [the documentation](/docs/managed-mysql/concepts/instance-types). + string resource_preset_id = 1; + + // Volume of the storage (for each cluster host, in bytes). + int64 disk_size = 2; + + // Type of the storage. + // + // Possible values: + // * `network-hdd` - standard network storage + // * `network-ssd` - fast network storage + // * `network-ssd-nonreplicated` - fast network nonreplicated storage + // * `local-ssd` - fast local storage. + // + // See [the documentation](/docs/managed-mysql/concepts/storage) for details. + string disk_type_id = 3; +} + +message Access { + + // Allows access from DataLens. + // + // See [the documentation](/docs/managed-mysql/operations/datalens-connect) for details. + bool data_lens = 1; + + // Allows SQL queries to the cluster databases from management console. + // + // See [the documentation](/docs/managed-mysql/operations/web-sql-query) for details. + bool web_sql = 2; + + // Allow access for DataTransfer. + bool data_transfer = 3; +} + +message PerformanceDiagnostics { + + // Flag that shows if performance statistics gathering is enabled for the cluster. + bool enabled = 1; + + // Interval (in seconds) for `my_session` sampling. + int64 sessions_sampling_interval = 2 [(value) = "1-86400"]; + + // Interval (in seconds) for `my_statements` sampling. + int64 statements_sampling_interval = 3 [(value) = "1-86400"]; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/cluster_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/cluster_service.proto new file mode 100644 index 0000000000..a61b6d622e --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/cluster_service.proto @@ -0,0 +1,989 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1; + +import "google/api/annotations.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; +import "google/type/timeofday.proto"; +import "yandex/cloud/api/operation.proto"; +import "yandex/cloud/mdb/mysql/v1/backup.proto"; +import "yandex/cloud/mdb/mysql/v1/cluster.proto"; +import "yandex/cloud/mdb/mysql/v1/config/mysql5_7.proto"; +import "yandex/cloud/mdb/mysql/v1/config/mysql8_0.proto"; +import "yandex/cloud/mdb/mysql/v1/database.proto"; +import "yandex/cloud/mdb/mysql/v1/maintenance.proto"; +import "yandex/cloud/mdb/mysql/v1/user.proto"; +import "yandex/cloud/operation/operation.proto"; +import "yandex/cloud/validation.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// A set of methods for managing MySQL clusters. +service ClusterService { + // Retrieves information about a cluster. + rpc Get(GetClusterRequest) returns (Cluster) { + option (google.api.http) = {get: "/managed-mysql/v1/clusters/{cluster_id}"}; + } + + // Retrieves the list of clusters in a folder. + rpc List(ListClustersRequest) returns (ListClustersResponse) { + option (google.api.http) = {get: "/managed-mysql/v1/clusters"}; + } + + // Creates a cluster in a folder. + rpc Create(CreateClusterRequest) returns (operation.Operation) { + option (google.api.http) = { + post: "/managed-mysql/v1/clusters" + body: "*" + }; + option (yandex.cloud.api.operation) = { + metadata: "CreateClusterMetadata" + response: "Cluster" + }; + } + + // Updates a cluster. + rpc Update(UpdateClusterRequest) returns (operation.Operation) { + option (google.api.http) = { + patch: "/managed-mysql/v1/clusters/{cluster_id}" + body: "*" + }; + option (yandex.cloud.api.operation) = { + metadata: "UpdateClusterMetadata" + response: "Cluster" + }; + } + + // Deletes a cluster. + rpc Delete(DeleteClusterRequest) returns (operation.Operation) { + option (google.api.http) = {delete: "/managed-mysql/v1/clusters/{cluster_id}"}; + option (yandex.cloud.api.operation) = { + metadata: "DeleteClusterMetadata" + response: "google.protobuf.Empty" + }; + } + + // Starts a cluster. + rpc Start(StartClusterRequest) returns (operation.Operation) { + option (google.api.http) = {post: "/managed-mysql/v1/clusters/{cluster_id}:start"}; + option (yandex.cloud.api.operation) = { + metadata: "StartClusterMetadata" + response: "Cluster" + }; + } + + // Stops a cluster. + rpc Stop(StopClusterRequest) returns (operation.Operation) { + option (google.api.http) = {post: "/managed-mysql/v1/clusters/{cluster_id}:stop"}; + option (yandex.cloud.api.operation) = { + metadata: "StopClusterMetadata" + response: "Cluster" + }; + } + + // Moves a cluster to a folder. + rpc Move(MoveClusterRequest) returns (operation.Operation) { + option (google.api.http) = { + post: "/managed-mysql/v1/clusters/{cluster_id}:move" + body: "*" + }; + option (yandex.cloud.api.operation) = { + metadata: "MoveClusterMetadata" + response: "Cluster" + }; + } + + // Creates a backup for a cluster. + // + // To get information about a backup, make a [BackupService.Get] request. + rpc Backup(BackupClusterRequest) returns (operation.Operation) { + option (google.api.http) = {post: "/managed-mysql/v1/clusters/{cluster_id}:backup"}; + option (yandex.cloud.api.operation) = { + metadata: "BackupClusterMetadata" + response: "Cluster" + }; + } + + // Restores a backup to a new cluster. + // + // See [the documentation](/docs/managed-mysql/concepts/backup) for details. + rpc Restore(RestoreClusterRequest) returns (operation.Operation) { + option (google.api.http) = { + post: "/managed-mysql/v1/clusters:restore" + body: "*" + }; + option (yandex.cloud.api.operation) = { + metadata: "RestoreClusterMetadata" + response: "Cluster" + }; + } + + // Reschedules planned maintenance operation. + rpc RescheduleMaintenance(RescheduleMaintenanceRequest) returns (operation.Operation) { + option (google.api.http) = { + post: "/managed-mysql/v1/clusters/{cluster_id}:rescheduleMaintenance" + body: "*" + }; + option (yandex.cloud.api.operation) = { + metadata: "RescheduleMaintenanceMetadata" + response: "Cluster" + }; + } + + // Starts a manual failover for a cluster. + rpc StartFailover(StartClusterFailoverRequest) returns (operation.Operation) { + option (google.api.http) = { + post: "/managed-mysql/v1/clusters/{cluster_id}:startFailover" + body: "*" + }; + option (yandex.cloud.api.operation) = { + metadata: "StartClusterFailoverMetadata" + response: "Cluster" + }; + } + + // Retrieves logs for a cluster. + // + // Alternatively, logs can be streamed using [StreamLogs]. + rpc ListLogs(ListClusterLogsRequest) returns (ListClusterLogsResponse) { + option (google.api.http) = {get: "/managed-mysql/v1/clusters/{cluster_id}:logs"}; + } + + // Retrieves a log stream for a cluster. + // + // This method is similar to [ListLogs], but uses server-side streaming, which allows for the `tail -f` command semantics. + rpc StreamLogs(StreamClusterLogsRequest) returns (stream StreamLogRecord) { + option (google.api.http) = {get: "/managed-mysql/v1/clusters/{cluster_id}:stream_logs"}; + } + + // Retrieves a list of operations for a cluster. + rpc ListOperations(ListClusterOperationsRequest) returns (ListClusterOperationsResponse) { + option (google.api.http) = {get: "/managed-mysql/v1/clusters/{cluster_id}/operations"}; + } + + // Retrieves a list of backups for a cluster. + // + // To list all backups in a folder, make a [BackupService.List] request. + rpc ListBackups(ListClusterBackupsRequest) returns (ListClusterBackupsResponse) { + option (google.api.http) = {get: "/managed-mysql/v1/clusters/{cluster_id}/backups"}; + } + + // Retrieves a list of hosts for a cluster. + rpc ListHosts(ListClusterHostsRequest) returns (ListClusterHostsResponse) { + option (google.api.http) = {get: "/managed-mysql/v1/clusters/{cluster_id}/hosts"}; + } + + // Adds new hosts in a cluster. + rpc AddHosts(AddClusterHostsRequest) returns (operation.Operation) { + option (google.api.http) = { + post: "/managed-mysql/v1/clusters/{cluster_id}/hosts:batchCreate" + body: "*" + }; + option (yandex.cloud.api.operation) = { + metadata: "AddClusterHostsMetadata" + response: "google.protobuf.Empty" + }; + } + + // Updates the specified hosts. + rpc UpdateHosts(UpdateClusterHostsRequest) returns (operation.Operation) { + option (google.api.http) = { + post: "/managed-mysql/v1/clusters/{cluster_id}/hosts:batchUpdate" + body: "*" + }; + option (yandex.cloud.api.operation) = { + metadata: "UpdateClusterHostsMetadata" + response: "google.protobuf.Empty" + }; + } + + // Deletes the specified hosts for a cluster. + rpc DeleteHosts(DeleteClusterHostsRequest) returns (operation.Operation) { + option (google.api.http) = { + post: "/managed-mysql/v1/clusters/{cluster_id}/hosts:batchDelete" + body: "*" + }; + option (yandex.cloud.api.operation) = { + metadata: "DeleteClusterHostsMetadata" + response: "google.protobuf.Empty" + }; + } +} + +message GetClusterRequest { + // ID of the cluster to return information about. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; +} + +message ListClustersRequest { + // ID of the folder to list clusters in. + // + // To get this ID, make 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 API returns a [ListClustersResponse.next_page_token] that can be used to get the next page of results in the subsequent [ClusterService.List] requests. + int64 page_size = 2 [(value) = "0-1000"]; + + // Page token that can be used to iterate through multiple pages of results. + // + // To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token] returned by the previous [ClusterService.List] request. + string page_token = 3 [(length) = "<=100"]; + + // A filter expression that selects clusters 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 clusters. + repeated Cluster clusters = 1; + + // The token that can be used to get the next page of results. + // + // If the number of results is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value for the [ListClustersRequest.page_token] in the subsequent [ClusterService.List] request to iterate through multiple pages of results. + // + // Each of the subsequent [ClusterService.List] requests should use the [next_page_token] value returned by the previous request to continue paging through the results. + string next_page_token = 2; +} + +message CreateClusterRequest { + // ID of the folder to create the cluster in. + // + // To get this ID, make a [yandex.cloud.resourcemanager.v1.FolderService.List] request. + string folder_id = 1 [ + (required) = true, + (length) = "<=50" + ]; + + // Name of the cluster. The name must be unique within the folder. + string name = 2 [ + (required) = true, + (length) = "<=63", + (pattern) = "[a-zA-Z0-9_-]*" + ]; + + // Description of the cluster. + string description = 3 [(length) = "<=256"]; + + // Custom labels for the cluster as `key:value` pairs. + map<string, string> labels = 4 [ + (yandex.cloud.size) = "<=64", + (length) = "<=63", + (pattern) = "[-_0-9a-z]*", + (map_key).length = "1-63", + (map_key).pattern = "[a-z][-_0-9a-z]*" + ]; + + // Deployment environment of the MySQL cluster. + Cluster.Environment environment = 5; + + // Configuration of the cluster. + ConfigSpec config_spec = 6; + + // Configuration of databases in the cluster. + repeated DatabaseSpec database_specs = 7; + + // Configuration of database users in the cluster. + repeated UserSpec user_specs = 8; + + // Configuration of hosts in the cluster. + repeated HostSpec host_specs = 9; + + // ID of the network to create the cluster in. + string network_id = 10 [(length) = "<=50"]; + + // List of security group IDs to apply to the cluster. + repeated string security_group_ids = 11; + + // This option prevents unintended deletion of the cluster. + bool deletion_protection = 12; + + // Host groups hosting VMs of the cluster. + repeated string host_group_ids = 13; +} + +message CreateClusterMetadata { + // ID of the cluster that is being created. + string cluster_id = 1; +} + +message UpdateClusterRequest { + // ID of the cluster to update. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; + + // Field mask that specifies which settings of the cluster should be updated. + google.protobuf.FieldMask update_mask = 2; + + // New description of the cluster. + string description = 3 [(length) = "<=256"]; + + // New set of custom labels for the cluster as `key:value` pairs. + // + // This set will completely replace the current one. + // To add a label, request the current label set with the [ClusterService.Get] request, then send an [ClusterService.Update] request with the new label added to the current set. + map<string, string> labels = 4 [ + (yandex.cloud.size) = "<=64", + (length) = "<=63", + (pattern) = "[-_0-9a-z]*", + (map_key).length = "1-63", + (map_key).pattern = "[a-z][-_0-9a-z]*" + ]; + + // New configuration of the cluster. + ConfigSpec config_spec = 5; + + // New name of the cluster. + string name = 6 [ + (length) = "<=63", + (pattern) = "[a-zA-Z0-9_-]*" + ]; + + // Configuration of a maintenance window in an MySQL cluster. + MaintenanceWindow maintenance_window = 7; + + // New list of security group IDs to apply to the cluster. + repeated string security_group_ids = 8; + + // This option prevents unintended deletion of the cluster. + bool deletion_protection = 9; + + // Host groups hosting VMs of the cluster. + //repeated string host_group_ids = 10; +} + +message UpdateClusterMetadata { + // ID of the cluster that is being updated. + string cluster_id = 1; +} + +message DeleteClusterRequest { + // ID of the cluster to delete. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; +} + +message DeleteClusterMetadata { + // ID of the cluster that is being deleted. + string cluster_id = 1; +} + +message BackupClusterRequest { + // ID of the cluster to back up. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; +} + +message BackupClusterMetadata { + // ID of the cluster that is being backed up. + string cluster_id = 1; + // ID of the MySQL backup that is created. + string backup_id = 2; +} + +message RestoreClusterRequest { + reserved 3; + + // ID of the backup to restore from. + // + // To get this ID, make a [BackupService.List] request (lists all backups in a folder) or a [ClusterService.ListBackups] request (lists all backups for an existing cluster). + string backup_id = 1 [(required) = true]; + + // Timestamp of the moment to which the MySQL cluster should be restored. + google.protobuf.Timestamp time = 2 [(required) = true]; + + // Name of the new MySQL cluster the backup will be restored to. The name must be unique within the folder. + string name = 4 [ + (required) = true, + (pattern) = "[a-zA-Z0-9_-]*" + ]; + + // Description of the new cluster. + string description = 5 [(length) = "<=256"]; + + // Custom labels for the new cluster as `key:value` pairs. + map<string, string> labels = 6 [ + (yandex.cloud.size) = "<=64", + (length) = "<=63", + (pattern) = "[-_0-9a-z]*", + (map_key).length = "1-63", + (map_key).pattern = "[a-z][-_0-9a-z]*" + ]; + + // Deployment environment of the new cluster. + Cluster.Environment environment = 7; + + // Configuration of the new cluster. + ConfigSpec config_spec = 8; + + // Configuration of hosts in the new cluster. + repeated HostSpec host_specs = 9; + + // ID of the network to create the new cluster in. + string network_id = 10 [(length) = "<=50"]; + + // ID of the folder to create the new cluster in. + string folder_id = 11 [(length) = "<=50"]; + + // List of security group IDs to apply to the new cluster. + repeated string security_group_ids = 12; + + // Deletion Protection inhibits deletion of the cluster + bool deletion_protection = 13; + + // Host groups hosting VMs of the cluster. + repeated string host_group_ids = 14; +} + +message RestoreClusterMetadata { + // ID of the new 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; +} + +message StartClusterFailoverRequest { + // ID of the cluster to start failover for. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; + + // Host name to switch master role to. + // If not provided, then the master role is switched to the most up-to-date replica host. + // + // To get this name, make a [ClusterService.ListHosts] request. + string host_name = 2 [(length) = "<=253"]; +} + +message StartClusterFailoverMetadata { + // ID of the cluster that is being failovered. + string cluster_id = 1; +} + +message RescheduleMaintenanceRequest { + // ID of the cluster to reschedule the maintenance operation for. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; + + enum RescheduleType { + RESCHEDULE_TYPE_UNSPECIFIED = 0; + + // Start the maintenance operation immediately. + IMMEDIATE = 1; + + // Start the maintenance operation within the next available maintenance window. + NEXT_AVAILABLE_WINDOW = 2; + + // Start the maintenance operation at the specific time. + SPECIFIC_TIME = 3; + } + + // The type of reschedule request. + RescheduleType reschedule_type = 2 [(required) = true]; + + // The time until which this maintenance operation should be delayed. + // The value should be ahead of the first time when the maintenance operation has been scheduled for no more than two weeks. + // The value can also point to the past moment of time if `IMMEDIATE` reschedule type is chosen. + google.protobuf.Timestamp delayed_until = 3; +} + +message RescheduleMaintenanceMetadata { + reserved 2 to 3; + + // ID of the cluster the maintenance operation is being rescheduled for. + string cluster_id = 1; + + // The time until which this maintenance operation is to be delayed. + google.protobuf.Timestamp delayed_until = 4; +} + +// A single log record. +message LogRecord { + // Timestamp of the log record. + google.protobuf.Timestamp timestamp = 1; + + // Contents of the log record. + map<string, string> message = 2; +} + +message ListClusterLogsRequest { + // ID of the cluster to request logs for. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; + + // Columns from the logs table to request. + // If no columns are specified, complete log records are returned. + repeated string column_filter = 2; + + // The log type. + ServiceType service_type = 3; + + enum ServiceType { + SERVICE_TYPE_UNSPECIFIED = 0; + + // MySQL error log. + MYSQL_ERROR = 1; + + // MySQL general query log. + MYSQL_GENERAL = 2; + + // MySQL slow query log. + MYSQL_SLOW_QUERY = 3; + + // MySQL audit log. + MYSQL_AUDIT = 4; + } + + // Start timestamp for the logs request. + // The logs in the response will be within [from_time] to [to_time] range. + google.protobuf.Timestamp from_time = 4; + + // End timestamp for the logs request. + // The logs in the response will be within [from_time] to [to_time] range. + 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 API returns a [ListClusterLogsResponse.next_page_token] that can be used to get the next page of results in the subsequent [ClusterService.ListLogs] requests. + int64 page_size = 6 [(value) = "0-1000"]; + + // Page token that can be used to iterate through multiple pages of results. + // + // To get the next page of results, set [page_token] to the [ListClusterLogsResponse.next_page_token] returned by the previous [ClusterService.ListLogs] request. + string page_token = 7 [(length) = "<=100"]; + + // Option that controls the behavior of result pagination. + // If it is set to `true`, then [ListClusterLogsResponse.next_page_token] will always be returned, even if the current page is empty. + bool always_next_page_token = 8; +} + +message ListClusterLogsResponse { + // Requested log records. + repeated LogRecord logs = 1; + + // The token that can be used to get the next page of results. + // + // If the number of results is larger than [ListClusterLogsRequest.page_size], use the [next_page_token] as the value for the [ListClusterLogsRequest.page_token] in the subsequent [ClusterService.ListLogs] request to iterate through multiple pages of results. + // + // Each of the subsequent [ClusterService.ListLogs] requests should use the [next_page_token] value returned by the previous request to continue paging through the results. + // + // This value is interchangeable with [StreamLogRecord.next_record_token] from [ClusterService.StreamLogs] method. + string next_page_token = 2; +} + +// A single log record in the logs stream. +message StreamLogRecord { + // One of the requested log records. + LogRecord record = 1; + + // The token that can be used to continue streaming logs starting from the exact same record. + // To continue streaming, specify value of [next_record_token] as the [StreamClusterLogsRequest.record_token] value in the next [ClusterService.StreamLogs] request. + // + // This value is interchangeable with [ListClusterLogsResponse.next_page_token] from [ClusterService.ListLogs] method. + string next_record_token = 2; +} + +message StreamClusterLogsRequest { + // ID of the cluster to stream logs for. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; + + // Columns from the logs table to request. + // If no columns are specified, complete log records are returned. + repeated string column_filter = 2; + + // The log type. + ServiceType service_type = 3; + + enum ServiceType { + SERVICE_TYPE_UNSPECIFIED = 0; + + // MySQL error log. + MYSQL_ERROR = 1; + + // MySQL general query log. + MYSQL_GENERAL = 2; + + // MySQL slow query log. + MYSQL_SLOW_QUERY = 3; + + // MySQL audit log. + MYSQL_AUDIT = 4; + } + + // 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 log records beginning from [from_time] will be returned first, and then the new records will be returned as they appear. + // + // In essence it has `tail -f` command semantics. + google.protobuf.Timestamp to_time = 5; + + // Record token that can be used to control logs streaming. + // + // Set [record_token] to the [StreamLogRecord.next_record_token], returned by the previous [ClusterService.StreamLogs] request to start streaming from the next log record. + string record_token = 6 [(length) = "<=100"]; + + // A filter expression that selects clusters logs listed in the response. + // + // The expression must specify: + // 1. The field name. Currently filtering can be applied to the [LogRecord.logs.hostname] field. + // 2. An `=` operator. + // 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z][-a-z0-9]{1,61}[a-z0-9]`. + // Examples of a filter: `message.hostname='node1.db.cloud.yandex.net'` + string filter = 7 [(length) = "<=1000"]; +} + +message ListClusterOperationsRequest { + // ID of the cluster to list operations for. + // + // To get this ID, make 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 API returns a [ListClusterOperationsResponse.next_page_token] that can be used to get the next page of results in the subsequent [ClusterService.ListOperations] requests. + int64 page_size = 2 [(value) = "0-1000"]; + + // Page token that can be used to iterate through multiple pages of results. + // + // To get the next page of results, set [page_token] to the [ListClusterOperationsResponse.next_page_token] returned by the previous [ClusterService.ListOperations] request. + string page_token = 3 [(length) = "<=100"]; +} + +message ListClusterOperationsResponse { + // List of operations in the cluster. + repeated operation.Operation operations = 1; + + // The token that can be used to get the next page of results. + // + // If the number of results is larger than [ListClusterOperationsRequest.page_size], use the [next_page_token] as the value for the [ListClusterOperationsRequest.page_token] in the subsequent [ClusterService.ListOperations] request to iterate through multiple pages of results. + // + // Each of the subsequent [ClusterService.ListOperations] requests should use the [next_page_token] value returned by the previous request to continue paging through the results. + string next_page_token = 2; +} + +message ListClusterBackupsRequest { + // ID of the cluster to list backups for. + // + // To get this ID, make 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 API returns a [ListClusterBackupsResponse.next_page_token] that can be used to get the next page of results in the subsequent [ClusterService.ListBackups] requests. + int64 page_size = 2 [(value) = "<=1000"]; + + // Page token that can be used to iterate through multiple pages of results. + // + // To get the next page of results, set [page_token] to the [ListClusterBackupsResponse.next_page_token] returned by the previous [ClusterService.ListBackups] request. + string page_token = 3 [(length) = "<=100"]; +} + +message ListClusterBackupsResponse { + // List of the cluster backups. + repeated Backup backups = 1; + + // The token that can be used to get the next page of results. + // + // If the number of results is larger than [ListClusterBackupsRequest.page_size], use the [next_page_token] as the value for the [ListClusterBackupsRequest.page_token] in the subsequent [ClusterService.ListBackups] request to iterate through multiple pages of results. + // + // Each of the subsequent [ClusterService.ListBackups] requests should use the [next_page_token] value returned by the previous request to continue paging through the results. + string next_page_token = 2; +} + +message ListClusterHostsRequest { + // ID of the cluster to list hosts for. + // + // To get this ID, make 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 API returns a [ListClusterHostsResponse.next_page_token] that can be used to get the next page of results in the subsequent [ClusterService.ListHosts] requests. + int64 page_size = 2 [(value) = "0-1000"]; + + // Page token that can be used to iterate through multiple pages of results. + // + // To get the next page of results, set [page_token] to the [ListClusterHostsResponse.next_page_token] returned by the previous [ClusterService.ListHosts] request. + string page_token = 3 [(length) = "<=100"]; +} + +message ListClusterHostsResponse { + // List of hosts in the cluster. + repeated Host hosts = 1; + + // The token that can be used to get the next page of results. + // + // If the number of results is larger than [ListClusterHostsRequest.page_size], use the [next_page_token] as the value for the [ListClusterHostsRequest.page_token] in the subsequent [ClusterService.ListHosts] request to iterate through multiple pages of results. + // + // Each of the subsequent [ClusterService.ListHosts] requests should use the [next_page_token] value returned by the previous request to continue paging through the results. + string next_page_token = 2; +} + +message AddClusterHostsRequest { + // ID of the cluster to add hosts to. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; + + // Configuration of the newly added hosts. + repeated HostSpec host_specs = 2 [(size) = ">0"]; +} + +message AddClusterHostsMetadata { + // ID of the cluster to which the hosts are being added. + string cluster_id = 1; + + // Names of hosts that are being added. + repeated string host_names = 2; +} + +message DeleteClusterHostsRequest { + // ID of the cluster to delete hosts from. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; + + // Names of hosts to delete. + // + // To get these names, make a [ClusterService.ListHosts] request. + repeated string host_names = 2 [ + (size) = ">0", + (length) = "<=253" + ]; +} + +message DeleteClusterHostsMetadata { + // ID of the cluster from which the hosts are being deleted. + string cluster_id = 1; + + // Names of hosts that are being deleted. + repeated string host_names = 2; +} + +message StartClusterRequest { + // ID of the cluster to start. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; +} + +message StartClusterMetadata { + // ID of the cluster that is being started. + string cluster_id = 1; +} + +message StopClusterRequest { + // ID of the cluster to stop. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; +} + +message StopClusterMetadata { + // ID of the cluster that is being stopped. + string cluster_id = 1; +} + +message MoveClusterRequest { + // ID of the cluster to move. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; + + // ID of the destination folder. + // + // To get this ID, make a [yandex.cloud.resourcemanager.v1.FolderService.List] request. + string destination_folder_id = 2 [ + (required) = true, + (length) = "<=50" + ]; +} + +message MoveClusterMetadata { + // ID of the cluster that is being moved. + string cluster_id = 1; + + // ID of the source folder. + string source_folder_id = 2; + + // ID of the destination folder. + string destination_folder_id = 3; +} + +message UpdateClusterHostsRequest { + // ID of the MySQL cluster to update hosts in. + // To get the MySQL cluster ID, use a [ClusterService.List] request. + string cluster_id = 1 [ + (required) = true, + (length) = "<=50" + ]; + + // New configurations to apply to hosts. + repeated UpdateHostSpec update_host_specs = 2 [(size) = ">0"]; +} + +message UpdateClusterHostsMetadata { + // ID of the cluster in which the hosts are being updated. + string cluster_id = 1; + + // Names of hosts that are being updated. + repeated string host_names = 2; +} + +message UpdateHostSpec { + // Name of the host to update. + // To get a MySQL host name, use a [ClusterService.ListHosts] request. + string host_name = 1 [(required) = true]; + + // [Host.name] of the host to be used as the replication source (for cascading replication). + // To get a MySQL host name, use a [ClusterService.ListHosts] request. + string replication_source = 2; + + // Field mask that specifies which settings of the MySQL host should be updated. + google.protobuf.FieldMask update_mask = 3; + + // Host backup priority. + int64 backup_priority = 4 [(value) = "0-100"]; + + // Whether the host should get a public IP address on creation. + bool assign_public_ip = 5; + + // Host master promotion priority. + int64 priority = 6 [(value) = "0-100"]; +} + +message HostSpec { + // ID of the availability zone where the host resides. + // + // To get a list of available zones, make the [yandex.cloud.compute.v1.ZoneService.List] request. + string zone_id = 1 [(length) = "<=50"]; + + // ID of the subnet to assign to the host. + // + // This subnet should be a part of the cluster network (the network ID is specified in the [ClusterService.CreateClusterRequest.network_id]). + string subnet_id = 2 [(length) = "<=50"]; + + // Option that enables public IP address for the host so that the host can be accessed from the internet. + // + // After a host has been created, this setting cannot be changed. + // To remove an assigned public IP address, or to assign a public IP address to a host without one, recreate the host with the appropriate [assign_public_ip] value set. + // + // Possible values: + // * `false` - don't assign a public IP address to the host. + // * `true` - assign a public IP address to the host. + bool assign_public_ip = 3; + + // [Host.name] of the host to be used as the replication source (for cascading replication). + string replication_source = 4; + + // Host backup priority + int64 backup_priority = 5 [(value) = "0-100"]; + + // Host master promotion priority + int64 priority = 6 [(value) = "0-100"]; +} + +message ConfigSpec { + // Version of MySQL used in the cluster. + // + // Possible values: `5.7`, `8.0`. + string version = 1; // No formal validation, a list of supported versions should suffice. + + // Cluster-wide MySQL configuration. + oneof mysql_config { + // Configuration for a MySQL 5.7 cluster. + config.MysqlConfig5_7 mysql_config_5_7 = 2 [json_name = "mysqlConfig_5_7"]; + + // Configuration for a MySQL 8.0 cluster. + config.MysqlConfig8_0 mysql_config_8_0 = 6 [json_name = "mysqlConfig_8_0"]; + } + + // Resource preset for the cluster hosts. + Resources resources = 3; + + // Time to start the daily backup, in the UTC timezone. + google.type.TimeOfDay backup_window_start = 4; + + // Access policy for external services. + // + // If the specific services need to access the cluster, then set the necessary values in this policy. + Access access = 5; + + // Configuration of the performance diagnostics service. + PerformanceDiagnostics performance_diagnostics = 7; + + // Retention policy of automated backups. + google.protobuf.Int64Value backup_retain_period_days = 8 [(value) = "7-60"]; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/config/mysql5_7.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/config/mysql5_7.proto new file mode 100644 index 0000000000..f18a19b71a --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/config/mysql5_7.proto @@ -0,0 +1,594 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1.config; + +import "google/protobuf/wrappers.proto"; +import "yandex/cloud/validation.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1/config;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1.config"; + +// Options and structure of `MysqlConfig5_7` reflects MySQL 5.7 configuration file. +message MysqlConfig5_7 { + enum SQLMode { + SQLMODE_UNSPECIFIED = 0; + + ALLOW_INVALID_DATES = 1; + + ANSI_QUOTES = 2; + + ERROR_FOR_DIVISION_BY_ZERO = 3; + + HIGH_NOT_PRECEDENCE = 4; + + IGNORE_SPACE = 5; + + NO_AUTO_VALUE_ON_ZERO = 6; + + NO_BACKSLASH_ESCAPES = 7; + + NO_ENGINE_SUBSTITUTION = 8; + + NO_UNSIGNED_SUBTRACTION = 9; + + NO_ZERO_DATE = 10; + + NO_ZERO_IN_DATE = 11; + + NO_FIELD_OPTIONS = 12; + + NO_KEY_OPTIONS = 13; + + NO_TABLE_OPTIONS = 14; + + ONLY_FULL_GROUP_BY = 15; + + PAD_CHAR_TO_FULL_LENGTH = 16; + + PIPES_AS_CONCAT = 17; + + REAL_AS_FLOAT = 18; + + STRICT_ALL_TABLES = 19; + + STRICT_TRANS_TABLES = 20; + + ANSI = 21; + + TRADITIONAL = 22; + + DB2 = 23; + + MAXDB = 24; + + MSSQL = 25; + + MYSQL323 = 26; + + MYSQL40 = 27; + + ORACLE = 28; + + POSTGRESQL = 29; + + NO_AUTO_CREATE_USER = 30; + + NO_DIR_IN_CREATE = 31; + } + + enum AuthPlugin { + AUTH_PLUGIN_UNSPECIFIED = 0; + + // Using [Native Pluggable Authentication](https://dev.mysql.com/doc/refman/5.7/en/native-pluggable-authentication.html). + MYSQL_NATIVE_PASSWORD = 1; + + CACHING_SHA2_PASSWORD = 2 [deprecated=true]; + + // Using [SHA-256 Pluggable Authentication](https://dev.mysql.com/doc/refman/5.7/en/sha256-pluggable-authentication.html). + SHA256_PASSWORD = 3; + } + + enum TransactionIsolation { + TRANSACTION_ISOLATION_UNSPECIFIED = 0; + + READ_COMMITTED = 1; + + REPEATABLE_READ = 2; + + SERIALIZABLE = 3; + } + + enum BinlogRowImage { + BINLOG_ROW_IMAGE_UNSPECIFIED = 0; + + FULL = 1; + + MINIMAL = 2; + + NOBLOB = 3; + } + + enum SlaveParallelType { + SLAVE_PARALLEL_TYPE_UNSPECIFIED = 0; + + DATABASE = 1; + + LOGICAL_CLOCK = 2; + } + + enum LogSlowRateType { + LOG_SLOW_RATE_TYPE_UNSPECIFIED = 0; + + SESSION = 1; + + QUERY = 2; + } + + enum LogSlowFilterType { + LOG_SLOW_FILTER_TYPE_UNSPECIFIED = 0; + + FULL_SCAN = 1; + + FULL_JOIN = 2; + + TMP_TABLE = 3; + + TMP_TABLE_ON_DISK = 4; + + FILESORT = 5; + + FILESORT_ON_DISK = 6; + } + + enum BinlogTransactionDependencyTracking { + BINLOG_TRANSACTION_DEPENDENCY_TRACKING_UNSPECIFIED = 0; + + COMMIT_ORDER = 1; + + WRITESET = 2; + + WRITESET_SESSION = 3; + } + + // Size of the InnoDB buffer pool used for caching table and index data. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_buffer_pool_size) for details. + google.protobuf.Int64Value innodb_buffer_pool_size = 1 [(value) = ">=5242880"]; + + // The maximum permitted number of simultaneous client connections. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_connections) for details. + google.protobuf.Int64Value max_connections = 2 [(value) = "10-16384"]; + + // Time that it takes to process a query before it is considered slow. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_long_query_time) for details. + google.protobuf.DoubleValue long_query_time = 3 [(value) = "0-3600"]; + + // Enable writing of general query log of MySQL. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_general_log) for details. + google.protobuf.BoolValue general_log = 4; + + // Enable writing of audit log of MySQL. + // + // See [MySQL documentation](https://dev.mysql.com/doc/mysql-security-excerpt/5.7/en/audit-log-reference.html#audit-log-options-variables) for details. + google.protobuf.BoolValue audit_log = 5; + + // Server SQL mode of MySQL. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-setting) for details. + repeated SQLMode sql_mode = 6; + + // The maximum size in bytes of one packet. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_allowed_packet) for details. + google.protobuf.Int64Value max_allowed_packet = 7 [(value) = "1024-1073741824"]; + + // Authentication plugin used in the managed MySQL cluster. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_default_authentication_plugin) for details. + AuthPlugin default_authentication_plugin = 8; + + // Transaction log flush behaviour. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit) for details. + google.protobuf.Int64Value innodb_flush_log_at_trx_commit = 9 [(value) = "1-2"]; + + // Max time in seconds for a transaction to wait for a row lock. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_lock_wait_timeout) for details. + google.protobuf.Int64Value innodb_lock_wait_timeout = 10 [(value) = "1-28800"]; + + // Default transaction isolation level. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_transaction_isolation) for details. + TransactionIsolation transaction_isolation = 11; + + // Print information about deadlocks in error log. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_print_all_deadlocks) for details. + google.protobuf.BoolValue innodb_print_all_deadlocks = 12; + + // The number of seconds to wait for more data from a connection before aborting the read. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_net_read_timeout) for details. + google.protobuf.Int64Value net_read_timeout = 13 [(value) = "1-1200"]; + + // The number of seconds to wait for a block to be written to a connection before aborting the write. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_net_write_timeout) for details. + google.protobuf.Int64Value net_write_timeout = 14 [(value) = "1-1200"]; + + // The maximum permitted result length in bytes for the GROUP_CONCAT() function. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len) for details. + google.protobuf.Int64Value group_concat_max_len = 15 [(value) = "4-33554432"]; + + // The maximum size of internal in-memory temporary tables. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_tmp_table_size) for details. + google.protobuf.Int64Value tmp_table_size = 16 [(value) = "1024-536870912"]; + + // This variable sets the maximum size to which user-created MEMORY tables are permitted to grow. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_heap_table_size) for details. + google.protobuf.Int64Value max_heap_table_size = 17 [(value) = "16384-536870912"]; + + // The servers default time zone. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_default-time-zone) for details. + string default_time_zone = 18; + + // The servers default character set. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_character_set_server) for details. + string character_set_server = 19; + + // The server default collation. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_collation_server) for details. + string collation_server = 20; + + // Enables InnoDB adaptive hash index. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_adaptive_hash_index) for details. + google.protobuf.BoolValue innodb_adaptive_hash_index = 21; + + // Enables the NUMA interleave memory policy for allocation of the InnoDB buffer pool. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_numa_interleave) for details. + google.protobuf.BoolValue innodb_numa_interleave = 22; + + // The size in bytes of the buffer that InnoDB uses to write to the log files on disk. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_log_buffer_size) for details. + google.protobuf.Int64Value innodb_log_buffer_size = 23 [(value) = "1048576-268435456"]; + + // The size in bytes of the single InnoDB Redo log file. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_log_file_size) for details. + google.protobuf.Int64Value innodb_log_file_size = 24 [(value) = "268435456-4294967296"]; + + // Limits IO available for InnoDB background tasks. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_io_capacity) for details. + google.protobuf.Int64Value innodb_io_capacity = 25 [(value) = "100-100000"]; + + // Limits IO available for InnoDB background tasks. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_io_capacity_max) for details. + google.protobuf.Int64Value innodb_io_capacity_max = 26 [(value) = "100-100000"]; + + // The number of I/O threads for read operations in InnoDB. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_read_io_threads) for details. + google.protobuf.Int64Value innodb_read_io_threads = 27 [(value) = "1-16"]; + + // The number of I/O threads for write operations in InnoDB. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_write_io_threads) for details. + google.protobuf.Int64Value innodb_write_io_threads = 28 [(value) = "1-16"]; + + // The number of background threads devoted to the InnoDB purge operation. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_purge_threads) for details. + google.protobuf.Int64Value innodb_purge_threads = 29 [(value) = "1-16"]; + + // Defines the maximum number of threads permitted inside of InnoDB. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_thread_concurrency) for details. + google.protobuf.Int64Value innodb_thread_concurrency = 30 [(value) = "0-1000"]; + + // Limits the max size of InnoDB temp tablespace. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_temp_data_file_path) for details. + google.protobuf.Int64Value innodb_temp_data_file_max_size = 31 [(value) = "0-107374182400"]; + + // A number of threads the server should cache for reuse. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_thread_cache_size) for details. + google.protobuf.Int64Value thread_cache_size = 32 [(value) = "10-10000"]; + + // The stack size for each thread. The default is large enough for normal operation. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_thread_stack) for details. + google.protobuf.Int64Value thread_stack = 33 [(value) = "131072-16777216"]; + + // The minimum size of the buffer that is used for plain index scans, range index scans, and joins that do not use indexes and thus perform full table scans. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_join_buffer_size) for details. + google.protobuf.Int64Value join_buffer_size = 34 [(value) = "1024-16777216"]; + + // Each session that must perform a sort allocates a buffer of this size. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_sort_buffer_size) for details. + google.protobuf.Int64Value sort_buffer_size = 35 [(value) = "1024-16777216"]; + + // The number of table definitions that can be stored in the definition cache. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_table_definition_cache) for details. + google.protobuf.Int64Value table_definition_cache = 36 [(value) = "400-524288"]; + + // The number of open tables for all threads. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_table_open_cache) for details. + google.protobuf.Int64Value table_open_cache = 37 [(value) = "400-524288"]; + + // The number of open tables cache instances. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_table_open_cache_instances) for details. + google.protobuf.Int64Value table_open_cache_instances = 38 [(value) = "1-32"]; + + // Determines whether the server enables certain nonstandard behaviors for default values and NULL-value handling in TIMESTAMP columns. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_explicit_defaults_for_timestamp) for details. + google.protobuf.BoolValue explicit_defaults_for_timestamp = 39; + + // Can be used to control the operation of AUTO_INCREMENT columns. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/replication-options-source.html#sysvar_auto_increment_increment) for details. + google.protobuf.Int64Value auto_increment_increment = 40 [(value) = "1-65535"]; + + // Can be used to control the operation of AUTO_INCREMENT columns. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/replication-options-source.html#sysvar_auto_increment_offset) for details. + google.protobuf.Int64Value auto_increment_offset = 41 [(value) = "1-65535"]; + + // Controls how often the MySQL server synchronizes the binary log to disk. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_sync_binlog) for details. + google.protobuf.Int64Value sync_binlog = 42 [(value) = "0-4096"]; + + // The size of the cache to hold changes to the binary log during a transaction. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_cache_size) for details. + google.protobuf.Int64Value binlog_cache_size = 43 [(value) = "4096-67108864"]; + + // Controls how many microseconds the binary log commit waits before synchronizing the binary log file to disk. + // + // See [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_group_commit_sync_delay) for details. + google.protobuf.Int64Value binlog_group_commit_sync_delay = 44 [(value) = "0-50000"]; + + // For MySQL row-based replication, this variable determines how row images are written to the binary log. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_row_image) for details. + BinlogRowImage binlog_row_image = 45; + + // When enabled, it causes the server to write informational log events such as row query log events into its binary log. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_rows_query_log_events) for details. + google.protobuf.BoolValue binlog_rows_query_log_events = 46; + + // The number of replica acknowledgments the source must receive per transaction before proceeding. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/replication-options-source.html#sysvar_rpl_semi_sync_master_wait_for_slave_count) for details. + google.protobuf.Int64Value rpl_semi_sync_master_wait_for_slave_count = 47 [(value) = "1-2"]; + + // When using a multi-threaded replica, this variable specifies the policy used to decide which transactions are allowed to execute in parallel on the replica. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/replication-options-replica.html#sysvar_slave_parallel_type) for details. + SlaveParallelType slave_parallel_type = 48; + + // Sets the number of applier threads for executing replication transactions in parallel. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/replication-options-replica.html#sysvar_slave_parallel_workers) for details. + google.protobuf.Int64Value slave_parallel_workers = 49 [(value) = "0-64"]; + + // The size of the binary log to hold. + google.protobuf.Int64Value mdb_preserve_binlog_bytes = 50 [(value) = "1073741824-1099511627776"]; + + // The number of seconds the server waits for activity on an interactive connection before closing it. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_interactive_timeout) for details. + google.protobuf.Int64Value interactive_timeout = 51 [(value) = "600-86400"]; + + // The number of seconds the server waits for activity on a noninteractive connection before closing it. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_wait_timeout) for details. + google.protobuf.Int64Value wait_timeout = 52 [(value) = "600-86400"]; + + // Replication lag threshold (seconds) which will switch MySQL to 'offline_mode = ON' to prevent users from reading stale data. + google.protobuf.Int64Value mdb_offline_mode_enable_lag = 53 [(value) = "600-432000"]; + + // Replication lag threshold (seconds) which will switch MySQL to 'offline_mode = OFF'. + // Should be less than mdb_offline_mode_enable_lag value. + google.protobuf.Int64Value mdb_offline_mode_disable_lag = 54 [(value) = "60-86400"]; + + // The limit on memory consumption for the range optimizer. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_range_optimizer_max_mem_size) for details. + google.protobuf.Int64Value range_optimizer_max_mem_size = 55 [(value) = "1048576-268435456"]; + + // Manages slow query log. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_slow_query_log) for details. + google.protobuf.BoolValue slow_query_log = 56; + + // Query execution time, after which query to be logged unconditionally, that is, `log_slow_rate_limit`` will not apply to it. + // + // See [Percona documentation](https://www.percona.com/doc/percona-server/8.0/diagnostics/slow_extended.html#slow_query_log_always_write_time) for details. + google.protobuf.DoubleValue slow_query_log_always_write_time = 57; + + // Specifies slow log granularity for `log_slow_rate_limit` values QUERY or SESSION. + // + // See [Percona documentation](https://www.percona.com/doc/percona-server/8.0/diagnostics/slow_extended.html#log_slow_rate_type) for details. + LogSlowRateType log_slow_rate_type = 58; + + // Specifies what fraction of session/query should be logged. Logging is enabled for every nth session/query. + // + // See [Percona documentation](https://www.percona.com/doc/percona-server/8.0/diagnostics/slow_extended.html#log_slow_rate_limit) for details. + google.protobuf.Int64Value log_slow_rate_limit = 59 [(value) = "1-1000"]; + + // When TRUE, statements executed by stored procedures are logged to the slow log. + // + // See [Percona documentation](https://www.percona.com/doc/percona-server/8.0/diagnostics/slow_extended.html#log_slow_sp_statements) for details. + google.protobuf.BoolValue log_slow_sp_statements = 60; + + // Filters the slow log by the query's execution plan. + // + // See [Percona documentation](https://www.percona.com/doc/percona-server/8.0/diagnostics/slow_extended.html#log_slow_filter) for details. + repeated LogSlowFilterType log_slow_filter = 61; + + // Replication lag threshold (seconds) which allows replica to be promoted to master while executing "switchover from". + // Should be less than mdb_offline_mode_disable_lag. + google.protobuf.Int64Value mdb_priority_choice_max_lag = 62 [(value) = "0-86400"]; + + // Specifies the page size for InnoDB tablespaces. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_page_size). + google.protobuf.Int64Value innodb_page_size = 63 [(value) = "4096-65536"]; + + // The limit in bytes on the size of the temporary log files used during online DDL operations + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_online_alter_log_max_size). + google.protobuf.Int64Value innodb_online_alter_log_max_size = 64 [(value) = "65536-107374182400"]; + + // Minimum length of words that are stored in an InnoDB FULLTEXT index + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_ft_min_token_size). + google.protobuf.Int64Value innodb_ft_min_token_size = 65 [(value) = "0-16"]; + + // Maximum length of words that are stored in an InnoDB FULLTEXT index + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_ft_max_token_size). + google.protobuf.Int64Value innodb_ft_max_token_size = 66 [(value) = "10-84"]; + + // Table names storage and comparison strategy + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_lower_case_table_names). + google.protobuf.Int64Value lower_case_table_names = 67 [(value) = "0-1"]; + + // Manages MySQL 5.6 compatibility + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_show_compatibility_56). + google.protobuf.BoolValue show_compatibility_56 = 68 [json_name = "showCompatibility_56"]; + + // The number of times that any given stored procedure may be called recursively. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_sp_recursion_depth). + google.protobuf.Int64Value max_sp_recursion_depth = 69 [(value) = "0-255"]; + + // The level of zlib compression to use for InnoDB compressed tables and indexes. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_compression_level). + google.protobuf.Int64Value innodb_compression_level = 70 [(value) = "0-9"]; + + // Specifies how the source mysqld generates the dependency information that it writes in the binary log to help replicas determine which transactions can be executed in parallel. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_transaction_dependency_tracking). + BinlogTransactionDependencyTracking binlog_transaction_dependency_tracking = 71; + + // Config specific will be all changes to a table take effect immediately or you must use COMMIT to accept a transaction or ROLLBACK to cancel it. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_autocommit). + google.protobuf.BoolValue autocommit = 72; + + // Enables or disables periodic output for the standard InnoDB Monitor. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_status_output). + google.protobuf.BoolValue innodb_status_output = 73; + + // When innodb_strict_mode is enabled, InnoDB returns errors rather than warnings when checking for invalid or incompatible table options. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_strict_mode). + google.protobuf.BoolValue innodb_strict_mode = 74; + + // Makes InnoDB to write information about all lock wait timeout errors into the log file. + // + // For details, see [Percona documentation for the variable](https://docs.percona.com/percona-server/5.7/diagnostics/innodb_show_status.html?highlight=innodb_print_lock_wait_timeout_info). + google.protobuf.BoolValue innodb_print_lock_wait_timeout_info = 75; + + // System variable specifies the verbosity for handling events intended for the error log + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_log_error_verbosity). + google.protobuf.Int64Value log_error_verbosity = 76 [(value) = "1-3"]; + + // The maximum number of bytes of memory reserved per session for computation of normalized statement digests. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_digest_length). + google.protobuf.Int64Value max_digest_length = 77 [(value) = "0-1048576"]; + + // Do not cache results that are larger than this number of bytes. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_query_cache_limit). + google.protobuf.Int64Value query_cache_limit = 78; + + // The amount of memory allocated for caching query results. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_query_cache_size). + google.protobuf.Int64Value query_cache_size = 79; + + // Set the query cache type. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_query_cache_type). + google.protobuf.Int64Value query_cache_type = 80 [(value) = "0-2"]; + + // // This variable specifies the timeout in seconds for attempts to acquire metadata locks + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_lock_wait_timeout). + google.protobuf.Int64Value lock_wait_timeout = 81 [(value) = "1-31536000"]; + + // This variable limits the total number of prepared statements in the server. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_prepared_stmt_count). + google.protobuf.Int64Value max_prepared_stmt_count = 82 [(value) = "0-1048576"]; + + // The system variable enables control over optimizer behavior. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_optimizer_switch) + // https://dev.mysql.com/doc/refman/5.7/en/switchable-optimizations.html + string optimizer_switch = 83; + + // The maximum depth of search performed by the query optimizer + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html) + google.protobuf.Int64Value optimizer_search_depth = 84 [(value) = "0-62"]; + + // Enables and disables collection of query times + // + // For details, see [Percona documentation for the variable](https://docs.percona.com/percona-server/5.7/diagnostics/response_time_distribution.html#query_response_time_stats). + google.protobuf.BoolValue query_response_time_stats = 85; + + // Enables or disables collection of statistics + // + // For details, see [Percona documentation for the variable](https://docs.percona.com/percona-server/5.7/diagnostics/user_stats.html#userstat). + google.protobuf.BoolValue userstat = 86; + + // The execution timeout for SELECT statements, in milliseconds. If the value is 0, timeouts are not enabled. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_execution_time) + google.protobuf.Int64Value max_execution_time = 87 [(value) = "0-4294967295"]; +} + +message MysqlConfigSet5_7 { + // Effective settings for a MySQL 5.7 cluster (a combination of settings defined + // in [user_config] and [default_config]). + MysqlConfig5_7 effective_config = 1; + + // User-defined settings for a MySQL 5.7 cluster. + MysqlConfig5_7 user_config = 2; + + // Default configuration for a MySQL 5.7 cluster. + MysqlConfig5_7 default_config = 3; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/config/mysql8_0.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/config/mysql8_0.proto new file mode 100644 index 0000000000..4ee908bb5e --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/config/mysql8_0.proto @@ -0,0 +1,555 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1.config; + +import "google/protobuf/wrappers.proto"; +import "yandex/cloud/validation.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1/config;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1.config"; + +// Options and structure of `MysqlConfig8_0` reflects MySQL 8.0 configuration file. +message MysqlConfig8_0 { + enum SQLMode { + SQLMODE_UNSPECIFIED = 0; + + ALLOW_INVALID_DATES = 1; + + ANSI_QUOTES = 2; + + ERROR_FOR_DIVISION_BY_ZERO = 3; + + HIGH_NOT_PRECEDENCE = 4; + + IGNORE_SPACE = 5; + + NO_AUTO_VALUE_ON_ZERO = 6; + + NO_BACKSLASH_ESCAPES = 7; + + NO_ENGINE_SUBSTITUTION = 8; + + NO_UNSIGNED_SUBTRACTION = 9; + + NO_ZERO_DATE = 10; + + NO_ZERO_IN_DATE = 11; + + ONLY_FULL_GROUP_BY = 15; + + PAD_CHAR_TO_FULL_LENGTH = 16; + + PIPES_AS_CONCAT = 17; + + REAL_AS_FLOAT = 18; + + STRICT_ALL_TABLES = 19; + + STRICT_TRANS_TABLES = 20; + + TIME_TRUNCATE_FRACTIONAL = 21; + + ANSI = 22; + + TRADITIONAL = 23; + + NO_DIR_IN_CREATE = 24; + } + + enum AuthPlugin { + AUTH_PLUGIN_UNSPECIFIED = 0; + + // Using [Native Pluggable Authentication](https://dev.mysql.com/doc/refman/8.0/en/native-pluggable-authentication.html). + MYSQL_NATIVE_PASSWORD = 1; + + // Using [Caching SHA-2 Pluggable Authentication](https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html). + CACHING_SHA2_PASSWORD = 2; + + // Using [SHA-256 Pluggable Authentication](https://dev.mysql.com/doc/refman/8.0/en/sha256-pluggable-authentication.html). + SHA256_PASSWORD = 3; + } + + enum TransactionIsolation { + TRANSACTION_ISOLATION_UNSPECIFIED = 0; + + READ_COMMITTED = 1; + + REPEATABLE_READ = 2; + + SERIALIZABLE = 3; + } + + enum BinlogRowImage { + BINLOG_ROW_IMAGE_UNSPECIFIED = 0; + + FULL = 1; + + MINIMAL = 2; + + NOBLOB = 3; + } + + enum SlaveParallelType { + SLAVE_PARALLEL_TYPE_UNSPECIFIED = 0; + + DATABASE = 1; + + LOGICAL_CLOCK = 2; + } + + enum LogSlowRateType { + LOG_SLOW_RATE_TYPE_UNSPECIFIED = 0; + + SESSION = 1; + + QUERY = 2; + } + + enum LogSlowFilterType { + LOG_SLOW_FILTER_TYPE_UNSPECIFIED = 0; + + FULL_SCAN = 1; + + FULL_JOIN = 2; + + TMP_TABLE = 3; + + TMP_TABLE_ON_DISK = 4; + + FILESORT = 5; + + FILESORT_ON_DISK = 6; + } + + enum BinlogTransactionDependencyTracking { + BINLOG_TRANSACTION_DEPENDENCY_TRACKING_UNSPECIFIED = 0; + + COMMIT_ORDER = 1; + + WRITESET = 2; + + WRITESET_SESSION = 3; + } + + // Size of the InnoDB buffer pool used for caching table and index data. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_size) for details. + google.protobuf.Int64Value innodb_buffer_pool_size = 1 [(value) = ">=5242880"]; + + // The maximum permitted number of simultaneous client connections. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_connections) for details. + google.protobuf.Int64Value max_connections = 2 [(value) = "10-16384"]; + + // Time that it takes to process a query before it is considered slow. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_long_query_time) for details. + google.protobuf.DoubleValue long_query_time = 3; + + // Enable writing of general query log of MySQL. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_general_log) for details. + google.protobuf.BoolValue general_log = 4; + + // Enable writing of audit log of MySQL. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/audit-log-reference.html#audit-log-options-variables) for details. + google.protobuf.BoolValue audit_log = 5; + + // Server SQL mode of MySQL. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sql-mode-setting) for details. + repeated SQLMode sql_mode = 6; + + // The maximum size in bytes of one packet. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_allowed_packet) for details. + google.protobuf.Int64Value max_allowed_packet = 7 [(value) = "1024-1073741824"]; + + // Authentication plugin used in the managed MySQL cluster. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin) for details. + AuthPlugin default_authentication_plugin = 8; + + // Transaction log flush behaviour. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit) for details. + google.protobuf.Int64Value innodb_flush_log_at_trx_commit = 9 [(value) = "1-2"]; + + // Max time in seconds for a transaction to wait for a row lock. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_lock_wait_timeout) for details. + google.protobuf.Int64Value innodb_lock_wait_timeout = 10 [(value) = "1-28800"]; + + // Default transaction isolation level. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_transaction_isolation) for details. + TransactionIsolation transaction_isolation = 11; + + // Print information about deadlocks in error log. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_print_all_deadlocks) for details. + google.protobuf.BoolValue innodb_print_all_deadlocks = 12; + + // The number of seconds to wait for more data from a connection before aborting the read. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_net_read_timeout) for details. + google.protobuf.Int64Value net_read_timeout = 13 [(value) = "1-1200"]; + + // The number of seconds to wait for a block to be written to a connection before aborting the write. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_net_write_timeout) for details. + google.protobuf.Int64Value net_write_timeout = 14 [(value) = "1-1200"]; + + // The maximum permitted result length in bytes for the GROUP_CONCAT() function. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_group_concat_max_len) for details. + google.protobuf.Int64Value group_concat_max_len = 15 [(value) = "4-33554432"]; + + // The maximum size of internal in-memory temporary tables. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmp_table_size) for details. + google.protobuf.Int64Value tmp_table_size = 16 [(value) = "1024-536870912"]; + + // This variable sets the maximum size to which user-created MEMORY tables are permitted to grow. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_heap_table_size) for details. + google.protobuf.Int64Value max_heap_table_size = 17 [(value) = "16384-536870912"]; + + // The servers default time zone. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_default-time-zone) for details. + string default_time_zone = 18; + + // The servers default character set. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_set_server) for details. + string character_set_server = 19; + + // The server default collation. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_collation_server) for details. + string collation_server = 20; + + // Enables InnoDB adaptive hash index. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_adaptive_hash_index) for details. + google.protobuf.BoolValue innodb_adaptive_hash_index = 21; + + // Enables the NUMA interleave memory policy for allocation of the InnoDB buffer pool. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_numa_interleave) for details. + google.protobuf.BoolValue innodb_numa_interleave = 22; + + // The size in bytes of the buffer that InnoDB uses to write to the log files on disk. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_buffer_size) for details. + google.protobuf.Int64Value innodb_log_buffer_size = 23 [(value) = "1048576-268435456"]; + + // The size in bytes of the single InnoDB Redo log file. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_file_size) for details. + google.protobuf.Int64Value innodb_log_file_size = 24 [(value) = "268435456-4294967296"]; + + // Limits IO available for InnoDB background tasks. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_io_capacity) for details. + google.protobuf.Int64Value innodb_io_capacity = 25 [(value) = "100-100000"]; + + // Limits IO available for InnoDB background tasks. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_io_capacity_max) for details. + google.protobuf.Int64Value innodb_io_capacity_max = 26 [(value) = "100-100000"]; + + // The number of I/O threads for read operations in InnoDB. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_read_io_threads) for details. + google.protobuf.Int64Value innodb_read_io_threads = 27 [(value) = "1-16"]; + + // The number of I/O threads for write operations in InnoDB. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_write_io_threads) for details. + google.protobuf.Int64Value innodb_write_io_threads = 28 [(value) = "1-16"]; + + // The number of background threads devoted to the InnoDB purge operation. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_purge_threads) for details. + google.protobuf.Int64Value innodb_purge_threads = 29 [(value) = "1-16"]; + + // Defines the maximum number of threads permitted inside of InnoDB. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_thread_concurrency) for details. + google.protobuf.Int64Value innodb_thread_concurrency = 30 [(value) = "0-1000"]; + + // Limits the max size of InnoDB temp tablespace. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_temp_data_file_path) for details. + google.protobuf.Int64Value innodb_temp_data_file_max_size = 31 [(value) = "0-107374182400"]; + + // How many threads the server should cache for reuse. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_cache_size) for details. + google.protobuf.Int64Value thread_cache_size = 32 [(value) = "10-10000"]; + + // The stack size for each thread. The default is large enough for normal operation. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_thread_stack) for details. + google.protobuf.Int64Value thread_stack = 33 [(value) = "131072-16777216"]; + + // The minimum size of the buffer that is used for plain index scans, range index scans, and joins that do not use indexes and thus perform full table scans. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_join_buffer_size) for details. + google.protobuf.Int64Value join_buffer_size = 34 [(value) = "1024-16777216"]; + + // Each session that must perform a sort allocates a buffer of this size. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sort_buffer_size) for details. + google.protobuf.Int64Value sort_buffer_size = 35 [(value) = "1024-16777216"]; + + // The number of table definitions that can be stored in the definition cache. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_table_definition_cache) for details. + google.protobuf.Int64Value table_definition_cache = 36 [(value) = "400-524288"]; + + // The number of open tables for all threads. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_table_open_cache) for details. + google.protobuf.Int64Value table_open_cache = 37 [(value) = "400-524288"]; + + // The number of open tables cache instances. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_table_open_cache_instances) for details. + google.protobuf.Int64Value table_open_cache_instances = 38 [(value) = "1-32"]; + + // Determines whether the server enables certain nonstandard behaviors for default values and NULL-value handling in TIMESTAMP columns. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_explicit_defaults_for_timestamp) for details. + google.protobuf.BoolValue explicit_defaults_for_timestamp = 39; + + // Can be used to control the operation of AUTO_INCREMENT columns. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-source.html#sysvar_auto_increment_increment) for details. + google.protobuf.Int64Value auto_increment_increment = 40 [(value) = "1-65535"]; + + // Can be used to control the operation of AUTO_INCREMENT columns. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-source.html#sysvar_auto_increment_offset) for details. + google.protobuf.Int64Value auto_increment_offset = 41 [(value) = "1-65535"]; + + // Controls how often the MySQL server synchronizes the binary log to disk. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_sync_binlog) for details. + google.protobuf.Int64Value sync_binlog = 42 [(value) = "0-4096"]; + + // The size of the cache to hold changes to the binary log during a transaction. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_cache_size) for details. + google.protobuf.Int64Value binlog_cache_size = 43 [(value) = "4096-67108864"]; + + // Controls how many microseconds the binary log commit waits before synchronizing the binary log file to disk. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_group_commit_sync_delay) for details. + google.protobuf.Int64Value binlog_group_commit_sync_delay = 44 [(value) = "0-50000"]; + + // For MySQL row-based replication, this variable determines how row images are written to the binary log. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_row_image) for details. + BinlogRowImage binlog_row_image = 45; + + // When enabled, it causes the server to write informational log events such as row query log events into its binary log. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_rows_query_log_events) for details. + google.protobuf.BoolValue binlog_rows_query_log_events = 46; + + // The number of replica acknowledgments the source must receive per transaction before proceeding. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-source.html#sysvar_rpl_semi_sync_master_wait_for_slave_count) for details. + google.protobuf.Int64Value rpl_semi_sync_master_wait_for_slave_count = 47 [(value) = "1-2"]; + + // When using a multi-threaded replica, this variable specifies the policy used to decide which transactions are allowed to execute in parallel on the replica. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#sysvar_slave_parallel_type) for details. + SlaveParallelType slave_parallel_type = 48; + + // Sets the number of applier threads for executing replication transactions in parallel. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#sysvar_slave_parallel_workers) for details. + google.protobuf.Int64Value slave_parallel_workers = 49 [(value) = "0-64"]; + + // The time limit for regular expression matching operations performed by REGEXP_LIKE and similar functions. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#sysvar_regexp_time_limit) for details. + google.protobuf.Int64Value regexp_time_limit = 50 [(value) = "0-1048576"]; + + // The size of the binary log to hold. + google.protobuf.Int64Value mdb_preserve_binlog_bytes = 51 [(value) = "1073741824-1099511627776"]; + + // The number of seconds the server waits for activity on an interactive connection before closing it. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_interactive_timeout) for details. + google.protobuf.Int64Value interactive_timeout = 52 [(value) = "600-86400"]; + + // The number of seconds the server waits for activity on a noninteractive connection before closing it. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_wait_timeout) for details. + google.protobuf.Int64Value wait_timeout = 53 [(value) = "600-86400"]; + + // Replication lag threshold (seconds) which will switch MySQL to 'offline_mode = ON' to prevent users from reading stale data. + google.protobuf.Int64Value mdb_offline_mode_enable_lag = 54 [(value) = "600-432000"]; + + // Replication lag threshold (seconds) which will switch MySQL to 'offline_mode = OFF'. + // Should be less than mdb_offline_mode_enable_lag. + google.protobuf.Int64Value mdb_offline_mode_disable_lag = 55 [(value) = "60-86400"]; + + // The limit on memory consumption for the range optimizer. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_range_optimizer_max_mem_size) for details. + google.protobuf.Int64Value range_optimizer_max_mem_size = 56 [(value) = "1048576-268435456"]; + + // Manages slow query log. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_slow_query_log) for details. + google.protobuf.BoolValue slow_query_log = 57; + + // Query execution time, after which query to be logged unconditionally, that is, `log_slow_rate_limit` will not apply to it. + // + // See [Percona documentation](https://www.percona.com/doc/percona-server/8.0/diagnostics/slow_extended.html#slow_query_log_always_write_time) for details. + google.protobuf.DoubleValue slow_query_log_always_write_time = 58; + + // Specifies slow log granularity for `log_slow_rate_limit` QUERY or SESSION value. + // + // See [Percona documentation](https://www.percona.com/doc/percona-server/8.0/diagnostics/slow_extended.html#log_slow_rate_type) for details. + LogSlowRateType log_slow_rate_type = 59; + + // Specifies what fraction of session/query should be logged. Logging is enabled for every nth session/query. + // + // See [Percona documentation](https://www.percona.com/doc/percona-server/8.0/diagnostics/slow_extended.html#log_slow_rate_limit) for details. + google.protobuf.Int64Value log_slow_rate_limit = 60 [(value) = "1-1000"]; + + // When TRUE, statements executed by stored procedures are logged to the slow log. + // + // See [Percona documentation](https://www.percona.com/doc/percona-server/8.0/diagnostics/slow_extended.html#log_slow_sp_statements) for details. + google.protobuf.BoolValue log_slow_sp_statements = 61; + + // Filters the slow log by the query's execution plan. + // + // See [Percona documentation](https://www.percona.com/doc/percona-server/8.0/diagnostics/slow_extended.html#log_slow_filter) for details. + repeated LogSlowFilterType log_slow_filter = 62; + + // Replication lag threshold (seconds) which allows replica to be promoted to master while executing "switchover from". + // Should be less than mdb_offline_mode_disable_lag. + google.protobuf.Int64Value mdb_priority_choice_max_lag = 63 [(value) = "0-86400"]; + + // Specifies the page size for InnoDB tablespaces. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_page_size). + google.protobuf.Int64Value innodb_page_size = 64 [(value) = "4096-65536"]; + + // The limit in bytes on the size of the temporary log files used during online DDL operations + // + // See [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_online_alter_log_max_size) for details. + google.protobuf.Int64Value innodb_online_alter_log_max_size = 65 [(value) = "65536-107374182400"]; + + // Minimum length of words that are stored in an InnoDB FULLTEXT index + // + // See [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_min_token_size) for details. + google.protobuf.Int64Value innodb_ft_min_token_size = 66 [(value) = "0-16"]; + + // Maximum length of words that are stored in an InnoDB FULLTEXT index + // + // See [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_ft_max_token_size) for details. + google.protobuf.Int64Value innodb_ft_max_token_size = 67 [(value) = "10-84"]; + + // Table names storage and comparison strategy + // + // See [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names) for details. + google.protobuf.Int64Value lower_case_table_names = 68 [(value) = "0-1"]; + + // The number of times that any given stored procedure may be called recursively. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_sp_recursion_depth). + google.protobuf.Int64Value max_sp_recursion_depth = 69 [(value) = "0-255"]; + + // The level of zlib compression to use for InnoDB compressed tables and indexes. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_compression_level). + google.protobuf.Int64Value innodb_compression_level = 70 [(value) = "0-9"]; + + // Specifies how the source mysqld generates the dependency information that it writes in the binary log to help replicas determine which transactions can be executed in parallel. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_transaction_dependency_tracking). + BinlogTransactionDependencyTracking binlog_transaction_dependency_tracking = 71; + + // Config specific will be all changes to a table take effect immediately or you must use COMMIT to accept a transaction or ROLLBACK to cancel it. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_autocommit). + google.protobuf.BoolValue autocommit = 72; + + // Enables or disables periodic output for the standard InnoDB Monitor. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_status_output). + google.protobuf.BoolValue innodb_status_output = 73; + + // When innodb_strict_mode is enabled, InnoDB returns errors rather than warnings when checking for invalid or incompatible table options. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_strict_mode). + google.protobuf.BoolValue innodb_strict_mode = 74; + + // Makes InnoDB to write information about all lock wait timeout errors into the log file. + // + // For details, see [Percona documentation for the variable](https://docs.percona.com/percona-server/8.0/diagnostics/innodb_show_status.html?highlight=innodb_print_lock_wait_timeout_info). + google.protobuf.BoolValue innodb_print_lock_wait_timeout_info = 75; + + // System variable specifies the verbosity for handling events intended for the error log + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_error_verbosity). + google.protobuf.Int64Value log_error_verbosity = 76 [(value) = "1-3"]; + + // The maximum number of bytes of memory reserved per session for computation of normalized statement digests. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_digest_length). + google.protobuf.Int64Value max_digest_length = 77 [(value) = "0-1048576"]; + + // This variable specifies the timeout in seconds for attempts to acquire metadata locks + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lock_wait_timeout). + google.protobuf.Int64Value lock_wait_timeout = 78 [(value) = "1-31536000"]; + + // This variable limits the total number of prepared statements in the server. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_prepared_stmt_count). + google.protobuf.Int64Value max_prepared_stmt_count = 79 [(value) = "0-4194304"]; + + // The system variable enables control over optimizer behavior. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_switch) + // https://dev.mysql.com/doc/refman/8.0/en/switchable-optimizations.html + string optimizer_switch = 80; + + // The maximum depth of search performed by the query optimizer + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html) + google.protobuf.Int64Value optimizer_search_depth = 81 [(value) = "0-62"]; + + // Enables or disables collection of statistics + // + // For details, see [Percona documentation for the variable](https://docs.percona.com/percona-server/8.0/diagnostics/user_stats.html#userstat). + google.protobuf.BoolValue userstat = 82; + + // The execution timeout for SELECT statements, in milliseconds. If the value is 0, timeouts are not enabled. + // + // For details, see [MySQL documentation for the variable](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_execution_time) + google.protobuf.Int64Value max_execution_time = 83 [(value) = "0-4294967295"]; +} + +message MysqlConfigSet8_0 { + // Effective settings for a MySQL 8.0 cluster (a combination of settings defined + // in [user_config] and [default_config]). + MysqlConfig8_0 effective_config = 1; + + // User-defined settings for a MySQL 8.0 cluster. + MysqlConfig8_0 user_config = 2; + + // Default configuration for a MySQL 8.0 cluster. + MysqlConfig8_0 default_config = 3; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/database.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/database.proto new file mode 100644 index 0000000000..6e9aee5a0a --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/database.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1; + +import "yandex/cloud/validation.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// An object that represents MySQL database. +// +// See [the documentation](/docs/managed-mysql/operations/databases) for details. +message Database { + + // Name of the database. + string name = 1; + + // ID of the cluster that the database belongs to. + string cluster_id = 2; +} + + +message DatabaseSpec { + + // Name of the database. + string name = 1 [(required) = true, (length) = "<=63", (pattern) = "[a-zA-Z0-9_-]*"]; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/database_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/database_service.proto new file mode 100644 index 0000000000..9939ead989 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/database_service.proto @@ -0,0 +1,132 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.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/mysql/v1/database.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// A set of methods for managing MySQL databases in a cluster. +// +// See [the documentation](/docs/managed-mysql/operations/databases) for details. +service DatabaseService { + + // Retrieves information about the specified database. + rpc Get (GetDatabaseRequest) returns (Database) { + option (google.api.http) = { get: "/managed-mysql/v1/clusters/{cluster_id}/databases/{database_name}" }; + } + + // Retrieves the list of databases in a cluster. + rpc List (ListDatabasesRequest) returns (ListDatabasesResponse) { + option (google.api.http) = { get: "/managed-mysql/v1/clusters/{cluster_id}/databases" }; + } + + // Creates a new database in a cluster. + rpc Create (CreateDatabaseRequest) returns (operation.Operation) { + option (google.api.http) = { post: "/managed-mysql/v1/clusters/{cluster_id}/databases" body: "*" }; + option (yandex.cloud.api.operation) = { + metadata: "CreateDatabaseMetadata" + response: "Database" + }; + } + + // Deletes a database from a cluster. + rpc Delete (DeleteDatabaseRequest) returns (operation.Operation) { + option (google.api.http) = { delete: "/managed-mysql/v1/clusters/{cluster_id}/databases/{database_name}" }; + option (yandex.cloud.api.operation) = { + metadata: "DeleteDatabaseMetadata" + response: "google.protobuf.Empty" + }; + } +} + +message GetDatabaseRequest { + + // ID of the cluster that the database belongs to. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [(required) = true, (length) = "<=50"]; + + // Name of the database to return information about. + // + // To get this name, make a [DatabaseService.List] request. + string database_name = 2 [(required) = true, (length) = "<=63", (pattern) = "[a-zA-Z0-9_-]*"]; +} + +message ListDatabasesRequest { + + // ID of the cluster to list databases in. + // + // To get this ID, make 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 API returns a [ListDatabasesResponse.next_page_token] that can be used to get the next page of results in the subsequent [DatabaseService.List] requests. + int64 page_size = 2 [(value) = "0-1000"]; + + // Page token that can be used to iterate through multiple pages of results. + // + // To get the next page of results, set [page_token] to the [ListDatabasesResponse.next_page_token] returned by the previous [DatabaseService.List] request. + string page_token = 3 [(length) = "<=100"]; +} + +message ListDatabasesResponse { + + // List of databases. + repeated Database databases = 1; + + // The token that can be used to get the next page of results. + // + // If the number of results is larger than [ListDatabasesRequest.page_size], use the [next_page_token] as the value for the [ListDatabasesRequest.page_token] in the subsequent [DatabaseService.List] request to iterate through multiple pages of results. + // + // Each of the subsequent [DatabaseService.List] requests should use the [next_page_token] value returned by the previous request to continue paging through the results. + string next_page_token = 2; +} + +message CreateDatabaseRequest { + + // ID of the cluster to create the database in. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [(required) = true, (length) = "<=50"]; + + // Configuration of the database. + DatabaseSpec database_spec = 2 [(required) = true]; +} + +message CreateDatabaseMetadata { + + // ID of the cluster the database is being created in. + string cluster_id = 1; + + // Name of the database that is being created. + string database_name = 2; +} + +message DeleteDatabaseRequest { + + // ID of the cluster to delete the database from. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [(required) = true, (length) = "<=50"]; + + // Name of the database to delete. + // + // To get this name, make a [DatabaseService.List] request. + string database_name = 2 [(required) = true, (length) = "<=63", (pattern) = "[a-zA-Z0-9_-]*"]; +} + +message DeleteDatabaseMetadata { + + // ID of the cluster the database is being deleted from. + string cluster_id = 1; + + // Name of the database that is being deleted. + string database_name = 2; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/maintenance.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/maintenance.proto new file mode 100644 index 0000000000..ccf58f417b --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/maintenance.proto @@ -0,0 +1,57 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1; + +import "google/protobuf/timestamp.proto"; + +import "yandex/cloud/validation.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// Configuration of a maintenance window in a MySQL cluster. +message MaintenanceWindow { + + // The maintenance policy in effect. + oneof policy { + option (exactly_one) = true; + + // Maintenance operation can be scheduled anytime. + AnytimeMaintenanceWindow anytime = 1; + + // Maintenance operation can be scheduled on a weekly basis. + WeeklyMaintenanceWindow weekly_maintenance_window = 2; + } +} + +message AnytimeMaintenanceWindow {} + +// Weelky maintenance window settings. +message WeeklyMaintenanceWindow { + enum WeekDay { + WEEK_DAY_UNSPECIFIED = 0; + MON = 1; + TUE = 2; + WED = 3; + THU = 4; + FRI = 5; + SAT = 6; + SUN = 7; + } + + // Day of the week (in `DDD` format). + WeekDay day = 1; + + // Hour of the day in UTC (in `HH` format). + int64 hour = 2 [(value) = "1-24"]; +} + +// A planned maintenance operation. +message MaintenanceOperation { + + // Information about this maintenance operation. + string info = 1 [(length) = "<=256"]; + + // Time until which this maintenance operation is delayed. + google.protobuf.Timestamp delayed_until = 2; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/resource_preset.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/resource_preset.proto new file mode 100644 index 0000000000..60877f9c3c --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/resource_preset.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// An object that represents MySQL resource preset. +// A resource preset defines hardware configuration for cluster hosts. +// +// See [the documentation](/docs/managed-mysql/concepts/instance-types) for details. +message ResourcePreset { + + // ID of the resource preset that defines available computational resources (vCPU, RAM, etc.) for a cluster host. + string id = 1; + + // IDs of availability zones where the resource preset is available. + repeated string zone_ids = 2; + + // Number of CPU cores for a MySQL host created with the preset. + int64 cores = 3; + + // RAM volume for a MySQL host created with the preset, in bytes. + int64 memory = 4; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/resource_preset_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/resource_preset_service.proto new file mode 100644 index 0000000000..b3bd568cbc --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/resource_preset_service.proto @@ -0,0 +1,60 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1; + +import "google/api/annotations.proto"; +import "yandex/cloud/mdb/mysql/v1/resource_preset.proto"; +import "yandex/cloud/validation.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// A set of methods for managing MySQL resource presets. +// +// See [the documentation](/docs/managed-mysql/concepts/instance-types) for details. +service ResourcePresetService { + + // Retrieves information about a resource preset. + rpc Get (GetResourcePresetRequest) returns (ResourcePreset) { + option (google.api.http) = { get: "/managed-mysql/v1/resourcePresets/{resource_preset_id}" }; + } + + // Retrieves the list of available resource presets. + rpc List (ListResourcePresetsRequest) returns (ListResourcePresetsResponse) { + option (google.api.http) = { get: "/managed-mysql/v1/resourcePresets" }; + } +} + +message GetResourcePresetRequest { + + // ID of the resource preset to return information about. + // + // To get this ID, make a [ResourcePresetService.List] request. + string resource_preset_id = 1 [(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 API returns a [ListResourcePresetsResponse.next_page_token] that can be used to get the next page of results in the subsequent [ResourcePresetService.List] requests. + int64 page_size = 2 [(value) = "0-1000"]; + + // Page token that can be used to iterate through multiple pages of results. + // + // To get the next page of results, set [page_token] to the [ListResourcePresetsResponse.next_page_token] returned by the previous [ResourcePresetService.List] request. + string page_token = 3 [(length) = "<=100"]; +} + +message ListResourcePresetsResponse { + + // List of resource presets. + repeated ResourcePreset resource_presets = 1; + + // The token that can be used to get the next page of results. + // + // If the number of results is larger than [ListResourcePresetsRequest.page_size], use the [next_page_token] as the value for the [ListResourcePresetsRequest.page_token] in the subsequent [ResourcePresetService.List] request to iterate through multiple pages of results. + // + // Each of the subsequent [ResourcePresetService.List] requests should use the [next_page_token] value returned by the previous request to continue paging through the results. + string next_page_token = 2 [(length) = "<=100"]; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/user.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/user.proto new file mode 100644 index 0000000000..cf2dbb9a2d --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/user.proto @@ -0,0 +1,188 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1; + +import "google/protobuf/wrappers.proto"; +import "yandex/cloud/validation.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// An object that represents MySQL user. +// +// See [the documentation](/docs/managed-mysql/operations/cluster-users) for details. +message User { + + // Name of the user. + string name = 1; + + // ID of the cluster the user belongs to. + string cluster_id = 2; + + // Set of permissions granted to the user. + repeated Permission permissions = 3; + + // Set of global permissions to grant to the user. + repeated GlobalPermission global_permissions = 4; + + // Set of user connection limits. + ConnectionLimits connection_limits = 5; + + // User authentication plugin. + AuthPlugin authentication_plugin = 6; +} + +message Permission { + enum Privilege { + PRIVILEGE_UNSPECIFIED = 0; + + // All privileges that can be made available to the user. + ALL_PRIVILEGES = 1; + + // Altering tables. + ALTER = 2; + + // Altering stored routines and functions. + ALTER_ROUTINE = 3; + + // Creating tables or indexes. + CREATE = 4; + + // Creating stored routines. + CREATE_ROUTINE = 5; + + // Creating temporary tables. + CREATE_TEMPORARY_TABLES = 6; + + // Creating views. + CREATE_VIEW = 7; + + // Deleting tables. + DELETE = 8; + + // Removing tables or views. + DROP = 9; + + // Creating, altering, dropping, or displaying events for the Event Scheduler. + EVENT = 10; + + // Executing stored routines. + EXECUTE = 11; + + // Creating and removing indexes. + INDEX = 12; + + // Inserting rows into the database. + INSERT = 13; + + // Using `LOCK TABLES` statement for tables available with `SELECT` privilege. + LOCK_TABLES = 14; + + // Selecting rows from tables. + // + // Some `SELECT` statements can be allowed without the `SELECT` privilege. All statements that read column values require the `SELECT` privilege. + // + // See [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_select) for details. + SELECT = 15; + + // Using the `SHOW CREATE VIEW` statement. Also needed for views used with `EXPLAIN`. + SHOW_VIEW = 16; + + // Creating, removing, executing, or displaying triggers for a table. + TRIGGER = 17; + + // Updating rows in the database. + UPDATE = 18; + + // Creation of a foreign key constraint for the parent table. + REFERENCES = 19; + } + + // Name of the database that the permission grants access to. + string database_name = 1; + + // Roles granted to the user within the database. + // + // See [the documentation](/docs/managed-mysql/operations/grant) for details. + repeated Privilege roles = 2 [(size) = ">=1"]; +} + +enum GlobalPermission { + GLOBAL_PERMISSION_UNSPECIFIED = 0; + + // Enables use of the `SHOW MASTER STATUS`, `SHOW SLAVE STATUS`, and `SHOW BINARY LOGS` statements. + REPLICATION_CLIENT = 1; + + // Enables the account to request updates that have been made to databases on the master server, + // using the `SHOW SLAVE HOSTS`, `SHOW RELAYLOG EVENTS` and `SHOW BINLOG EVENTS` statements. + REPLICATION_SLAVE = 2; + + // Enables display of information about the the statements currently being performed by sessions (the set of threads executing within the server). + // + // The privilege enables use of `SHOW PROCESSLIST` or `mysqladmin` processlist to see threads belonging to other users. + // You can always see your own threads. The `PROCESS` privilege also enables use of `SHOW ENGINE`. + PROCESS = 3; + + // Enables use of the `FLUSH OPTIMIZER_COSTS` statement. + FLUSH_OPTIMIZER_COSTS = 4; + + // Enables a user to access definitions and properties of all stored routines (stored procedures and functions), even those for which the user is not named as the routine DEFINER. + // This access includes: + // The contents of the Information Schema `ROUTINES` table. + // The `SHOW CREATE FUNCTION` and `SHOW CREATE PROCEDURE` statements. + // The `SHOW FUNCTION CODE` and `SHOW PROCEDURE CODE` statements. + // The SHOW `FUNCTION STATUS` and `SHOW PROCEDURE STATUS` statements. + SHOW_ROUTINE = 5; +} + +message ConnectionLimits { + + // The maximum permitted number of user questions per hour. + google.protobuf.Int64Value max_questions_per_hour = 1 [(value) = ">=0"]; + + // The maximum permitted number of user updates per hour. + google.protobuf.Int64Value max_updates_per_hour = 2 [(value) = ">=0"]; + + // The maximum permitted number of simultaneous client connections per hour. + google.protobuf.Int64Value max_connections_per_hour = 3 [(value) = ">=0"]; + + // The maximum number of simultaneous connections permitted to any given MySQL user account. + google.protobuf.Int64Value max_user_connections = 4 [(value) = ">=0"]; +} + +enum AuthPlugin { + AUTH_PLUGIN_UNSPECIFIED = 0; + + // Use [Native Pluggable Authentication](https://dev.mysql.com/doc/refman/8.0/en/native-pluggable-authentication.html). + MYSQL_NATIVE_PASSWORD = 1; + + // Use [Caching SHA-2 Pluggable Authentication](https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html). + CACHING_SHA2_PASSWORD = 2; + + // Use [SHA-256 Pluggable Authentication](https://dev.mysql.com/doc/refman/8.0/en/sha256-pluggable-authentication.html). + SHA256_PASSWORD = 3; +} + +message UserSpec { + + // Name of the user. + string name = 1 [(required) = true, (length) = "<=32", (pattern) = "[a-zA-Z0-9_-]*"]; + + // Password of the user. + string password = 2 [(required) = true, (length) = "8-128"]; + + // Set of permissions granted to the user to access specific databases. + // One permission per database. + // + // When a permission for a database is set, the user will have access to the database. + repeated Permission permissions = 3; + + // Set of global permissions to grant to the user. + repeated GlobalPermission global_permissions = 4; + + // Set of user connection limits. + ConnectionLimits connection_limits = 5; + + // User authentication plugin. + AuthPlugin authentication_plugin = 6; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/user_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/user_service.proto new file mode 100644 index 0000000000..5422357cbe --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/mysql/v1/user_service.proto @@ -0,0 +1,250 @@ +syntax = "proto3"; + +package yandex.cloud.mdb.mysql.v1; + +import "google/api/annotations.proto"; +import "google/protobuf/field_mask.proto"; +import "yandex/cloud/api/operation.proto"; +import "yandex/cloud/operation/operation.proto"; +import "yandex/cloud/validation.proto"; +import "yandex/cloud/mdb/mysql/v1/user.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/mysql/v1;mysql"; +option java_package = "yandex.cloud.api.mdb.mysql.v1"; + +// A set of methods for managing MySQL users. +// +// See [the documentation](/docs/managed-mysql/operations/cluster-users) for details. +service UserService { + + // Retrieves information about the specified user. + rpc Get (GetUserRequest) returns (User) { + option (google.api.http) = { get: "/managed-mysql/v1/clusters/{cluster_id}/users/{user_name}" }; + } + + // Retrieves the list of users in a cluster. + rpc List (ListUsersRequest) returns (ListUsersResponse) { + option (google.api.http) = { get: "/managed-mysql/v1/clusters/{cluster_id}/users" }; + } + + // Creates a user in a cluster. + rpc Create (CreateUserRequest) returns (operation.Operation) { + option (google.api.http) = { post: "/managed-mysql/v1/clusters/{cluster_id}/users" body: "*" }; + option (yandex.cloud.api.operation) = { + metadata: "CreateUserMetadata" + response: "User" + }; + } + + // Updates a user in a cluster. + rpc Update (UpdateUserRequest) returns (operation.Operation) { + option (google.api.http) = { patch: "/managed-mysql/v1/clusters/{cluster_id}/users/{user_name}" body: "*" }; + option (yandex.cloud.api.operation) = { + metadata: "UpdateUserMetadata" + response: "User" + }; + } + + // Deletes a user in a cluster. + rpc Delete (DeleteUserRequest) returns (operation.Operation) { + option (google.api.http) = { delete: "/managed-mysql/v1/clusters/{cluster_id}/users/{user_name}" }; + option (yandex.cloud.api.operation) = { + metadata: "DeleteUserMetadata" + response: "google.protobuf.Empty" + }; + } + + // Grants permission to access a database to a user in a cluster. + rpc GrantPermission (GrantUserPermissionRequest) returns (operation.Operation) { + option (google.api.http) = { post: "/managed-mysql/v1/clusters/{cluster_id}/users/{user_name}:grantPermission" body: "*" }; + option (yandex.cloud.api.operation) = { + metadata: "GrantUserPermissionMetadata" + response: "User" + }; + } + + // Revokes permission to access a database from a user in a cluster. + rpc RevokePermission (RevokeUserPermissionRequest) returns (operation.Operation) { + option (google.api.http) = { post: "/managed-mysql/v1/clusters/{cluster_id}/users/{user_name}:revokePermission" body: "*" }; + option (yandex.cloud.api.operation) = { + metadata: "RevokeUserPermissionMetadata" + response: "User" + }; + } +} + +message GetUserRequest { + + // ID of the cluster the user belongs to. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [(required) = true, (length) = "<=50"]; + + // Name of the user to return information about. + // + // To get this name, make a [UserService.List] request. + string user_name = 2 [(required) = true, (length) = "<=63", (pattern) = "[a-zA-Z0-9_-]*"]; +} + +message ListUsersRequest { + + // ID of the cluster to list the users in. + // + // To get this ID, make 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 API returns a [ListUsersResponse.next_page_token] that can be used to get the next page of results in the subsequent [UserService.List] requests. + int64 page_size = 2 [(value) = "0-1000"]; + + // Page token that can be used to iterate through multiple pages of results. + // + // To get the next page of results, set [page_token] to the [ListUsersResponse.next_page_token] returned by the previous [UserService.List] request. + string page_token = 3 [(length) = "<=100"]; +} + +message ListUsersResponse { + + // List of users. + repeated User users = 1; + + // The token that can be used to get the next page of results. + // + // If the number of results is larger than [ListUsersRequest.page_size], use the [next_page_token] as the value for the [ListUsersRequest.page_token] in the subsequent [UserService.List] request to iterate through multiple pages of results. + // + // Each of the subsequent [UserService.List] requests should use the [next_page_token] value returned by the previous request to continue paging through the results. + string next_page_token = 2; +} + +message CreateUserRequest { + + // ID of the cluster to create the user in. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [(required) = true, (length) = "<=50"]; + + // Configuration of the user. + UserSpec user_spec = 2 [(required) = true]; +} + +message CreateUserMetadata { + + // ID of the cluster the user is being created in. + string cluster_id = 1; + + // Name of the user that is being created. + string user_name = 2; +} + +message UpdateUserRequest { + + // ID of the cluster to update the user in. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [(required) = true, (length) = "<=50"]; + + // Name of the user to update. + // + // To get this name, make a [UserService.List] request. + string user_name = 2 [(required) = true, (length) = "<=63", (pattern) = "[a-zA-Z0-9_-]*"]; + + // Field mask that specifies which settings of the user should be updated. + google.protobuf.FieldMask update_mask = 3; + + // New password for the user. + string password = 4 [(length) = "8-128"]; + + // A new set of permissions that should be granted to the user. + repeated Permission permissions = 5; + + // New set of global permissions to grant to the user. + repeated GlobalPermission global_permissions = 6; + + // Set of changed user connection limits. + ConnectionLimits connection_limits = 7; + + // New user authentication plugin. + AuthPlugin authentication_plugin = 8; +} + +message UpdateUserMetadata { + + // ID of the cluster the user is being updated in. + string cluster_id = 1; + + // Name of the user that is being updated. + string user_name = 2; +} + +message DeleteUserRequest { + + // ID of the cluster to delete the user from. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [(required) = true, (length) = "<=50"]; + + // Name of the user to delete. + // + // To get this name, make a [UserService.List] request. + string user_name = 2 [(required) = true, (length) = "<=63", (pattern) = "[a-zA-Z0-9_-]*"]; +} + +message DeleteUserMetadata { + + // ID of the cluster the user is being deleted from. + string cluster_id = 1; + + // Name of the user that is being deleted. + string user_name = 2; +} + +message GrantUserPermissionRequest { + + // ID of the cluster to grant permission to the user in. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [(required) = true, (length) = "<=50"]; + + // Name of the user to grant permission to. + // + // To get this name, make a [UserService.List] request. + string user_name = 2 [(required) = true, (length) = "<=63", (pattern) = "[a-zA-Z0-9_-]*"]; + + // Permission that should be granted to the specified user. + Permission permission = 3 [(required) = true]; +} + +message GrantUserPermissionMetadata { + + // ID of the cluster the user is being granted a permission in. + string cluster_id = 1; + + // Name of the user that is being granted a permission. + string user_name = 2; +} + +message RevokeUserPermissionRequest { + + // ID of the cluster to revoke permission from the user in. + // + // To get this ID, make a [ClusterService.List] request. + string cluster_id = 1 [(required) = true, (length) = "<=50"]; + + // Name of the user to revoke permission from. + // + // To get this name, make a [UserService.List] request. + string user_name = 2 [(required) = true, (length) = "<=63", (pattern) = "[a-zA-Z0-9_-]*"]; + + // Permission that should be revoked from the user. + Permission permission = 3 [(required) = true]; +} + +message RevokeUserPermissionMetadata { + + // ID of the cluster the user is being revoked a permission in. + string cluster_id = 1; + + // Name of the user whose permission is being revoked. + string user_name = 2; +} |