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

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import google.protobuf.wrappers_pb2
import sys
import typing
import yandex.cloud.connectionmanager.v1.clickhouse_pb2
import yandex.cloud.connectionmanager.v1.greenplum_pb2
import yandex.cloud.connectionmanager.v1.kafka_pb2
import yandex.cloud.connectionmanager.v1.mongodb_pb2
import yandex.cloud.connectionmanager.v1.mysql_pb2
import yandex.cloud.connectionmanager.v1.opensearch_pb2
import yandex.cloud.connectionmanager.v1.postgresql_pb2
import yandex.cloud.connectionmanager.v1.redis_pb2
import yandex.cloud.connectionmanager.v1.trino_pb2
import yandex.cloud.connectionmanager.v1.valkey_pb2

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _DBType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DBTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DBType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    DB_TYPE_UNSPECIFIED: _DBType.ValueType  # 0
    POSTGRESQL: _DBType.ValueType  # 1
    MYSQL: _DBType.ValueType  # 2
    CLICKHOUSE: _DBType.ValueType  # 3
    MONGODB: _DBType.ValueType  # 4
    KAFKA: _DBType.ValueType  # 5
    REDIS: _DBType.ValueType  # 6
    OPENSEARCH: _DBType.ValueType  # 7
    TRINO: _DBType.ValueType  # 8
    VALKEY: _DBType.ValueType  # 9
    GREENPLUM: _DBType.ValueType  # 10

class DBType(_DBType, metaclass=_DBTypeEnumTypeWrapper): ...

