"""
@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.message
import shared.shared_pb2
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class ClusterLoggingProperties(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BUCKET_NAME_FIELD_NUMBER: builtins.int
    S3_KEY_PREFIX_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    bucket_name: builtins.str
    s3_key_prefix: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        bucket_name: builtins.str = ...,
        s3_key_prefix: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bucket_name", b"bucket_name", "resource_info", b"resource_info", "s3_key_prefix", b"s3_key_prefix"]) -> None: ...

global___ClusterLoggingProperties = ClusterLoggingProperties

@typing_extensions.final
class Cluster(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(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_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ALLOW_VERSION_UPGRADE_FIELD_NUMBER: builtins.int
    AUTOMATED_SNAPSHOT_RETENTION_PERIOD_FIELD_NUMBER: builtins.int
    AVAILABILITY_ZONE_FIELD_NUMBER: builtins.int
    CLUSTER_IDENTIFIER_FIELD_NUMBER: builtins.int
    CLUSTER_PARAMETER_GROUP_NAME_FIELD_NUMBER: builtins.int
    CLUSTER_SECURITY_GROUPS_FIELD_NUMBER: builtins.int
    CLUSTER_SUBNET_GROUP_NAME_FIELD_NUMBER: builtins.int
    CLUSTER_TYPE_FIELD_NUMBER: builtins.int
    CLUSTER_VERSION_FIELD_NUMBER: builtins.int
    DB_NAME_FIELD_NUMBER: builtins.int
    ELASTIC_IP_FIELD_NUMBER: builtins.int
    ENCRYPTED_FIELD_NUMBER: builtins.int
    HSM_CLIENT_CERTIFICATE_IDENTIFIER_FIELD_NUMBER: builtins.int
    HSM_CONFIGURATION_IDENTIFIER_FIELD_NUMBER: builtins.int
    IAM_ROLES_FIELD_NUMBER: builtins.int
    KMS_KEY_ID_FIELD_NUMBER: builtins.int
    LOGGING_PROPERTIES_FIELD_NUMBER: builtins.int
    MASTER_USER_PASSWORD_FIELD_NUMBER: builtins.int
    MASTER_USERNAME_FIELD_NUMBER: builtins.int
    NODE_TYPE_FIELD_NUMBER: builtins.int
    NUMBER_OF_NODES_FIELD_NUMBER: builtins.int
    OWNER_ACCOUNT_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    PREFERRED_MAINTENANCE_WINDOW_FIELD_NUMBER: builtins.int
    PUBLICLY_ACCESSIBLE_FIELD_NUMBER: builtins.int
    SNAPSHOT_CLUSTER_IDENTIFIER_FIELD_NUMBER: builtins.int
    SNAPSHOT_IDENTIFIER_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    VPC_SECURITY_GROUP_IDS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    allow_version_upgrade: builtins.bool
    automated_snapshot_retention_period: builtins.int
    availability_zone: builtins.str
    cluster_identifier: builtins.str
    cluster_parameter_group_name: builtins.str
    @property
    def cluster_security_groups(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    cluster_subnet_group_name: builtins.str
    cluster_type: builtins.str
    cluster_version: builtins.str
    db_name: builtins.str
    elastic_ip: builtins.str
    encrypted: builtins.bool
    hsm_client_certificate_identifier: builtins.str
    hsm_configuration_identifier: builtins.str
    @property
    def iam_roles(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    kms_key_id: builtins.str
    @property
    def logging_properties(self) -> global___ClusterLoggingProperties: ...
    master_user_password: builtins.str
    master_username: builtins.str
    node_type: builtins.str
    number_of_nodes: builtins.int
    owner_account: builtins.str
    port: builtins.int
    preferred_maintenance_window: builtins.str
    publicly_accessible: builtins.bool
    snapshot_cluster_identifier: builtins.str
    snapshot_identifier: builtins.str
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def vpc_security_group_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        allow_version_upgrade: builtins.bool = ...,
        automated_snapshot_retention_period: builtins.int = ...,
        availability_zone: builtins.str = ...,
        cluster_identifier: builtins.str = ...,
        cluster_parameter_group_name: builtins.str = ...,
        cluster_security_groups: collections.abc.Iterable[builtins.str] | None = ...,
        cluster_subnet_group_name: builtins.str = ...,
        cluster_type: builtins.str = ...,
        cluster_version: builtins.str = ...,
        db_name: builtins.str = ...,
        elastic_ip: builtins.str = ...,
        encrypted: builtins.bool = ...,
        hsm_client_certificate_identifier: builtins.str = ...,
        hsm_configuration_identifier: builtins.str = ...,
        iam_roles: collections.abc.Iterable[builtins.str] | None = ...,
        kms_key_id: builtins.str = ...,
        logging_properties: global___ClusterLoggingProperties | None = ...,
        master_user_password: builtins.str = ...,
        master_username: builtins.str = ...,
        node_type: builtins.str = ...,
        number_of_nodes: builtins.int = ...,
        owner_account: builtins.str = ...,
        port: builtins.int = ...,
        preferred_maintenance_window: builtins.str = ...,
        publicly_accessible: builtins.bool = ...,
        snapshot_cluster_identifier: builtins.str = ...,
        snapshot_identifier: builtins.str = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        vpc_security_group_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["logging_properties", b"logging_properties", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["allow_version_upgrade", b"allow_version_upgrade", "automated_snapshot_retention_period", b"automated_snapshot_retention_period", "availability_zone", b"availability_zone", "cluster_identifier", b"cluster_identifier", "cluster_parameter_group_name", b"cluster_parameter_group_name", "cluster_security_groups", b"cluster_security_groups", "cluster_subnet_group_name", b"cluster_subnet_group_name", "cluster_type", b"cluster_type", "cluster_version", b"cluster_version", "db_name", b"db_name", "elastic_ip", b"elastic_ip", "encrypted", b"encrypted", "hsm_client_certificate_identifier", b"hsm_client_certificate_identifier", "hsm_configuration_identifier", b"hsm_configuration_identifier", "iam_roles", b"iam_roles", "kms_key_id", b"kms_key_id", "logging_properties", b"logging_properties", "master_user_password", b"master_user_password", "master_username", b"master_username", "node_type", b"node_type", "number_of_nodes", b"number_of_nodes", "owner_account", b"owner_account", "port", b"port", "preferred_maintenance_window", b"preferred_maintenance_window", "publicly_accessible", b"publicly_accessible", "resource_info", b"resource_info", "snapshot_cluster_identifier", b"snapshot_cluster_identifier", "snapshot_identifier", b"snapshot_identifier", "tags", b"tags", "vpc_security_group_ids", b"vpc_security_group_ids"]) -> None: ...

global___Cluster = Cluster

@typing_extensions.final
class Redshift(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CLUSTER_FIELD_NUMBER: builtins.int
    CLUSTER_PARAMETER_GROUP_FIELD_NUMBER: builtins.int
    CLUSTER_SECURITY_GROUP_FIELD_NUMBER: builtins.int
    CLUSTER_SECURITY_GROUP_INGRESS_FIELD_NUMBER: builtins.int
    CLUSTER_SUBNET_GROUP_FIELD_NUMBER: builtins.int
    @property
    def cluster(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Cluster]: ...
    @property
    def cluster_parameter_group(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ClusterParameterGroup]: ...
    @property
    def cluster_security_group(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ClusterSecurityGroup]: ...
    @property
    def cluster_security_group_ingress(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ClusterSecurityGroupIngress]: ...
    @property
    def cluster_subnet_group(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ClusterSubnetGroup]: ...
    def __init__(
        self,
        *,
        cluster: collections.abc.Iterable[global___Cluster] | None = ...,
        cluster_parameter_group: collections.abc.Iterable[global___ClusterParameterGroup] | None = ...,
        cluster_security_group: collections.abc.Iterable[global___ClusterSecurityGroup] | None = ...,
        cluster_security_group_ingress: collections.abc.Iterable[global___ClusterSecurityGroupIngress] | None = ...,
        cluster_subnet_group: collections.abc.Iterable[global___ClusterSubnetGroup] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["cluster", b"cluster", "cluster_parameter_group", b"cluster_parameter_group", "cluster_security_group", b"cluster_security_group", "cluster_security_group_ingress", b"cluster_security_group_ingress", "cluster_subnet_group", b"cluster_subnet_group"]) -> None: ...

global___Redshift = Redshift

@typing_extensions.final
class ClusterParameterGroupParameter(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PARAMETER_NAME_FIELD_NUMBER: builtins.int
    PARAMETER_VALUE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    parameter_name: builtins.str
    parameter_value: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        parameter_name: builtins.str = ...,
        parameter_value: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["parameter_name", b"parameter_name", "parameter_value", b"parameter_value", "resource_info", b"resource_info"]) -> None: ...

global___ClusterParameterGroupParameter = ClusterParameterGroupParameter

@typing_extensions.final
class ClusterParameterGroup(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(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_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    PARAMETER_GROUP_FAMILY_FIELD_NUMBER: builtins.int
    PARAMETERS_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    description: builtins.str
    parameter_group_family: builtins.str
    @property
    def parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ClusterParameterGroupParameter]: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        description: builtins.str = ...,
        parameter_group_family: builtins.str = ...,
        parameters: collections.abc.Iterable[global___ClusterParameterGroupParameter] | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "parameter_group_family", b"parameter_group_family", "parameters", b"parameters", "resource_info", b"resource_info", "tags", b"tags"]) -> None: ...

global___ClusterParameterGroup = ClusterParameterGroup

@typing_extensions.final
class ClusterSecurityGroup(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(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_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    description: builtins.str
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        description: builtins.str = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "resource_info", b"resource_info", "tags", b"tags"]) -> None: ...

global___ClusterSecurityGroup = ClusterSecurityGroup

@typing_extensions.final
class ClusterSecurityGroupIngress(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CIDR_IP_FIELD_NUMBER: builtins.int
    CLUSTER_SECURITY_GROUP_NAME_FIELD_NUMBER: builtins.int
    E_C2_SECURITY_GROUP_NAME_FIELD_NUMBER: builtins.int
    E_C2_SECURITY_GROUP_OWNER_ID_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    cidr_ip: builtins.str
    cluster_security_group_name: builtins.str
    e_c2_security_group_name: builtins.str
    e_c2_security_group_owner_id: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        cidr_ip: builtins.str = ...,
        cluster_security_group_name: builtins.str = ...,
        e_c2_security_group_name: builtins.str = ...,
        e_c2_security_group_owner_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cidr_ip", b"cidr_ip", "cluster_security_group_name", b"cluster_security_group_name", "e_c2_security_group_name", b"e_c2_security_group_name", "e_c2_security_group_owner_id", b"e_c2_security_group_owner_id", "resource_info", b"resource_info"]) -> None: ...

global___ClusterSecurityGroupIngress = ClusterSecurityGroupIngress

@typing_extensions.final
class ClusterSubnetGroup(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(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_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    SUBNET_IDS_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    description: builtins.str
    @property
    def subnet_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        description: builtins.str = ...,
        subnet_ids: collections.abc.Iterable[builtins.str] | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "resource_info", b"resource_info", "subnet_ids", b"subnet_ids", "tags", b"tags"]) -> None: ...

global___ClusterSubnetGroup = ClusterSubnetGroup
