"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import google.protobuf.descriptor
import google.protobuf.message
import google.protobuf.wrappers_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class OpenSearchConfig2(google.protobuf.message.Message):
    """OpenSearch server configuration settings."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MAX_CLAUSE_COUNT_FIELD_NUMBER: builtins.int
    FIELDDATA_CACHE_SIZE_FIELD_NUMBER: builtins.int
    SEARCH_MAX_BUCKETS_FIELD_NUMBER: builtins.int
    REINDEX_REMOTE_WHITELIST_FIELD_NUMBER: builtins.int
    HTTP_MAX_INITIAL_LINE_LENGTH_FIELD_NUMBER: builtins.int
    fielddata_cache_size: builtins.str
    """The maximum size of the field data cache.
    May be specified as an absolute value (for example, 8GB) or a percentage of the node heap (for example, 50%).
    This setting is dynamic. If you don't specify this setting, the maximum size is 35%.
    This value should be smaller than the **indices.breaker.fielddata.limit**

    Change of the setting is applied with restart.

    For details, see [OpenSearch documentation](https://docs.opensearch.org/latest/install-and-configure/configuring-opensearch/index-settings/#dynamic-cluster-level-index-settings).
    """
    reindex_remote_whitelist: builtins.str
    """Allowed remote hosts

    Change of the setting is applied with restart.

    For details, see [OpenSearch documentation](https://docs.opensearch.org/latest/api-reference/document-apis/reindex/#remote-cluster-allow-list).
    """
    @property
    def max_clause_count(self) -> google.protobuf.wrappers_pb2.Int64Value:
        """Defines the maximum product of fields and terms that are queryable simultaneously.
        Before OpenSearch 2.16, a cluster restart was required in order to apply this static setting.
        Now dynamic, existing search thread pools may use the old static value initially, causing **TooManyClauses** exceptions.
        New thread pools use the updated value.

        Default value: **1024**.

        Change of the setting is applied with restart.

        For details, see [OpenSearch documentation](https://docs.opensearch.org/latest/install-and-configure/configuring-opensearch/index-settings/#dynamic-cluster-level-index-settings).
        """

    @property
    def search_max_buckets(self) -> google.protobuf.wrappers_pb2.Int64Value:
        """The maximum number of aggregation buckets allowed in a single response. Default is 65535

        Default value: **65535**.

        Change of the setting is applied with restart.

        For details, see [OpenSearch documentation](https://docs.opensearch.org/latest/install-and-configure/configuring-opensearch/search-settings).
        """

    @property
    def http_max_initial_line_length(self) -> google.protobuf.wrappers_pb2.StringValue:
        """Sets the maximum length allowed for HTTP URLs in the initial request line. URLs exceeding this limit will be rejected. Default is **4kb**.

        Default value: **4kb**.

        Change of the setting is applied with restart.

        For details, see [OpenSearch documentation](https://docs.opensearch.org/latest/install-and-configure/configuring-opensearch/network-settings/#advanced-http-settings).
        """

    def __init__(
        self,
        *,
        max_clause_count: google.protobuf.wrappers_pb2.Int64Value | None = ...,
        fielddata_cache_size: builtins.str = ...,
        search_max_buckets: google.protobuf.wrappers_pb2.Int64Value | None = ...,
        reindex_remote_whitelist: builtins.str = ...,
        http_max_initial_line_length: google.protobuf.wrappers_pb2.StringValue | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["http_max_initial_line_length", b"http_max_initial_line_length", "max_clause_count", b"max_clause_count", "search_max_buckets", b"search_max_buckets"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["fielddata_cache_size", b"fielddata_cache_size", "http_max_initial_line_length", b"http_max_initial_line_length", "max_clause_count", b"max_clause_count", "reindex_remote_whitelist", b"reindex_remote_whitelist", "search_max_buckets", b"search_max_buckets"]) -> None: ...

global___OpenSearchConfig2 = OpenSearchConfig2

@typing.final
class OpenSearchConfigSet2(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EFFECTIVE_CONFIG_FIELD_NUMBER: builtins.int
    USER_CONFIG_FIELD_NUMBER: builtins.int
    DEFAULT_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def effective_config(self) -> global___OpenSearchConfig2:
        """Effective configuration (a combination of user-defined configuration and default configuration)."""

    @property
    def user_config(self) -> global___OpenSearchConfig2:
        """User-defined configuration."""

    @property
    def default_config(self) -> global___OpenSearchConfig2:
        """Default configuration."""

    def __init__(
        self,
        *,
        effective_config: global___OpenSearchConfig2 | None = ...,
        user_config: global___OpenSearchConfig2 | None = ...,
        default_config: global___OpenSearchConfig2 | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["default_config", b"default_config", "effective_config", b"effective_config", "user_config", b"user_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["default_config", b"default_config", "effective_config", b"effective_config", "user_config", b"user_config"]) -> None: ...

global___OpenSearchConfigSet2 = OpenSearchConfigSet2