DB_TYPE_UNSPECIFIED: DBType.ValueType  # 0
POSTGRESQL: DBType.ValueType  # 1
MYSQL: DBType.ValueType  # 2
CLICKHOUSE: DBType.ValueType  # 3
MONGODB: DBType.ValueType  # 4
KAFKA: DBType.ValueType  # 5
REDIS: DBType.ValueType  # 6
OPENSEARCH: DBType.ValueType  # 7
TRINO: DBType.ValueType  # 8
VALKEY: DBType.ValueType  # 9
GREENPLUM: DBType.ValueType  # 10
global___DBType = DBType

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

    POSTGRESQL_FIELD_NUMBER: builtins.int
    MYSQL_FIELD_NUMBER: builtins.int
    MONGODB_FIELD_NUMBER: builtins.int
    CLICKHOUSE_FIELD_NUMBER: builtins.int
    KAFKA_FIELD_NUMBER: builtins.int
    REDIS_FIELD_NUMBER: builtins.int
    OPENSEARCH_FIELD_NUMBER: builtins.int
    TRINO_FIELD_NUMBER: builtins.int
    VALKEY_FIELD_NUMBER: builtins.int
    GREENPLUM_FIELD_NUMBER: builtins.int
    @property
    def postgresql(self) -> yandex.cloud.connectionmanager.v1.postgresql_pb2.PostgreSQLConnection: ...
    @property
    def mysql(self) -> yandex.cloud.connectionmanager.v1.mysql_pb2.MySQLConnection: ...
    @property
    def mongodb(self) -> yandex.cloud.connectionmanager.v1.mongodb_pb2.MongoDBConnection: ...
    @property
    def clickhouse(self) -> yandex.cloud.connectionmanager.v1.clickhouse_pb2.ClickHouseConnection: ...
    @property
    def kafka(self) -> yandex.cloud.connectionmanager.v1.kafka_pb2.KafkaConnection: ...
    @property
    def redis(self) -> yandex.cloud.connectionmanager.v1.redis_pb2.RedisConnection: ...
    @property
    def opensearch(self) -> yandex.cloud.connectionmanager.v1.opensearch_pb2.OpenSearchConnection: ...
    @property
    def trino(self) -> yandex.cloud.connectionmanager.v1.trino_pb2.TrinoConnection: ...
    @property
    def valkey(self) -> yandex.cloud.connectionmanager.v1.valkey_pb2.ValkeyConnection: ...
    @property
    def greenplum(self) -> yandex.cloud.connectionmanager.v1.greenplum_pb2.GreenplumConnection: ...
    def __init__(
        self,
        *,
        postgresql: yandex.cloud.connectionmanager.v1.postgresql_pb2.PostgreSQLConnection | None = ...,
        mysql: yandex.cloud.connectionmanager.v1.mysql_pb2.MySQLConnection | None = ...,
        mongodb: yandex.cloud.connectionmanager.v1.mongodb_pb2.MongoDBConnection | None = ...,
        clickhouse: yandex.cloud.connectionmanager.v1.clickhouse_pb2.ClickHouseConnection | None = ...,
        kafka: yandex.cloud.connectionmanager.v1.kafka_pb2.KafkaConnection | None = ...,
        redis: yandex.cloud.connectionmanager.v1.redis_pb2.RedisConnection | None = ...,
        opensearch: yandex.cloud.connectionmanager.v1.opensearch_pb2.OpenSearchConnection | None = ...,
        trino: yandex.cloud.connectionmanager.v1.trino_pb2.TrinoConnection | None = ...,
        valkey: yandex.cloud.connectionmanager.v1.valkey_pb2.ValkeyConnection | None = ...,
        greenplum: yandex.cloud.connectionmanager.v1.greenplum_pb2.GreenplumConnection | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["clickhouse", b"clickhouse", "greenplum", b"greenplum", "kafka", b"kafka", "mongodb", b"mongodb", "mysql", b"mysql", "opensearch", b"opensearch", "postgresql", b"postgresql", "redis", b"redis", "trino", b"trino", "type", b"type", "valkey", b"valkey"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["clickhouse", b"clickhouse", "greenplum", b"greenplum", "kafka", b"kafka", "mongodb", b"mongodb", "mysql", b"mysql", "opensearch", b"opensearch", "postgresql", b"postgresql", "redis", b"redis", "trino", b"trino", "type", b"type", "valkey", b"valkey"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["postgresql", "mysql", "mongodb", "clickhouse", "kafka", "redis", "opensearch", "trino", "valkey", "greenplum"] | None: ...

global___ConnectionParams = ConnectionParams

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

    ID_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    NEWEST_VERSION_FIELD_NUMBER: builtins.int
    id: builtins.str
    version: builtins.str
    newest_version: builtins.str
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        version: builtins.str = ...,
        newest_version: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["id", b"id", "newest_version", b"newest_version", "version", b"version"]) -> None: ...

global___LockboxSecret = LockboxSecret

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

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    ID_FIELD_NUMBER: builtins.int
    FOLDER_ID_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    UPDATED_AT_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    LABELS_FIELD_NUMBER: builtins.int
    CREATED_BY_FIELD_NUMBER: builtins.int
    PARAMS_FIELD_NUMBER: builtins.int
    LOCKBOX_SECRET_FIELD_NUMBER: builtins.int
    IS_MANAGED_FIELD_NUMBER: builtins.int
    CAN_USE_FIELD_NUMBER: builtins.int
    id: builtins.str
    folder_id: builtins.str
    name: builtins.str
    description: builtins.str
    created_by: builtins.str
    is_managed: builtins.bool
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def params(self) -> global___ConnectionParams: ...
    @property
    def lockbox_secret(self) -> global___LockboxSecret: ...
    @property
    def can_use(self) -> google.protobuf.wrappers_pb2.BoolValue: ...
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        folder_id: builtins.str = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        created_by: builtins.str = ...,
        params: global___ConnectionParams | None = ...,
        lockbox_secret: global___LockboxSecret | None = ...,
        is_managed: builtins.bool = ...,
        can_use: google.protobuf.wrappers_pb2.BoolValue | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["can_use", b"can_use", "created_at", b"created_at", "lockbox_secret", b"lockbox_secret", "params", b"params", "secret", b"secret", "updated_at", b"updated_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["can_use", b"can_use", "created_at", b"created_at", "created_by", b"created_by", "description", b"description", "folder_id", b"folder_id", "id", b"id", "is_managed", b"is_managed", "labels", b"labels", "lockbox_secret", b"lockbox_secret", "name", b"name", "params", b"params", "secret", b"secret", "updated_at", b"updated_at"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["secret", b"secret"]) -> typing.Literal["lockbox_secret"] | None: ...

global___Connection = Connection
