aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1
diff options
context:
space:
mode:
authoriddqd <iddqd@yandex-team.com>2024-06-11 10:12:13 +0300
committeriddqd <iddqd@yandex-team.com>2024-06-11 10:22:43 +0300
commit07f57e35443ab7f09471caf2dbf1afbcced4d9f7 (patch)
treea4a7b66ead62e83fa988a2ec2ce6576311c1f4b1 /contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1
parent6db3b8ca95e44179e48306a58656fb1f9317d9c3 (diff)
downloadydb-07f57e35443ab7f09471caf2dbf1afbcced4d9f7.tar.gz
add contrib/python/yandexcloud to import
03b7d3cad2237366b55b393e18d4dc5eb222798c
Diffstat (limited to 'contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1')
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/auth.proto37
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/backup.proto38
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/backup_service.proto59
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/cluster.proto355
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/cluster_service.proto1170
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/config/opensearch.proto28
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/maintenance.proto75
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/resource_preset.proto22
-rw-r--r--contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/resource_preset_service.proto58
9 files changed, 1842 insertions, 0 deletions
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/auth.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/auth.proto
new file mode 100644
index 0000000000..775e4f13f7
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/auth.proto
@@ -0,0 +1,37 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.opensearch.v1;
+
+import "yandex/cloud/validation.proto";
+
+option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/opensearch/v1;opensearch";
+option java_package = "yandex.cloud.api.mdb.opensearch.v1";
+
+message AuthSettings {
+
+ // SAML settings
+ SAMLSettings saml = 1;
+
+ // OpenID settings
+ // OpenIDSettings openid = 2;
+
+}
+
+message SAMLSettings {
+ bool enabled = 1;
+
+ // Required. The entity ID of your IdP.
+ string idp_entity_id = 2 [(length) = "<=250"];
+ // Required. The SAML 2.0 metadata file of your IdP.
+ bytes idp_metadata_file = 3 [(length) = "<=10000"];
+
+ // Required. The entity ID of the service provider.
+ string sp_entity_id = 4 [(length) = "<=250"];
+ // Required. The OpenSearch Dashboards base URL.
+ string dashboards_url = 5 [(length) = "<=250"];
+
+ // Optional. The attribute in the SAML response where the roles are stored. If not configured, no roles are used.
+ string roles_key = 6 [(length) = "<=250"];
+ // Optional. The attribute in the SAML response where the subject is stored. If not configured, the NameID attribute is used.
+ string subject_key = 7 [(length) = "<=250"];
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/backup.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/backup.proto
new file mode 100644
index 0000000000..b19279f061
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/backup.proto
@@ -0,0 +1,38 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.opensearch.v1;
+
+import "google/protobuf/timestamp.proto";
+import "yandex/cloud/validation.proto";
+
+option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/opensearch/v1;opensearch";
+option java_package = "yandex.cloud.api.mdb.opensearch.v1";
+
+message Backup {
+ // Required. ID of the backup.
+ string id = 1;
+
+ // ID of the folder that the backup belongs to.
+ string folder_id = 2;
+
+ // ID of the OpenSearch cluster that the backup was created for.
+ string source_cluster_id = 3;
+
+ // Time when the backup operation was started.
+ google.protobuf.Timestamp started_at = 4;
+
+ // Time when the backup operation was completed.
+ google.protobuf.Timestamp created_at = 5;
+
+ // Names of indices in the backup.
+ repeated string indices = 6 [(size) = "<=100"];
+
+ // OpenSearch version used to create the backup.
+ string opensearch_version = 7;
+
+ // Size of the backup in bytes.
+ int64 size_bytes = 8;
+
+ // The number of indices in the backup.
+ int64 indices_total = 9;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/backup_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/backup_service.proto
new file mode 100644
index 0000000000..b680e42467
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/backup_service.proto
@@ -0,0 +1,59 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.opensearch.v1;
+
+import "google/api/annotations.proto";
+import "yandex/cloud/validation.proto";
+import "yandex/cloud/mdb/opensearch/v1/backup.proto";
+
+option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/opensearch/v1;opensearch";
+option java_package = "yandex.cloud.api.mdb.opensearch.v1";
+
+// A set of methods for managing backups.
+service BackupService {
+ // Returns the specified backup of an OpenSearch cluster.
+ rpc Get (GetBackupRequest) returns (Backup) {
+ option (google.api.http) = { get: "/managed-opensearch/v1/backups/{backup_id}" };
+ }
+
+ // Returns the list of available backups for the specified OpenSearch cluster.
+ rpc List (ListBackupsRequest) returns (ListBackupsResponse) {
+ option (google.api.http) = { get: "/managed-opensearch/v1/backups" };
+ }
+}
+
+message GetBackupRequest {
+ // ID of the backup to return.
+ string backup_id = 1 [(required) = true];
+}
+
+message ListBackupsRequest {
+ // ID of the folder to list backups in.
+ string folder_id = 1 [(required) = true, (length) = "<=50"];
+
+ // The maximum number of results per page that should be returned.
+ //
+ // If the number of available results is larger than [page_size], the service returns
+ // a [ListBackupsResponse.next_page_token] that can be used to get the next page of results
+ // in subsequent list requests.
+ //
+ // Default value is 100.
+ int64 page_size = 2 [(value) = "0-1000"];
+
+ // The page token. To get the next page of results, set [page_token] to the [ListBackupsResponse.next_page_token]
+ // returned by the previous list request.
+ string page_token = 3 [(length) = "<=100"];
+}
+
+message ListBackupsResponse {
+ // Requested list of backups.
+ repeated Backup backups = 1;
+
+ // This token allows you to get the next page of results for a list request.
+ //
+ // If the number of results is larger than [ListBackupsRequest.page_size] specified in the request,
+ // use the [next_page_token] as the value for the [ListBackupsRequest.page_token] parameter in the next list request.
+ //
+ // Each subsequent ListBackups request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/cluster.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/cluster.proto
new file mode 100644
index 0000000000..fdc6058558
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/cluster.proto
@@ -0,0 +1,355 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.opensearch.v1;
+
+import "google/protobuf/timestamp.proto";
+import "yandex/cloud/mdb/opensearch/v1/config/opensearch.proto";
+import "yandex/cloud/mdb/opensearch/v1/maintenance.proto";
+
+option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/opensearch/v1;opensearch";
+option java_package = "yandex.cloud.api.mdb.opensearch.v1";
+
+// An OpenSearch cluster resource.
+message Cluster {
+ enum Environment {
+ ENVIRONMENT_UNSPECIFIED = 0;
+
+ // Stable environment with a conservative update policy:
+ // only hotfixes are applied during regular maintenance.
+ PRODUCTION = 1;
+
+ // Environment with more aggressive update policy: new versions
+ // are rolled out irrespective of backward compatibility.
+ PRESTABLE = 2;
+ }
+
+ enum Health {
+
+ // Health of the cluster is unknown ([Host.health] for every host in the cluster is UNKNOWN).
+ HEALTH_UNKNOWN = 0;
+
+ // Cluster is working normally ([Host.health] for every host in the cluster is ALIVE).
+ ALIVE = 1;
+
+ // Cluster is inoperable ([Host.health] for every host in the cluster is DEAD).
+ DEAD = 2;
+
+ // Cluster is working below capacity ([Host.health] for at least one host in the cluster is not ALIVE).
+ DEGRADED = 3;
+ }
+
+ // Current state of the cluster.
+ enum Status {
+
+ // Cluster state is unknown.
+ STATUS_UNKNOWN = 0;
+
+ // Cluster is being created.
+ CREATING = 1;
+
+ // Cluster is running normally.
+ RUNNING = 2;
+
+ // Cluster has encountered a problem and cannot operate.
+ ERROR = 3;
+
+ // Cluster is being updated.
+ UPDATING = 4;
+
+ // Cluster is stopping.
+ STOPPING = 5;
+
+ // Cluster has stopped.
+ STOPPED = 6;
+
+ // Cluster is starting.
+ STARTING = 7;
+ }
+
+ // ID of the OpenSearch cluster.
+ // This ID is assigned by the platform at the moment of cluster creation.
+ string id = 1;
+
+ // ID of the folder that the OpenSearch cluster belongs to.
+ string folder_id = 2;
+
+ // Time when the cluster was created.
+ google.protobuf.Timestamp created_at = 3;
+
+ // Name of the OpenSearch cluster.
+ // The name is unique within the folder. 1-63 characters long.
+ string name = 4;
+
+ // Description of the OpenSearch cluster. 0-256 characters long.
+ string description = 5;
+
+ // Custom labels for the OpenSearch cluster as `key:value` pairs.
+ // Maximum 64 labels per resource.
+ map<string, string> labels = 6;
+
+ // Deployment environment of the OpenSearch cluster.
+ Environment environment = 7;
+
+ // Description of monitoring systems relevant to the OpenSearch cluster.
+ repeated Monitoring monitoring = 8;
+
+ // Configuration of the OpenSearch cluster.
+ ClusterConfig config = 9;
+
+ // ID of the cloud network that the cluster belongs to.
+ string network_id = 10;
+
+ // Aggregated cluster health.
+ Health health = 11;
+
+ // Current state of the cluster.
+ Status status = 12;
+
+ // User security groups.
+ repeated string security_group_ids = 13;
+
+ // ID of the service account used to access Object Storage.
+ string service_account_id = 14;
+
+ // Determines whether the cluster is protected from being deleted.
+ bool deletion_protection = 15;
+
+ // Cluster maintenance window. Should be defined by either one of the two options.
+ MaintenanceWindow maintenance_window = 16;
+
+ // Maintenance operation planned at nearest [maintenance_window].
+ MaintenanceOperation planned_operation = 17;
+}
+
+// Monitoring system metadata.
+message Monitoring {
+ // Name of the monitoring system.
+ string name = 1;
+
+ // Description of the monitoring system.
+ string description = 2;
+
+ // Link to the monitoring system charts for the OpenSearch cluster.
+ string link = 3;
+}
+
+// The OpenSearch cluster configuration.
+message ClusterConfig {
+ // Version of the OpenSearch server software.
+ string version = 1;
+
+ // OpenSearch configuration.
+ OpenSearch opensearch = 2;
+
+ // Dashboards configuration.
+ Dashboards dashboards = 3;
+
+ // Access policy for external services.
+ Access access = 4;
+}
+
+// The OpenSearch host group type configuration.
+message OpenSearch {
+ enum GroupRole {
+ GROUP_ROLE_UNSPECIFIED = 0;
+ DATA = 1;
+ MANAGER = 2;
+ }
+
+ // Configuration of the host group.
+ message NodeGroup {
+ // Name of the group. Must be 1-63 characters long.
+ string name = 1;
+
+ // Resources allocated to the hosts.
+ Resources resources = 2;
+
+ // Number of hosts in the group.
+ int64 hosts_count = 3;
+
+ // IDs of the availability zones the hosts belong to.
+ repeated string zone_ids = 4;
+
+ // IDs of the subnets that the hosts belong to.
+ repeated string subnet_ids = 5;
+
+ // Determines whether a public IP is assigned to the hosts in the group.
+ bool assign_public_ip = 6;
+
+ // Roles of the host group.
+ repeated GroupRole roles = 7;
+ }
+
+ // Names of the cluster plugins.
+ repeated string plugins = 1;
+
+ // Host groups of the OpenSearch type.
+ repeated NodeGroup node_groups = 2;
+
+ oneof config {
+ config.OpenSearchConfigSet2 opensearch_config_set_2 = 3 [json_name = "opensearchConfigSet_2"];
+ }
+
+ // Keystore entries names.
+ repeated string keystore_settings = 4;
+}
+
+// The Dashboards host group type configuration.
+message Dashboards {
+ message NodeGroup {
+ // Name of the group. 1-63 characters long.
+ string name = 1;
+
+ // Resources allocated to the hosts.
+ Resources resources = 2;
+
+ // Number of hosts in the group.
+ int64 hosts_count = 3;
+
+ // IDs of the availability zones the hosts belong to.
+ repeated string zone_ids = 4;
+
+ // IDs of the subnets that the hosts belong to.
+ repeated string subnet_ids = 5;
+
+ // Determines whether a public IP is assigned to the hosts in the group.
+ bool assign_public_ip = 6;
+ }
+
+ // Host groups of the Dashboards type.
+ repeated NodeGroup node_groups = 2;
+}
+
+// A list of computational resources allocated to a host.
+message Resources {
+ // ID of the preset for computational resources allocated to a host.
+ string resource_preset_id = 1;
+
+ // Volume of the storage used by the host, in bytes.
+ int64 disk_size = 2;
+
+ // Type of the storage used by the host: `network-hdd`, `network-ssd` or `local-ssd`.
+ string disk_type_id = 3;
+}
+
+// An OpenSearch cluster host resource.
+message Host {
+ reserved 7;
+
+ enum Health {
+
+ // Health of the host is unknown. Default value.
+ UNKNOWN = 0;
+
+ // The host is performing all its functions normally.
+ ALIVE = 1;
+
+ // The host is inoperable and cannot perform any of its essential functions.
+ DEAD = 2;
+
+ // The host is working below capacity or not fully functional.
+ DEGRADED = 3;
+ }
+
+ enum Type {
+ // Type of the host is unspecified. Default value.
+ TYPE_UNSPECIFIED = 0;
+
+ // An OpenSearch type host.
+ OPENSEARCH = 1;
+
+ // A Dashboards type host.
+ DASHBOARDS = 2;
+ }
+
+ // CPU usage of the host.
+ message CPUMetric {
+ // Time of the record.
+ int64 timestamp = 1;
+
+ // Percentage of the CPU used.
+ double used = 2;
+ }
+
+ // RAM usage of the host.
+ message MemoryMetric {
+ // Time of the record.
+ int64 timestamp = 1;
+
+ // The amount of RAM used, in bytes.
+ int64 used = 2;
+
+ // Total amount of RAM allocated to the host.
+ int64 total = 3;
+ }
+
+ // Disk usage of the host.
+ message DiskMetric {
+ // Time of the record.
+ int64 timestamp = 1;
+
+ // The amount of disk space used, in bytes.
+ int64 used = 2;
+
+ // Total amount of disk space allocated to the host.
+ int64 total = 3;
+ }
+
+ // Resources used by the host.
+ message SystemMetrics {
+ // CPU usage of the host.
+ CPUMetric cpu = 1;
+
+ // RAM usage of the host.
+ MemoryMetric memory = 2;
+
+ // Disk usage of the host.
+ DiskMetric disk = 3;
+ }
+
+ // Required. Name of the OpenSearch host.
+ //
+ // The host name is assigned by the platform at creation time and cannot be changed.
+ //
+ // The name is unique across all MDB hosts that exist on the platform, as it defines the FQDN of the host.
+ string name = 1;
+
+ // Required. ID of the OpenSearch cluster. The ID is assigned by the platform at creation time.
+ string cluster_id = 2;
+
+ // ID of the availability zone the OpenSearch host belongs to.
+ string zone_id = 3;
+
+ // Resources allocated to the OpenSearch host.
+ Resources resources = 4;
+
+ // Type of the host. If the field has default value, it is not returned in the response.
+ Type type = 5;
+
+ // Aggregated health of the host. If the field has default value, it is not returned in the response.
+ Health health = 6;
+
+ // ID of the subnet that the host belongs to.
+ string subnet_id = 8;
+
+ // Determines whether a public IP is assigned to the host.
+ bool assign_public_ip = 9;
+
+ // Resources used by the host.
+ SystemMetrics system = 10;
+
+ // Name of the host group that the host belongs to.
+ string node_group = 11;
+
+ // Roles of the host.
+ repeated OpenSearch.GroupRole roles = 12;
+}
+
+// Access policy for external services.
+message Access {
+ // Determines whether the access to Data Transfer is allowed.
+ bool data_transfer = 1;
+
+ // Determines whether the access to Serverless is allowed.
+ bool serverless = 2;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/cluster_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/cluster_service.proto
new file mode 100644
index 0000000000..81f4867e5b
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/cluster_service.proto
@@ -0,0 +1,1170 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.opensearch.v1;
+
+import "google/api/annotations.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/timestamp.proto";
+import "yandex/cloud/api/operation.proto";
+import "yandex/cloud/mdb/opensearch/v1/auth.proto";
+import "yandex/cloud/mdb/opensearch/v1/backup.proto";
+import "yandex/cloud/mdb/opensearch/v1/cluster.proto";
+import "yandex/cloud/mdb/opensearch/v1/config/opensearch.proto";
+import "yandex/cloud/mdb/opensearch/v1/maintenance.proto";
+import "yandex/cloud/operation/operation.proto";
+import "yandex/cloud/validation.proto";
+
+option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/opensearch/v1;opensearch";
+option java_package = "yandex.cloud.api.mdb.opensearch.v1";
+
+// A set of methods for managing OpenSearch clusters.
+service ClusterService {
+ // Returns the specified OpenSearch cluster.
+ //
+ // To get the list of all available OpenSearch clusters, make a [List] request.
+ rpc Get(GetClusterRequest) returns (Cluster) {
+ option (google.api.http) = {get: "/managed-opensearch/v1/clusters/{cluster_id}"};
+ }
+
+ // Retrieves the list of OpenSearch clusters that belong to the specified folder.
+ rpc List(ListClustersRequest) returns (ListClustersResponse) {
+ option (google.api.http) = {get: "/managed-opensearch/v1/clusters"};
+ }
+
+ // Creates an OpenSearch cluster in the specified folder.
+ rpc Create(CreateClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ post: "/managed-opensearch/v1/clusters"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "CreateClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Updates the specified OpenSearch cluster.
+ rpc Update(UpdateClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ patch: "/managed-opensearch/v1/clusters/{cluster_id}"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "UpdateClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Deletes the specified OpenSearch cluster.
+ rpc Delete(DeleteClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {delete: "/managed-opensearch/v1/clusters/{cluster_id}"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "DeleteClusterMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Creates a backup for the specified OpenSearch cluster.
+ rpc Backup(BackupClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {post: "/managed-opensearch/v1/clusters/{cluster_id}:backup"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "BackupClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Creates a new OpenSearch cluster using the specified backup.
+ rpc Restore(RestoreClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ post: "/managed-opensearch/v1/clusters:restore"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "RestoreClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Reschedules a planned maintenance operation.
+ rpc RescheduleMaintenance(RescheduleMaintenanceRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ post: "/managed-opensearch/v1/clusters/{cluster_id}:rescheduleMaintenance"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "RescheduleMaintenanceMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Returns a list of available backups for the specified OpenSearch cluster.
+ rpc ListBackups(ListClusterBackupsRequest) returns (ListClusterBackupsResponse) {
+ option (google.api.http) = {get: "/managed-opensearch/v1/clusters/{cluster_id}/backups"};
+ }
+
+ // Moves the specified OpenSearch cluster to the specified folder.
+ rpc Move(MoveClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ post: "/managed-opensearch/v1/clusters/{cluster_id}:move"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "MoveClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Starts the specified OpenSearch cluster.
+ rpc Start(StartClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {post: "/managed-opensearch/v1/clusters/{cluster_id}:start"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "StartClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Stops the specified OpenSearch cluster.
+ rpc Stop(StopClusterRequest) returns (operation.Operation) {
+ option (google.api.http) = {post: "/managed-opensearch/v1/clusters/{cluster_id}:stop"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "StopClusterMetadata"
+ response: "Cluster"
+ };
+ }
+
+ // Retrieves logs for the specified OpenSearch cluster.
+ // For detailed description, see the [Logs](/yandex-mdb-guide/concepts/logs.html) section in the developer's guide.
+ rpc ListLogs(ListClusterLogsRequest) returns (ListClusterLogsResponse) {
+ option (google.api.http) = {get: "/managed-opensearch/v1/clusters/{cluster_id}:logs"};
+ }
+
+ // Same as ListLogs but using server-side streaming. Also allows for 'tail -f' semantics.
+ rpc StreamLogs(StreamClusterLogsRequest) returns (stream StreamLogRecord) {
+ option (google.api.http) = {get: "/managed-opensearch/v1/clusters/{cluster_id}:stream_logs"};
+ }
+
+ // Retrieves the list of Operation resources for the specified cluster.
+ rpc ListOperations(ListClusterOperationsRequest) returns (ListClusterOperationsResponse) {
+ option (google.api.http) = {get: "/managed-opensearch/v1/clusters/{cluster_id}/operations"};
+ }
+
+ // Retrieves a list of hosts for the specified cluster.
+ rpc ListHosts(ListClusterHostsRequest) returns (ListClusterHostsResponse) {
+ option (google.api.http) = {get: "/managed-opensearch/v1/clusters/{cluster_id}/hosts"};
+ }
+
+ // Creates an OpenSearch type host group.
+ rpc AddOpenSearchNodeGroup(AddOpenSearchNodeGroupRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ post: "/managed-opensearch/v1/clusters/{cluster_id}/opensearch/node_groups"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "AddNodeGroupMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Deletes an OpenSearch type host group.
+ rpc DeleteOpenSearchNodeGroup(DeleteOpenSearchNodeGroupRequest) returns (operation.Operation) {
+ option (google.api.http) = {delete: "/managed-opensearch/v1/clusters/{cluster_id}/opensearch/node_groups/{name}"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "DeleteNodeGroupMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Updates an OpenSearch type host group.
+ rpc UpdateOpenSearchNodeGroup(UpdateOpenSearchNodeGroupRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ patch: "/managed-opensearch/v1/clusters/{cluster_id}/opensearch/node_groups/{name}"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "UpdateNodeGroupMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Creates a Dashboards type host group.
+ rpc AddDashboardsNodeGroup(AddDashboardsNodeGroupRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ post: "/managed-opensearch/v1/clusters/{cluster_id}/dashboards/node_groups"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "AddNodeGroupMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Deletes a Dashboards type host group.
+ rpc DeleteDashboardsNodeGroup(DeleteDashboardsNodeGroupRequest) returns (operation.Operation) {
+ option (google.api.http) = {delete: "/managed-opensearch/v1/clusters/{cluster_id}/dashboards/node_groups/{name}"};
+ option (yandex.cloud.api.operation) = {
+ metadata: "DeleteNodeGroupMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Updates a Dashboards type host group.
+ rpc UpdateDashboardsNodeGroup(UpdateDashboardsNodeGroupRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ patch: "/managed-opensearch/v1/clusters/{cluster_id}/dashboards/node_groups/{name}"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "UpdateNodeGroupMetadata"
+ response: "google.protobuf.Empty"
+ };
+ }
+
+ // Retrieves auth settings for specified cluster.
+ rpc GetAuthSettings(GetAuthSettingsRequest) returns (AuthSettings) {
+ option (google.api.http) = {get: "/managed-opensearch/v1/clusters/{cluster_id}/auth"};
+ }
+
+ // Updates auth settings for specified cluster.
+ rpc UpdateAuthSettings(UpdateAuthSettingsRequest) returns (operation.Operation) {
+ option (google.api.http) = {
+ put: "/managed-opensearch/v1/clusters/{cluster_id}/auth"
+ body: "*"
+ };
+ option (yandex.cloud.api.operation) = {
+ metadata: "UpdateAuthSettingsMetadata"
+ response: "AuthSettings"
+ };
+ }
+}
+
+message GetClusterRequest {
+ // ID of the OpenSearch cluster to return.
+ //
+ // To get the cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message ListClustersRequest {
+ // ID of the folder to list OpenSearch clusters in.
+ //
+ // To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
+ string folder_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns
+ // a [ListClustersResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ int64 page_size = 2 [(value) = "<=1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the [ListClustersResponse.next_page_token]
+ // returned by the previous list request.
+ string page_token = 3 [(length) = "<=100"];
+
+ // A filter expression that filters resources listed in the response.
+ //
+ // The expression must specify:
+ //
+ // 1. The field name. Currently you can only use filtering with the [Cluster.name] field.
+ //
+ // 2. An `=` operator.
+ //
+ // 3. The value in double quotes (`"`). Must be 1-63 characters long and match the regular expression `[a-zA-Z0-9_-]+`.
+ string filter = 4 [(length) = "<=1000"];
+}
+
+message ListClustersResponse {
+ // List of OpenSearch clusters.
+ repeated Cluster clusters = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
+ // for the [ListClustersRequest.page_token] parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2;
+}
+
+message CreateClusterRequest {
+ // ID of the folder to create the OpenSearch cluster in.
+ string folder_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Name of the OpenSearch cluster. The name must be unique within the folder.
+ string name = 2 [
+ (required) = true,
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+
+ // Description of the OpenSearch cluster.
+ string description = 3 [(length) = "<=256"];
+
+ // Custom labels for the OpenSearch cluster as `key:value` pairs.
+ // For example, `"project": "mvp"` or `"source": "dictionary"`.
+ map<string, string> labels = 4 [
+ (yandex.cloud.size) = "<=64",
+ (length) = "<=63",
+ (pattern) = "[-_0-9a-z]*",
+ (map_key).length = "1-63",
+ (map_key).pattern = "[a-z][-_0-9a-z]*"
+ ];
+
+ // Deployment environment of the OpenSearch cluster.
+ Cluster.Environment environment = 5;
+
+ // OpenSearch cluster configuration.
+ ConfigCreateSpec config_spec = 6 [(required) = true];
+
+ // ID of the network to create the cluster in.
+ string network_id = 7 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // User security groups.
+ repeated string security_group_ids = 8;
+
+ // ID of the service account used to access Object Storage.
+ string service_account_id = 9;
+
+ // Determines whether the cluster is protected from being deleted.
+ bool deletion_protection = 10;
+
+ // Cluster maintenance window. Should be defined by either one of the two options.
+ MaintenanceWindow maintenance_window = 11;
+}
+
+message CreateClusterMetadata {
+ // ID of the OpenSearch cluster that is being created.
+ string cluster_id = 1;
+}
+
+message UpdateClusterRequest {
+ // ID of the OpenSearch cluster resource to update.
+ // To get the OpenSearch cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Field mask that specifies which fields of the OpenSearch cluster resource should be updated.
+ google.protobuf.FieldMask update_mask = 2;
+
+ // New description of the OpenSearch cluster.
+ string description = 3 [(length) = "<=256"];
+
+ // Custom labels for the OpenSearch cluster as `key:value` pairs.
+ // For example, `"project": "mvp"` or `"source": "dictionary"`.
+ //
+ // The new set of labels completely replaces the old one. To add a label, request the current
+ // set with the [ClusterService.Get] method, then send an [ClusterService.Update] request with the new label added to the set.
+ map<string, string> labels = 4 [
+ (yandex.cloud.size) = "<=64",
+ (length) = "<=63",
+ (pattern) = "[-_0-9a-z]*",
+ (map_key).length = "1-63",
+ (map_key).pattern = "[a-z][-_0-9a-z]*"
+ ];
+
+ // New cluster configuration
+ ConfigUpdateSpec config_spec = 5;
+
+ // New name for the cluster. The name must be unique within the folder.
+ string name = 6 [
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+
+ // User security groups
+ repeated string security_group_ids = 7;
+
+ // ID of the service account used to access Object Storage.
+ string service_account_id = 8;
+
+ // Determines whether the cluster is protected from being deleted.
+ bool deletion_protection = 9;
+
+ // Cluster maintenance window. Should be defined by either one of the two options.
+ MaintenanceWindow maintenance_window = 10;
+}
+
+message UpdateClusterMetadata {
+ // ID of the OpenSearch cluster resource that is being updated.
+ string cluster_id = 1;
+}
+
+message DeleteClusterRequest {
+ // ID of the OpenSearch cluster to delete.
+ // To get the OpenSearch cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message DeleteClusterMetadata {
+ // ID of the OpenSearch cluster that is being deleted.
+ string cluster_id = 1;
+}
+
+message ListClusterLogsRequest {
+ // ID of the OpenSearch cluster to request logs for.
+ //
+ // To get the OpenSearch cluster ID use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Columns from log table to request.
+ // If no columns are specified, entire log records are returned.
+ repeated string column_filter = 2;
+
+ // Start timestamp for the logs request.
+ google.protobuf.Timestamp from_time = 3;
+
+ // End timestamp for the logs request.
+ google.protobuf.Timestamp to_time = 4;
+
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns a [ListClusterLogsResponse.next_page_token]
+ // that can be used to get the next page of results in subsequent list requests.
+ int64 page_size = 5 [(value) = "<=1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the
+ // [ListClusterLogsResponse.next_page_token] returned by the previous list request.
+ string page_token = 6 [(length) = "<=100"];
+
+ // The service always returns a [ListClusterLogsResponse.next_page_token], even if the current page is empty.
+ bool always_next_page_token = 7;
+
+ // A filter expression that filters resources listed in the response.
+ //
+ // The expression must specify:
+ //
+ // 1. A field name. Currently filtering can be applied to the [LogRecord.logs.message.hostname] field.
+ //
+ // 2. A conditional operator. Can be either `=` or `!=` for single values, `IN` or `NOT IN` for lists of values.
+ //
+ // 3. A value. Must be 1-63 characters long and match the regular expression `^[a-z0-9.-]{1,61}$`.
+ //
+ // Examples of a filter:
+ // * `message.hostname='node1.db.cloud.yandex.net'`;
+ // * `message.error_severity IN ("ERROR", "FATAL", "PANIC") AND message.hostname = "node1.db.cloud.yandex.net"`.
+ //
+ string filter = 8 [(length) = "<=1000"];
+
+ // Type of the service to request logs about.
+ ServiceType service_type = 9;
+
+ enum ServiceType {
+ // Type is not specified.
+ SERVICE_TYPE_UNSPECIFIED = 0;
+
+ // OpenSearch logs.
+ OPENSEARCH = 1;
+
+ // Dashboards logs.
+ DASHBOARDS = 2;
+ }
+}
+
+message LogRecord {
+ // Time when the log was recorded.
+ google.protobuf.Timestamp timestamp = 1;
+
+ // Contents of the log record.
+ map<string, string> message = 2;
+}
+
+message ListClusterLogsResponse {
+ // Requested log records.
+ repeated LogRecord logs = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListClusterLogsRequest.page_size], use the [next_page_token] as the value
+ // for the [ListClusterLogsRequest.page_token] query parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ //
+ // This value is interchangeable with the [StreamLogRecord.next_record_token] from [StreamLogs] method.
+ string next_page_token = 2;
+}
+
+message StreamLogRecord {
+ // One of the requested log records.
+ LogRecord record = 1;
+
+ // This token allows you to continue streaming logs starting from the exact same record.
+ //
+ // To do that, specify value of [next_record_token] as the value for [StreamLogs.record_token] parameter in the next [StreamLogs] request.
+ //
+ // This value is interchangeable with [ListLogs.next_page_token] from [ListLogs] method.
+ string next_record_token = 2;
+}
+
+message StreamClusterLogsRequest {
+ // ID of the OpenSearch cluster.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Columns from log table to get in the response.
+ // If no columns are specified, entire log records are returned.
+ repeated string column_filter = 2;
+
+ // Start timestamp for the logs request.
+ google.protobuf.Timestamp from_time = 3;
+
+ // End timestamp for the logs request.
+ //
+ // If this field is not set, all existing logs are sent as well as the new ones as they appear.
+ //
+ // In essence it has `tail -f` semantics.
+ //
+ google.protobuf.Timestamp to_time = 4;
+
+ // Record token. Set `record_token` to the `next_record_token` returned by the previous [StreamLogs]
+ // request to start streaming from the next log record.
+ string record_token = 5 [(length) = "<=100"];
+
+ // A filter expression that filters resources listed in the response.
+ //
+ // The expression must specify:
+ //
+ // 1. A field name. Currently filtering can be applied to the [LogRecord.logs.message.hostname] field.
+ //
+ // 2. A conditional operator. Can be either `=` or `!=` for single values, `IN` or `NOT IN` for lists of values.
+ //
+ // 3. A value. Must be 1-63 characters long and match the regular expression `^[a-z0-9.-]{1,61}$`.
+ //
+ // Examples of a filter:
+ // * `message.hostname='node1.db.cloud.yandex.net'`;
+ // * `message.error_severity IN ("ERROR", "FATAL", "PANIC") AND message.hostname = "node1.db.cloud.yandex.net"`.
+ //
+ string filter = 6 [(length) = "<=1000"];
+
+ // Type of the service to request logs about.
+ ServiceType service_type = 7;
+
+ enum ServiceType {
+ // Type is not specified.
+ SERVICE_TYPE_UNSPECIFIED = 0;
+
+ // OpenSearch logs.
+ OPENSEARCH = 1;
+
+ // Dashboards logs.
+ DASHBOARDS = 2;
+ }
+}
+
+message ListClusterOperationsRequest {
+ // ID of the OpenSearch cluster resource to list operations for.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns
+ // a [ListClusterOperationsResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ //
+ int64 page_size = 2 [(value) = "<=1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the [ListClusterOperationsResponse.next_page_token] returned by the previous list request.
+ //
+ string page_token = 3 [(length) = "<=100"];
+}
+
+message ListClusterOperationsResponse {
+ // List of Operation resources for the specified OpenSearch cluster.
+ repeated operation.Operation operations = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListClusterOperationsRequest.page_size], use the [next_page_token] as the value for the [ListClusterOperationsRequest.page_token] query parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2;
+}
+
+message ListClusterHostsRequest {
+ // ID of the OpenSearch cluster.
+ // To get the OpenSearch cluster ID use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns
+ // a [ListClusterHostsResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ //
+ int64 page_size = 2 [(value) = "<=1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the [ListClusterHostsResponse.next_page_token]
+ // returned by the previous list request.
+ //
+ string page_token = 3 [(length) = "<=100"];
+}
+
+message ListClusterHostsResponse {
+ // Requested list of hosts for the cluster.
+ repeated Host hosts = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListClusterHostsRequest.page_size], use the [next_page_token]
+ // as the value for the [ListClusterHostsRequest.page_token] query parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2;
+}
+
+message MoveClusterRequest {
+ // ID of the OpenSearch cluster to move.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+ // ID of the destination folder.
+ string destination_folder_id = 2 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message MoveClusterMetadata {
+ // ID of the OpenSearch cluster being moved.
+ string cluster_id = 1;
+ // ID of the source folder.
+ string source_folder_id = 2;
+ // ID of the destnation folder.
+ string destination_folder_id = 3;
+}
+
+message StartClusterRequest {
+ // ID of the OpenSearch cluster to start.
+ // To get the cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message StartClusterMetadata {
+ // ID of the OpenSearch cluster being started.
+ string cluster_id = 1;
+}
+
+message StopClusterRequest {
+ // ID of the OpenSearch cluster to stop.
+ // To get the cluster ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message StopClusterMetadata {
+ // ID of the OpenSearch cluster being stopped.
+ string cluster_id = 1;
+}
+
+message ConfigCreateSpec {
+ // OpenSearch version.
+ string version = 1; // No formal validation, a list of supported versions should suffice.
+
+ // OpenSearch admin password.
+ string admin_password = 2 [(required) = true];
+
+ // OpenSearch configuration.
+ OpenSearchCreateSpec opensearch_spec = 3;
+
+ // Dashboards configuration.
+ DashboardsCreateSpec dashboards_spec = 4;
+
+ // Access policy for external services.
+ Access access = 5;
+}
+
+// Single keystore entry.
+message KeystoreSetting {
+ // Keystore entry name.
+ string name = 1;
+ // Keystore entry value.
+ string value = 2;
+}
+
+// OpenSearch create-time configuration.
+message OpenSearchCreateSpec {
+ // Configuration of the host group.
+ message NodeGroup {
+ // Name of the group.
+ string name = 1 [
+ (required) = true,
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+
+ // Resources allocated to the hosts.
+ Resources resources = 2;
+
+ // Number of hosts in the group.
+ int64 hosts_count = 3 [(value) = ">=1"];
+
+ // IDs of the availability zones the hosts belong to.
+ repeated string zone_ids = 4 [
+ (yandex.cloud.size) = "<=10",
+ (length) = "<=50"
+ ];
+
+ // IDs of the subnets that the hosts belong to.
+ repeated string subnet_ids = 5 [
+ (yandex.cloud.size) = "<=10",
+ (length) = "<=50"
+ ];
+
+ // Determines whether a public IP is assigned to the hosts in the group.
+ bool assign_public_ip = 6;
+
+ // Roles of the hosts in the group.
+ repeated OpenSearch.GroupRole roles = 7;
+ }
+
+ // Names of the cluster plugins.
+ repeated string plugins = 1;
+
+ // OpenSearch type host groups of the cluster.
+ repeated NodeGroup node_groups = 2;
+
+ oneof config {
+ config.OpenSearchConfig2 opensearch_config_2 = 3 [json_name = "opensearchConfig_2"];
+ }
+
+ // Initial cluster keystore settings.
+ repeated KeystoreSetting keystore_settings = 4;
+}
+
+// Dashboards create-time configuration.
+message DashboardsCreateSpec {
+ message NodeGroup {
+ // Name of the group.
+ string name = 1 [
+ (required) = true,
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+
+ // Resources allocated to the hosts.
+ Resources resources = 2;
+
+ // Number of hosts in the group.
+ int64 hosts_count = 3 [(value) = ">=1"];
+
+ // IDs of the availability zones the hosts belong to.
+ repeated string zone_ids = 4;
+
+ // IDs of the subnets that the hosts belong to.
+ repeated string subnet_ids = 5 [
+ (yandex.cloud.size) = "<=10",
+ (length) = "<=50"
+ ];
+
+ // Determines whether a public IP is assigned to the hosts in the group.
+ bool assign_public_ip = 6;
+ }
+
+ // Dashboards type host groups of the cluster.
+ repeated NodeGroup node_groups = 2;
+}
+
+message ConfigUpdateSpec {
+ // OpenSearch version.
+ string version = 1; // No formal validation, a list of supported versions should suffice.
+
+ // OpenSearch admin password.
+ string admin_password = 2 [(required) = true];
+
+ // OpenSearch configuration.
+ OpenSearchClusterUpdateSpec opensearch_spec = 3;
+
+ // Dashboards configuration.
+ DashboardsClusterUpdateSpec dashboards_spec = 4;
+
+ // Access policy for external services.
+ Access access = 5;
+}
+
+message OpenSearchClusterUpdateSpec {
+ // Names of the cluster plugins.
+ repeated string plugins = 1;
+
+ oneof config {
+ config.OpenSearchConfig2 opensearch_config_2 = 2 [json_name = "opensearchConfig_2"];
+ }
+
+ // Keystore settings to add/replace. Old entries not listed here will be left unchanged.
+ repeated KeystoreSetting set_keystore_settings = 3;
+
+ // Keystore entries names to remove.
+ repeated string remove_keystore_settings = 4;
+}
+
+// Dashboards configuration.
+message DashboardsClusterUpdateSpec {}
+
+message BackupClusterRequest {
+ // ID of the OpenSearch cluster to back up.
+ //
+ // To get the ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message BackupClusterMetadata {
+ // ID of the OpenSearch cluster being backed up.
+ string cluster_id = 1;
+}
+
+message RestoreClusterRequest {
+ // ID of the backup to create a new cluster from.
+ //
+ // To get the backup ID, use a [ClusterService.ListBackups] request.
+ string backup_id = 1 [(required) = true];
+
+ // Name of the new OpenSearch cluster to be created from the backup. The name must be unique within the folder.
+ string name = 2 [
+ (required) = true,
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+
+ // Description of the new OpenSearch cluster to be created from the backup.
+ string description = 3 [(length) = "<=256"];
+
+ // Custom labels for the new OpenSearch cluster to be created from the backup as `key:value` pairs. Maximum 64 per resource.
+ // For example, "project": "mvp" or "source": "dictionary".
+ map<string, string> labels = 4 [
+ (yandex.cloud.size) = "<=64",
+ (length) = "<=63",
+ (pattern) = "[-_0-9a-z]*",
+ (map_key).length = "1-63",
+ (map_key).pattern = "[a-z][-_0-9a-z]*"
+ ];
+
+ // Deployment environment of the new OpenSearch cluster to be created from the backup.
+ Cluster.Environment environment = 5;
+
+ // Configuration for the new OpenSearch cluster to be created from the backup.
+ ConfigCreateSpec config_spec = 6 [(required) = true];
+
+ // ID of the network to create the cluster in.
+ string network_id = 7 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // User security groups.
+ repeated string security_group_ids = 8;
+
+ // ID of the service account used to access Object Storage.
+ string service_account_id = 9;
+
+ // Determines whether the cluster is protected from being deleted.
+ bool deletion_protection = 10;
+
+ // ID of the folder to create the OpenSearch cluster in.
+ //
+ // To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
+ string folder_id = 11 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Cluster maintenance window. Should be defined by either one of the two options.
+ MaintenanceWindow maintenance_window = 12;
+}
+
+message RestoreClusterMetadata {
+ // ID of the new OpenSearch cluster being created from a backup.
+ string cluster_id = 1;
+
+ // ID of the backup being used for creating a cluster.
+ string backup_id = 2;
+}
+
+message RescheduleMaintenanceRequest {
+ // ID of the OpenSearch cluster to reschedule the maintenance operation for.
+ //
+ // To get the ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ enum RescheduleType {
+ // Time of the maintenance is not specified..
+ 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 the 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 a moment in the past if [reschedule_type.IMMEDIATE] reschedule type is selected.
+ google.protobuf.Timestamp delayed_until = 3;
+}
+
+message RescheduleMaintenanceMetadata {
+ reserved 2 to 3;
+ // ID of the OpenSearch cluster where the reschedule is applied.
+ string cluster_id = 1;
+
+ // The time until which this maintenance operation is to be delayed.
+ google.protobuf.Timestamp delayed_until = 4;
+}
+
+message ListClusterBackupsRequest {
+ // ID of the OpenSearch cluster.
+ //
+ // To get the ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // The maximum number of results per page to return. If the number of available
+ // results is larger than `page_size`, the service returns a [ListClusterBackupsResponse.next_page_token]
+ // that can be used to get the next page of results in subsequent list requests.
+ int64 page_size = 2 [(value) = "0-1000"];
+
+ // Page token. To get the next page of results, set `page_token` to the [ListClusterBackupsResponse.next_page_token]
+ // returned by the previous list request.
+ string page_token = 3 [(length) = "<=100"];
+}
+
+message ListClusterBackupsResponse {
+ // List of the OpenSearch cluster backups.
+ repeated Backup backups = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListClustersRequest.page_size], use the [next_page_token] as the value
+ // for the [ListClustersRequest.page_token] parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2;
+}
+
+message DeleteOpenSearchNodeGroupRequest {
+ // ID of the OpenSearch cluster to delete the OpenSearch type host group in.
+ //
+ // To get the ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Name of the OpenSearch type host group to delete.
+ string name = 2;
+}
+
+message UpdateOpenSearchNodeGroupRequest {
+ // ID of the OpenSearch cluster to update the OpenSearch type host group in.
+ //
+ // To get the ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Name of the OpenSearch type host group to be updated.
+ string name = 2 [
+ (required) = true,
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+
+ // Field mask that specifies which fields of the host group configuration should be updated.
+ google.protobuf.FieldMask update_mask = 3;
+
+ // New configuration for the host group.
+ OpenSearchNodeGroupUpdateSpec node_group_spec = 4;
+}
+
+message OpenSearchNodeGroupUpdateSpec {
+ // Resources allocated to the hosts.
+ Resources resources = 1;
+
+ // Number of hosts in the group.
+ int64 hosts_count = 2;
+
+ // Opensearch roles applicable to the node group.
+ repeated OpenSearch.GroupRole roles = 3;
+
+ // IDs of the availability zones for hosts
+ repeated string zone_ids = 4;
+
+ // IDs of the subnets for hosts
+ repeated string subnet_ids = 5;
+
+ // Whether the hosts should get a public IP address.
+ bool assign_public_ip = 6;
+}
+
+message AddOpenSearchNodeGroupRequest {
+ // ID of the OpenSearch cluster to create the OpenSearch type host group in.
+ //
+ // To get the ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Configuration of the new host group.
+ OpenSearchCreateSpec.NodeGroup node_group_spec = 2;
+}
+
+message DeleteDashboardsNodeGroupRequest {
+ // ID of the OpenSearch cluster to delete the Dashboards type host group in.
+ //
+ // To get the ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Name of the Dashboards type host group to delete.
+ string name = 2 [
+ (required) = true,
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+}
+
+message UpdateDashboardsNodeGroupRequest {
+ // ID of the OpenSearch cluster to update the Dashboards type host group in.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Name of the Dashboards type host group to be updated.
+ string name = 2 [
+ (required) = true,
+ (length) = "<=63",
+ (pattern) = "[a-zA-Z0-9_-]*"
+ ];
+
+ // Field mask that specifies which fields of the host group configuration should be updated.
+ google.protobuf.FieldMask update_mask = 3;
+
+ // New configuration for the host group.
+ DashboardsNodeGroupUpdateSpec node_group_spec = 4;
+}
+
+message DashboardsNodeGroupUpdateSpec {
+ // Resources allocated to the hosts.
+ Resources resources = 1;
+
+ // Number of hosts in the group.
+ int64 hosts_count = 2;
+
+ // IDs of the availability zones for hosts
+ repeated string zone_ids = 3;
+
+ // IDs of the subnets for hosts
+ repeated string subnet_ids = 4;
+
+ // Whether the hosts should get a public IP address.
+ bool assign_public_ip = 5;
+}
+
+message AddDashboardsNodeGroupRequest {
+ // ID of the OpenSearch cluster to create the Dashboards type host group in.
+ //
+ // To get the ID, use a [ClusterService.List] request.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Configuration of the new host group.
+ DashboardsCreateSpec.NodeGroup node_group_spec = 2;
+}
+
+message AddNodeGroupMetadata {
+ // ID of the OpenSearch cluster where the host group is being created.
+ string cluster_id = 1;
+
+ // Name of the host group being created.
+ string name = 2;
+}
+
+message UpdateNodeGroupMetadata {
+ // ID of the OpenSearch cluster where the host group is being updated.
+ string cluster_id = 1;
+
+ // Name of the host group being updated.
+ string name = 2;
+}
+
+message DeleteNodeGroupMetadata {
+ // ID of the OpenSearch cluster where the host group is being deleted.
+ string cluster_id = 1;
+
+ // Name of the host group being deleted.
+ string name = 2;
+}
+
+message GetAuthSettingsRequest {
+ // Required. ID of the OpenSearch cluster.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+}
+
+message UpdateAuthSettingsRequest {
+ // Required. ID of the OpenSearch cluster.
+ string cluster_id = 1 [
+ (required) = true,
+ (length) = "<=50"
+ ];
+
+ // Required. Auth settings.
+ AuthSettings settings = 2;
+}
+
+message UpdateAuthSettingsMetadata {
+ // ID of the OpenSearch cluster.
+ string cluster_id = 1;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/config/opensearch.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/config/opensearch.proto
new file mode 100644
index 0000000000..62a46412b1
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/config/opensearch.proto
@@ -0,0 +1,28 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.opensearch.v1.config;
+
+import "google/protobuf/wrappers.proto";
+import "yandex/cloud/validation.proto";
+
+option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/opensearch/v1/config;opensearch";
+option java_package = "yandex.cloud.api.mdb.opensearch.v1";
+
+message OpenSearchConfig2 {
+ reserved 5;
+ // the maximum number of allowed boolean clauses in a query
+ google.protobuf.Int64Value max_clause_count = 3;
+
+ // the percentage or absolute value (10%, 512mb) of heap space that is allocated to fielddata
+ string fielddata_cache_size = 4;
+
+ string reindex_remote_whitelist = 6;
+}
+
+message OpenSearchConfigSet2 {
+ OpenSearchConfig2 effective_config = 1 [(required) = true];
+
+ OpenSearchConfig2 user_config = 2;
+
+ OpenSearchConfig2 default_config = 3;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/maintenance.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/maintenance.proto
new file mode 100644
index 0000000000..4833cf4513
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/maintenance.proto
@@ -0,0 +1,75 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.opensearch.v1;
+
+import "google/protobuf/timestamp.proto";
+
+import "yandex/cloud/validation.proto";
+
+option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/opensearch/v1;opensearch";
+option java_package = "yandex.cloud.api.mdb.opensearch.v1";
+
+// An OpenSearch cluster maintenance window. Should be defined by either one of the two options.
+message MaintenanceWindow {
+ oneof policy {
+ option (exactly_one) = true;
+
+ // An any-time maintenance window.
+ AnytimeMaintenanceWindow anytime = 1;
+
+ // A weekly maintenance window.
+ WeeklyMaintenanceWindow weekly_maintenance_window = 2;
+ }
+}
+
+// An any-time maintenance window.
+message AnytimeMaintenanceWindow {}
+
+// A weekly maintenance window.
+message WeeklyMaintenanceWindow {
+ enum WeekDay {
+ WEEK_DAY_UNSPECIFIED = 0;
+
+ // Monday
+ MON = 1;
+
+ // Tuesday
+ TUE = 2;
+
+ // Wednesday
+ WED = 3;
+
+ // Thursday
+ THU = 4;
+
+ // Friday
+ FRI = 5;
+
+ // Saturday
+ SAT = 6;
+
+ // Sunday
+ SUN = 7;
+ }
+
+ // Day of the week.
+ WeekDay day = 1;
+
+ // Hour of the day in the UTC timezone.
+ int64 hour = 2 [(value) = "1-24"];
+}
+
+message MaintenanceOperation {
+
+ // The description of the operation.
+ string info = 1 [(length) = "<=256"];
+
+ // Delay time for the maintenance operation.
+ google.protobuf.Timestamp delayed_until = 2;
+
+ // Time of the last maintenance window.
+ google.protobuf.Timestamp latest_maintenance_time = 3;
+
+ // Time of the next maintenance window.
+ google.protobuf.Timestamp next_maintenance_window_time = 4;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/resource_preset.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/resource_preset.proto
new file mode 100644
index 0000000000..48d7a3acd0
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/resource_preset.proto
@@ -0,0 +1,22 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.opensearch.v1;
+
+option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/opensearch/v1;opensearch";
+option java_package = "yandex.cloud.api.mdb.opensearch.v1";
+
+// A preset of resources for hardware configuration of the OpenSearch hosts.
+message ResourcePreset {
+
+ // ID of the resource preset.
+ string id = 1;
+
+ // IDs of the availability zones where the resource preset is available.
+ repeated string zone_ids = 2;
+
+ // Number of the CPU cores for an OpenSearch host created with the preset.
+ int64 cores = 3;
+
+ // RAM volume for an OpenSearch host created with the preset, in bytes.
+ int64 memory = 4;
+}
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/resource_preset_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/resource_preset_service.proto
new file mode 100644
index 0000000000..1247618e2e
--- /dev/null
+++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/mdb/opensearch/v1/resource_preset_service.proto
@@ -0,0 +1,58 @@
+syntax = "proto3";
+
+package yandex.cloud.mdb.opensearch.v1;
+
+import "google/api/annotations.proto";
+import "yandex/cloud/mdb/opensearch/v1/resource_preset.proto";
+import "yandex/cloud/validation.proto";
+
+option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/opensearch/v1;opensearch";
+option java_package = "yandex.cloud.api.mdb.opensearch.v1";
+
+// A set of methods for managing resource presets.
+service ResourcePresetService {
+ // Returns the specified resource preset.
+ //
+ // To get the list of available resource presets, make a [List] request.
+ rpc Get (GetResourcePresetRequest) returns (ResourcePreset) {
+ option (google.api.http) = { get: "/managed-opensearch/v1/resourcePresets/{resource_preset_id}" };
+ }
+
+ // Retrieves the list of available resource presets.
+ rpc List (ListResourcePresetsRequest) returns (ListResourcePresetsResponse) {
+ option (google.api.http) = { get: "/managed-opensearch/v1/resourcePresets" };
+ }
+}
+
+message GetResourcePresetRequest {
+ // ID of the resource preset to return.
+ //
+ // To get the resource preset ID, use a [ResourcePresetService.List] request.
+ string resource_preset_id = 1 [(required) = true];
+}
+
+message ListResourcePresetsRequest {
+ // The maximum number of results per page to return.
+ //
+ // If the number of available results is larger than [page_size], the service returns
+ // a [ListResourcePresetsResponse.next_page_token] that can be used to get the next page of results in subsequent list requests.
+ //
+ int64 page_size = 1 [(value) = "<=1000"];
+
+ // Page token. To get the next page of results, set [page_token] to the [ListResourcePresetsResponse.next_page_token]
+ // returned by the previous list request.
+ string page_token = 2 [(length) = "<=100"];
+}
+
+message ListResourcePresetsResponse {
+ // List of resource presets.
+ repeated ResourcePreset resource_presets = 1;
+
+ // This token allows you to get the next page of results for list requests.
+ //
+ // If the number of results is larger than [ListResourcePresetsRequest.page_size], use the [next_page_token] as the value
+ // for the [ListResourcePresetsRequest.page_token] parameter in the next list request.
+ //
+ // Each subsequent list request has its own [next_page_token] to continue paging through the results.
+ string next_page_token = 2 [(length) = "<=100"];
+}