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/opensearch/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/opensearch/v1')
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"]; +} |