"""
@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 DataCatalogTags(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
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | 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["resource_info", b"resource_info", "tags", b"tags"]) -> None: ...

global___DataCatalogTags = DataCatalogTags

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

    @typing_extensions.final
    class ParametersEntry(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
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    PARAMETERS_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    description: builtins.str
    @property
    def parameters(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def tags(self) -> global___DataCatalogTags: ...
    type: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        parameters: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        tags: global___DataCatalogTags | None = ...,
        type: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "tags", b"tags"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "name", b"name", "parameters", b"parameters", "resource_info", b"resource_info", "tags", b"tags", "type", b"type"]) -> None: ...

global___DataCatalog = DataCatalog

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

    DATA_CATALOG_FIELD_NUMBER: builtins.int
    NAMED_QUERY_FIELD_NUMBER: builtins.int
    WORK_GROUP_FIELD_NUMBER: builtins.int
    @property
    def data_catalog(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DataCatalog]: ...
    @property
    def named_query(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedQuery]: ...
    @property
    def work_group(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WorkGroup]: ...
    def __init__(
        self,
        *,
        data_catalog: collections.abc.Iterable[global___DataCatalog] | None = ...,
        named_query: collections.abc.Iterable[global___NamedQuery] | None = ...,
        work_group: collections.abc.Iterable[global___WorkGroup] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["data_catalog", b"data_catalog", "named_query", b"named_query", "work_group", b"work_group"]) -> None: ...

global___Athena = Athena

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DATABASE_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    QUERY_STRING_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    database: builtins.str
    description: builtins.str
    query_string: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        database: builtins.str = ...,
        description: builtins.str = ...,
        query_string: 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["database", b"database", "description", b"description", "name", b"name", "query_string", b"query_string", "resource_info", b"resource_info"]) -> None: ...

global___NamedQuery = NamedQuery

@typing_extensions.final
class WorkGroupTags(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
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | 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["resource_info", b"resource_info", "tags", b"tags"]) -> None: ...

global___WorkGroupTags = WorkGroupTags

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ENCRYPTION_OPTION_FIELD_NUMBER: builtins.int
    KMS_KEY_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    encryption_option: builtins.str
    kms_key: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        encryption_option: builtins.str = ...,
        kms_key: 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["encryption_option", b"encryption_option", "kms_key", b"kms_key", "resource_info", b"resource_info"]) -> None: ...

global___WorkGroupEncryptionConfiguration = WorkGroupEncryptionConfiguration

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ENCRYPTION_CONFIGURATION_FIELD_NUMBER: builtins.int
    OUTPUT_LOCATION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def encryption_configuration(self) -> global___WorkGroupEncryptionConfiguration: ...
    output_location: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        encryption_configuration: global___WorkGroupEncryptionConfiguration | None = ...,
        output_location: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["encryption_configuration", b"encryption_configuration", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["encryption_configuration", b"encryption_configuration", "output_location", b"output_location", "resource_info", b"resource_info"]) -> None: ...

global___WorkGroupResultConfiguration = WorkGroupResultConfiguration

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BYTES_SCANNED_CUTOFF_PER_QUERY_FIELD_NUMBER: builtins.int
    ENFORCE_WORK_GROUP_CONFIGURATION_FIELD_NUMBER: builtins.int
    PUBLISH_CLOUD_WATCH_METRICS_ENABLED_FIELD_NUMBER: builtins.int
    REQUESTER_PAYS_ENABLED_FIELD_NUMBER: builtins.int
    RESULT_CONFIGURATION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    bytes_scanned_cutoff_per_query: builtins.int
    enforce_work_group_configuration: builtins.bool
    publish_cloud_watch_metrics_enabled: builtins.bool
    requester_pays_enabled: builtins.bool
    @property
    def result_configuration(self) -> global___WorkGroupResultConfiguration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        bytes_scanned_cutoff_per_query: builtins.int = ...,
        enforce_work_group_configuration: builtins.bool = ...,
        publish_cloud_watch_metrics_enabled: builtins.bool = ...,
        requester_pays_enabled: builtins.bool = ...,
        result_configuration: global___WorkGroupResultConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "result_configuration", b"result_configuration"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bytes_scanned_cutoff_per_query", b"bytes_scanned_cutoff_per_query", "enforce_work_group_configuration", b"enforce_work_group_configuration", "publish_cloud_watch_metrics_enabled", b"publish_cloud_watch_metrics_enabled", "requester_pays_enabled", b"requester_pays_enabled", "resource_info", b"resource_info", "result_configuration", b"result_configuration"]) -> None: ...

global___WorkGroupWorkGroupConfiguration = WorkGroupWorkGroupConfiguration

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ENCRYPTION_CONFIGURATION_FIELD_NUMBER: builtins.int
    OUTPUT_LOCATION_FIELD_NUMBER: builtins.int
    REMOVE_ENCRYPTION_CONFIGURATION_FIELD_NUMBER: builtins.int
    REMOVE_OUTPUT_LOCATION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def encryption_configuration(self) -> global___WorkGroupEncryptionConfiguration: ...
    output_location: builtins.str
    remove_encryption_configuration: builtins.bool
    remove_output_location: builtins.bool
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        encryption_configuration: global___WorkGroupEncryptionConfiguration | None = ...,
        output_location: builtins.str = ...,
        remove_encryption_configuration: builtins.bool = ...,
        remove_output_location: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["encryption_configuration", b"encryption_configuration", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["encryption_configuration", b"encryption_configuration", "output_location", b"output_location", "remove_encryption_configuration", b"remove_encryption_configuration", "remove_output_location", b"remove_output_location", "resource_info", b"resource_info"]) -> None: ...

global___WorkGroupResultConfigurationUpdates = WorkGroupResultConfigurationUpdates

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BYTES_SCANNED_CUTOFF_PER_QUERY_FIELD_NUMBER: builtins.int
    ENFORCE_WORK_GROUP_CONFIGURATION_FIELD_NUMBER: builtins.int
    PUBLISH_CLOUD_WATCH_METRICS_ENABLED_FIELD_NUMBER: builtins.int
    REQUESTER_PAYS_ENABLED_FIELD_NUMBER: builtins.int
    RESULT_CONFIGURATION_UPDATES_FIELD_NUMBER: builtins.int
    REMOVE_BYTES_SCANNED_CUTOFF_PER_QUERY_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    bytes_scanned_cutoff_per_query: builtins.int
    enforce_work_group_configuration: builtins.bool
    publish_cloud_watch_metrics_enabled: builtins.bool
    requester_pays_enabled: builtins.bool
    @property
    def result_configuration_updates(self) -> global___WorkGroupResultConfigurationUpdates: ...
    remove_bytes_scanned_cutoff_per_query: builtins.bool
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        bytes_scanned_cutoff_per_query: builtins.int = ...,
        enforce_work_group_configuration: builtins.bool = ...,
        publish_cloud_watch_metrics_enabled: builtins.bool = ...,
        requester_pays_enabled: builtins.bool = ...,
        result_configuration_updates: global___WorkGroupResultConfigurationUpdates | None = ...,
        remove_bytes_scanned_cutoff_per_query: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "result_configuration_updates", b"result_configuration_updates"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bytes_scanned_cutoff_per_query", b"bytes_scanned_cutoff_per_query", "enforce_work_group_configuration", b"enforce_work_group_configuration", "publish_cloud_watch_metrics_enabled", b"publish_cloud_watch_metrics_enabled", "remove_bytes_scanned_cutoff_per_query", b"remove_bytes_scanned_cutoff_per_query", "requester_pays_enabled", b"requester_pays_enabled", "resource_info", b"resource_info", "result_configuration_updates", b"result_configuration_updates"]) -> None: ...

global___WorkGroupWorkGroupConfigurationUpdates = WorkGroupWorkGroupConfigurationUpdates

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    WORK_GROUP_CONFIGURATION_FIELD_NUMBER: builtins.int
    WORK_GROUP_CONFIGURATION_UPDATES_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    RECURSIVE_DELETE_OPTION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    description: builtins.str
    @property
    def tags(self) -> global___WorkGroupTags: ...
    @property
    def work_group_configuration(self) -> global___WorkGroupWorkGroupConfiguration: ...
    @property
    def work_group_configuration_updates(self) -> global___WorkGroupWorkGroupConfigurationUpdates: ...
    state: builtins.str
    recursive_delete_option: builtins.bool
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        tags: global___WorkGroupTags | None = ...,
        work_group_configuration: global___WorkGroupWorkGroupConfiguration | None = ...,
        work_group_configuration_updates: global___WorkGroupWorkGroupConfigurationUpdates | None = ...,
        state: builtins.str = ...,
        recursive_delete_option: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "tags", b"tags", "work_group_configuration", b"work_group_configuration", "work_group_configuration_updates", b"work_group_configuration_updates"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "name", b"name", "recursive_delete_option", b"recursive_delete_option", "resource_info", b"resource_info", "state", b"state", "tags", b"tags", "work_group_configuration", b"work_group_configuration", "work_group_configuration_updates", b"work_group_configuration_updates"]) -> None: ...

global___WorkGroup = WorkGroup
