"""
@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 AuthorizerTokenSigningPublicKeys(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | 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"]) -> None: ...

global___AuthorizerTokenSigningPublicKeys = AuthorizerTokenSigningPublicKeys

@typing_extensions.final
class AuthorizerTags(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___AuthorizerTags = AuthorizerTags

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    AUTHORIZER_FUNCTION_ARN_FIELD_NUMBER: builtins.int
    AUTHORIZER_NAME_FIELD_NUMBER: builtins.int
    SIGNING_DISABLED_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    TOKEN_KEY_NAME_FIELD_NUMBER: builtins.int
    TOKEN_SIGNING_PUBLIC_KEYS_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    authorizer_function_arn: builtins.str
    authorizer_name: builtins.str
    signing_disabled: builtins.bool
    status: builtins.str
    token_key_name: builtins.str
    @property
    def token_signing_public_keys(self) -> global___AuthorizerTokenSigningPublicKeys: ...
    @property
    def tags(self) -> global___AuthorizerTags: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        authorizer_function_arn: builtins.str = ...,
        authorizer_name: builtins.str = ...,
        signing_disabled: builtins.bool = ...,
        status: builtins.str = ...,
        token_key_name: builtins.str = ...,
        token_signing_public_keys: global___AuthorizerTokenSigningPublicKeys | None = ...,
        tags: global___AuthorizerTags | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "tags", b"tags", "token_signing_public_keys", b"token_signing_public_keys"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["authorizer_function_arn", b"authorizer_function_arn", "authorizer_name", b"authorizer_name", "resource_info", b"resource_info", "signing_disabled", b"signing_disabled", "status", b"status", "tags", b"tags", "token_key_name", b"token_key_name", "token_signing_public_keys", b"token_signing_public_keys"]) -> None: ...

global___Authorizer = Authorizer

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

    AUTHORIZER_FIELD_NUMBER: builtins.int
    CERTIFICATE_FIELD_NUMBER: builtins.int
    POLICY_FIELD_NUMBER: builtins.int
    POLICY_PRINCIPAL_ATTACHMENT_FIELD_NUMBER: builtins.int
    PROVISIONING_TEMPLATE_FIELD_NUMBER: builtins.int
    THING_FIELD_NUMBER: builtins.int
    THING_PRINCIPAL_ATTACHMENT_FIELD_NUMBER: builtins.int
    TOPIC_RULE_FIELD_NUMBER: builtins.int
    @property
    def authorizer(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Authorizer]: ...
    @property
    def certificate(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Certificate]: ...
    @property
    def policy(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Policy]: ...
    @property
    def policy_principal_attachment(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PolicyPrincipalAttachment]: ...
    @property
    def provisioning_template(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProvisioningTemplate]: ...
    @property
    def thing(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Thing]: ...
    @property
    def thing_principal_attachment(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ThingPrincipalAttachment]: ...
    @property
    def topic_rule(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TopicRule]: ...
    def __init__(
        self,
        *,
        authorizer: collections.abc.Iterable[global___Authorizer] | None = ...,
        certificate: collections.abc.Iterable[global___Certificate] | None = ...,
        policy: collections.abc.Iterable[global___Policy] | None = ...,
        policy_principal_attachment: collections.abc.Iterable[global___PolicyPrincipalAttachment] | None = ...,
        provisioning_template: collections.abc.Iterable[global___ProvisioningTemplate] | None = ...,
        thing: collections.abc.Iterable[global___Thing] | None = ...,
        thing_principal_attachment: collections.abc.Iterable[global___ThingPrincipalAttachment] | None = ...,
        topic_rule: collections.abc.Iterable[global___TopicRule] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["authorizer", b"authorizer", "certificate", b"certificate", "policy", b"policy", "policy_principal_attachment", b"policy_principal_attachment", "provisioning_template", b"provisioning_template", "thing", b"thing", "thing_principal_attachment", b"thing_principal_attachment", "topic_rule", b"topic_rule"]) -> None: ...

global___IoT = IoT

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CA_CERTIFICATE_PEM_FIELD_NUMBER: builtins.int
    CERTIFICATE_PEM_FIELD_NUMBER: builtins.int
    CERTIFICATE_SIGNING_REQUEST_FIELD_NUMBER: builtins.int
    CERTIFICATE_MODE_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    ca_certificate_pem: builtins.str
    certificate_pem: builtins.str
    certificate_signing_request: builtins.str
    certificate_mode: builtins.str
    status: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        ca_certificate_pem: builtins.str = ...,
        certificate_pem: builtins.str = ...,
        certificate_signing_request: builtins.str = ...,
        certificate_mode: builtins.str = ...,
        status: 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["ca_certificate_pem", b"ca_certificate_pem", "certificate_mode", b"certificate_mode", "certificate_pem", b"certificate_pem", "certificate_signing_request", b"certificate_signing_request", "resource_info", b"resource_info", "status", b"status"]) -> None: ...

global___Certificate = Certificate

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

    @typing_extensions.final
    class PolicyDocumentEntry(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
    POLICY_DOCUMENT_FIELD_NUMBER: builtins.int
    POLICY_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def policy_document(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    policy_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        policy_document: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        policy_name: 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["policy_document", b"policy_document", "policy_name", b"policy_name", "resource_info", b"resource_info"]) -> None: ...

global___Policy = Policy

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

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

global___PolicyPrincipalAttachment = PolicyPrincipalAttachment

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

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

global___ProvisioningTemplateProvisioningHook = ProvisioningTemplateProvisioningHook

@typing_extensions.final
class ProvisioningTemplateTags(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___ProvisioningTemplateTags = ProvisioningTemplateTags

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    TEMPLATE_NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    ENABLED_FIELD_NUMBER: builtins.int
    PROVISIONING_ROLE_ARN_FIELD_NUMBER: builtins.int
    TEMPLATE_BODY_FIELD_NUMBER: builtins.int
    PRE_PROVISIONING_HOOK_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    template_name: builtins.str
    description: builtins.str
    enabled: builtins.bool
    provisioning_role_arn: builtins.str
    template_body: builtins.str
    @property
    def pre_provisioning_hook(self) -> global___ProvisioningTemplateProvisioningHook: ...
    @property
    def tags(self) -> global___ProvisioningTemplateTags: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        template_name: builtins.str = ...,
        description: builtins.str = ...,
        enabled: builtins.bool = ...,
        provisioning_role_arn: builtins.str = ...,
        template_body: builtins.str = ...,
        pre_provisioning_hook: global___ProvisioningTemplateProvisioningHook | None = ...,
        tags: global___ProvisioningTemplateTags | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pre_provisioning_hook", b"pre_provisioning_hook", "resource_info", b"resource_info", "tags", b"tags"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "enabled", b"enabled", "pre_provisioning_hook", b"pre_provisioning_hook", "provisioning_role_arn", b"provisioning_role_arn", "resource_info", b"resource_info", "tags", b"tags", "template_body", b"template_body", "template_name", b"template_name"]) -> None: ...

global___ProvisioningTemplate = ProvisioningTemplate

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

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

global___ThingAttributePayload = ThingAttributePayload

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ATTRIBUTE_PAYLOAD_FIELD_NUMBER: builtins.int
    THING_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def attribute_payload(self) -> global___ThingAttributePayload: ...
    thing_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        attribute_payload: global___ThingAttributePayload | None = ...,
        thing_name: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["attribute_payload", b"attribute_payload", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["attribute_payload", b"attribute_payload", "resource_info", b"resource_info", "thing_name", b"thing_name"]) -> None: ...

global___Thing = Thing

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

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

global___ThingPrincipalAttachment = ThingPrincipalAttachment

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ALARM_NAME_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    STATE_REASON_FIELD_NUMBER: builtins.int
    STATE_VALUE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    alarm_name: builtins.str
    role_arn: builtins.str
    state_reason: builtins.str
    state_value: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        alarm_name: builtins.str = ...,
        role_arn: builtins.str = ...,
        state_reason: builtins.str = ...,
        state_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["alarm_name", b"alarm_name", "resource_info", b"resource_info", "role_arn", b"role_arn", "state_reason", b"state_reason", "state_value", b"state_value"]) -> None: ...

global___TopicRuleCloudwatchAlarmAction = TopicRuleCloudwatchAlarmAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    METRIC_NAME_FIELD_NUMBER: builtins.int
    METRIC_NAMESPACE_FIELD_NUMBER: builtins.int
    METRIC_TIMESTAMP_FIELD_NUMBER: builtins.int
    METRIC_UNIT_FIELD_NUMBER: builtins.int
    METRIC_VALUE_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    metric_name: builtins.str
    metric_namespace: builtins.str
    metric_timestamp: builtins.str
    metric_unit: builtins.str
    metric_value: builtins.str
    role_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        metric_name: builtins.str = ...,
        metric_namespace: builtins.str = ...,
        metric_timestamp: builtins.str = ...,
        metric_unit: builtins.str = ...,
        metric_value: builtins.str = ...,
        role_arn: 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["metric_name", b"metric_name", "metric_namespace", b"metric_namespace", "metric_timestamp", b"metric_timestamp", "metric_unit", b"metric_unit", "metric_value", b"metric_value", "resource_info", b"resource_info", "role_arn", b"role_arn"]) -> None: ...

global___TopicRuleCloudwatchMetricAction = TopicRuleCloudwatchMetricAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    HASH_KEY_FIELD_FIELD_NUMBER: builtins.int
    HASH_KEY_TYPE_FIELD_NUMBER: builtins.int
    HASH_KEY_VALUE_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_FIELD_NUMBER: builtins.int
    RANGE_KEY_FIELD_FIELD_NUMBER: builtins.int
    RANGE_KEY_TYPE_FIELD_NUMBER: builtins.int
    RANGE_KEY_VALUE_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    TABLE_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    hash_key_field: builtins.str
    hash_key_type: builtins.str
    hash_key_value: builtins.str
    payload_field: builtins.str
    range_key_field: builtins.str
    range_key_type: builtins.str
    range_key_value: builtins.str
    role_arn: builtins.str
    table_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        hash_key_field: builtins.str = ...,
        hash_key_type: builtins.str = ...,
        hash_key_value: builtins.str = ...,
        payload_field: builtins.str = ...,
        range_key_field: builtins.str = ...,
        range_key_type: builtins.str = ...,
        range_key_value: builtins.str = ...,
        role_arn: builtins.str = ...,
        table_name: 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["hash_key_field", b"hash_key_field", "hash_key_type", b"hash_key_type", "hash_key_value", b"hash_key_value", "payload_field", b"payload_field", "range_key_field", b"range_key_field", "range_key_type", b"range_key_type", "range_key_value", b"range_key_value", "resource_info", b"resource_info", "role_arn", b"role_arn", "table_name", b"table_name"]) -> None: ...

global___TopicRuleDynamoDBAction = TopicRuleDynamoDBAction

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

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

global___TopicRulePutItemInput = TopicRulePutItemInput

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PUT_ITEM_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def put_item(self) -> global___TopicRulePutItemInput: ...
    role_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        put_item: global___TopicRulePutItemInput | None = ...,
        role_arn: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["put_item", b"put_item", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["put_item", b"put_item", "resource_info", b"resource_info", "role_arn", b"role_arn"]) -> None: ...

global___TopicRuleDynamoDBv2Action = TopicRuleDynamoDBv2Action

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ENDPOINT_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    INDEX_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    endpoint: builtins.str
    id: builtins.str
    index: builtins.str
    role_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        endpoint: builtins.str = ...,
        id: builtins.str = ...,
        index: builtins.str = ...,
        role_arn: 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["endpoint", b"endpoint", "id", b"id", "index", b"index", "resource_info", b"resource_info", "role_arn", b"role_arn"]) -> None: ...

global___TopicRuleElasticsearchAction = TopicRuleElasticsearchAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DELIVERY_STREAM_NAME_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    SEPARATOR_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    delivery_stream_name: builtins.str
    role_arn: builtins.str
    separator: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        delivery_stream_name: builtins.str = ...,
        role_arn: builtins.str = ...,
        separator: 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["delivery_stream_name", b"delivery_stream_name", "resource_info", b"resource_info", "role_arn", b"role_arn", "separator", b"separator"]) -> None: ...

global___TopicRuleFirehoseAction = TopicRuleFirehoseAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    SERVICE_NAME_FIELD_NUMBER: builtins.int
    SIGNING_REGION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    role_arn: builtins.str
    service_name: builtins.str
    signing_region: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        role_arn: builtins.str = ...,
        service_name: builtins.str = ...,
        signing_region: 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["resource_info", b"resource_info", "role_arn", b"role_arn", "service_name", b"service_name", "signing_region", b"signing_region"]) -> None: ...

global___TopicRuleSigV4Authorization = TopicRuleSigV4Authorization

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

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

global___TopicRuleHttpAuthorization = TopicRuleHttpAuthorization

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

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

global___TopicRuleHttpActionHeader = TopicRuleHttpActionHeader

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    AUTH_FIELD_NUMBER: builtins.int
    CONFIRMATION_URL_FIELD_NUMBER: builtins.int
    HEADERS_FIELD_NUMBER: builtins.int
    URL_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def auth(self) -> global___TopicRuleHttpAuthorization: ...
    confirmation_url: builtins.str
    @property
    def headers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TopicRuleHttpActionHeader]: ...
    url: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        auth: global___TopicRuleHttpAuthorization | None = ...,
        confirmation_url: builtins.str = ...,
        headers: collections.abc.Iterable[global___TopicRuleHttpActionHeader] | None = ...,
        url: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["auth", b"auth", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["auth", b"auth", "confirmation_url", b"confirmation_url", "headers", b"headers", "resource_info", b"resource_info", "url", b"url"]) -> None: ...

global___TopicRuleHttpAction = TopicRuleHttpAction

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

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

global___TopicRuleIotAnalyticsAction = TopicRuleIotAnalyticsAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    INPUT_NAME_FIELD_NUMBER: builtins.int
    MESSAGE_ID_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    input_name: builtins.str
    message_id: builtins.str
    role_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        input_name: builtins.str = ...,
        message_id: builtins.str = ...,
        role_arn: 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["input_name", b"input_name", "message_id", b"message_id", "resource_info", b"resource_info", "role_arn", b"role_arn"]) -> None: ...

global___TopicRuleIotEventsAction = TopicRuleIotEventsAction

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

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

global___TopicRuleAssetPropertyTimestamp = TopicRuleAssetPropertyTimestamp

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BOOLEAN_VALUE_FIELD_NUMBER: builtins.int
    DOUBLE_VALUE_FIELD_NUMBER: builtins.int
    INTEGER_VALUE_FIELD_NUMBER: builtins.int
    STRING_VALUE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    boolean_value: builtins.str
    double_value: builtins.str
    integer_value: builtins.str
    string_value: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        boolean_value: builtins.str = ...,
        double_value: builtins.str = ...,
        integer_value: builtins.str = ...,
        string_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["boolean_value", b"boolean_value", "double_value", b"double_value", "integer_value", b"integer_value", "resource_info", b"resource_info", "string_value", b"string_value"]) -> None: ...

global___TopicRuleAssetPropertyVariant = TopicRuleAssetPropertyVariant

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    QUALITY_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    quality: builtins.str
    @property
    def timestamp(self) -> global___TopicRuleAssetPropertyTimestamp: ...
    @property
    def value(self) -> global___TopicRuleAssetPropertyVariant: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        quality: builtins.str = ...,
        timestamp: global___TopicRuleAssetPropertyTimestamp | None = ...,
        value: global___TopicRuleAssetPropertyVariant | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "timestamp", b"timestamp", "value", b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["quality", b"quality", "resource_info", b"resource_info", "timestamp", b"timestamp", "value", b"value"]) -> None: ...

global___TopicRuleAssetPropertyValue = TopicRuleAssetPropertyValue

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ASSET_ID_FIELD_NUMBER: builtins.int
    ENTRY_ID_FIELD_NUMBER: builtins.int
    PROPERTY_ALIAS_FIELD_NUMBER: builtins.int
    PROPERTY_ID_FIELD_NUMBER: builtins.int
    PROPERTY_VALUES_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    asset_id: builtins.str
    entry_id: builtins.str
    property_alias: builtins.str
    property_id: builtins.str
    @property
    def property_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TopicRuleAssetPropertyValue]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        asset_id: builtins.str = ...,
        entry_id: builtins.str = ...,
        property_alias: builtins.str = ...,
        property_id: builtins.str = ...,
        property_values: collections.abc.Iterable[global___TopicRuleAssetPropertyValue] | 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["asset_id", b"asset_id", "entry_id", b"entry_id", "property_alias", b"property_alias", "property_id", b"property_id", "property_values", b"property_values", "resource_info", b"resource_info"]) -> None: ...

global___TopicRulePutAssetPropertyValueEntry = TopicRulePutAssetPropertyValueEntry

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PUT_ASSET_PROPERTY_VALUE_ENTRIES_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def put_asset_property_value_entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TopicRulePutAssetPropertyValueEntry]: ...
    role_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        put_asset_property_value_entries: collections.abc.Iterable[global___TopicRulePutAssetPropertyValueEntry] | None = ...,
        role_arn: 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["put_asset_property_value_entries", b"put_asset_property_value_entries", "resource_info", b"resource_info", "role_arn", b"role_arn"]) -> None: ...

global___TopicRuleIotSiteWiseAction = TopicRuleIotSiteWiseAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PARTITION_KEY_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    STREAM_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    partition_key: builtins.str
    role_arn: builtins.str
    stream_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        partition_key: builtins.str = ...,
        role_arn: builtins.str = ...,
        stream_name: 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["partition_key", b"partition_key", "resource_info", b"resource_info", "role_arn", b"role_arn", "stream_name", b"stream_name"]) -> None: ...

global___TopicRuleKinesisAction = TopicRuleKinesisAction

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

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

global___TopicRuleLambdaAction = TopicRuleLambdaAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    QOS_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    TOPIC_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    qos: builtins.int
    role_arn: builtins.str
    topic: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        qos: builtins.int = ...,
        role_arn: builtins.str = ...,
        topic: 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["qos", b"qos", "resource_info", b"resource_info", "role_arn", b"role_arn", "topic", b"topic"]) -> None: ...

global___TopicRuleRepublishAction = TopicRuleRepublishAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BUCKET_NAME_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    bucket_name: builtins.str
    key: builtins.str
    role_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        bucket_name: builtins.str = ...,
        key: builtins.str = ...,
        role_arn: 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", "key", b"key", "resource_info", b"resource_info", "role_arn", b"role_arn"]) -> None: ...

global___TopicRuleS3Action = TopicRuleS3Action

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    MESSAGE_FORMAT_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    TARGET_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    message_format: builtins.str
    role_arn: builtins.str
    target_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        message_format: builtins.str = ...,
        role_arn: builtins.str = ...,
        target_arn: 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["message_format", b"message_format", "resource_info", b"resource_info", "role_arn", b"role_arn", "target_arn", b"target_arn"]) -> None: ...

global___TopicRuleSnsAction = TopicRuleSnsAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    QUEUE_URL_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    USE_BASE64_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    queue_url: builtins.str
    role_arn: builtins.str
    use_base64: builtins.bool
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        queue_url: builtins.str = ...,
        role_arn: builtins.str = ...,
        use_base64: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["queue_url", b"queue_url", "resource_info", b"resource_info", "role_arn", b"role_arn", "use_base64", b"use_base64"]) -> None: ...

global___TopicRuleSqsAction = TopicRuleSqsAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    EXECUTION_NAME_PREFIX_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    STATE_MACHINE_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    execution_name_prefix: builtins.str
    role_arn: builtins.str
    state_machine_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        execution_name_prefix: builtins.str = ...,
        role_arn: builtins.str = ...,
        state_machine_name: 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["execution_name_prefix", b"execution_name_prefix", "resource_info", b"resource_info", "role_arn", b"role_arn", "state_machine_name", b"state_machine_name"]) -> None: ...

global___TopicRuleStepFunctionsAction = TopicRuleStepFunctionsAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CLOUDWATCH_ALARM_FIELD_NUMBER: builtins.int
    CLOUDWATCH_METRIC_FIELD_NUMBER: builtins.int
    DYNAMO_DB_FIELD_NUMBER: builtins.int
    DYNAMO_DBV2_FIELD_NUMBER: builtins.int
    ELASTICSEARCH_FIELD_NUMBER: builtins.int
    FIREHOSE_FIELD_NUMBER: builtins.int
    HTTP_FIELD_NUMBER: builtins.int
    IOT_ANALYTICS_FIELD_NUMBER: builtins.int
    IOT_EVENTS_FIELD_NUMBER: builtins.int
    IOT_SITE_WISE_FIELD_NUMBER: builtins.int
    KINESIS_FIELD_NUMBER: builtins.int
    LAMBDA_FIELD_NUMBER: builtins.int
    REPUBLISH_FIELD_NUMBER: builtins.int
    S3_FIELD_NUMBER: builtins.int
    SNS_FIELD_NUMBER: builtins.int
    SQS_FIELD_NUMBER: builtins.int
    STEP_FUNCTIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def cloudwatch_alarm(self) -> global___TopicRuleCloudwatchAlarmAction: ...
    @property
    def cloudwatch_metric(self) -> global___TopicRuleCloudwatchMetricAction: ...
    @property
    def dynamo_db(self) -> global___TopicRuleDynamoDBAction: ...
    @property
    def dynamo_dbv2(self) -> global___TopicRuleDynamoDBv2Action: ...
    @property
    def elasticsearch(self) -> global___TopicRuleElasticsearchAction: ...
    @property
    def firehose(self) -> global___TopicRuleFirehoseAction: ...
    @property
    def http(self) -> global___TopicRuleHttpAction: ...
    @property
    def iot_analytics(self) -> global___TopicRuleIotAnalyticsAction: ...
    @property
    def iot_events(self) -> global___TopicRuleIotEventsAction: ...
    @property
    def iot_site_wise(self) -> global___TopicRuleIotSiteWiseAction: ...
    @property
    def kinesis(self) -> global___TopicRuleKinesisAction: ...
    @property
    def republish(self) -> global___TopicRuleRepublishAction: ...
    @property
    def s3(self) -> global___TopicRuleS3Action: ...
    @property
    def sns(self) -> global___TopicRuleSnsAction: ...
    @property
    def sqs(self) -> global___TopicRuleSqsAction: ...
    @property
    def step_functions(self) -> global___TopicRuleStepFunctionsAction: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        cloudwatch_alarm: global___TopicRuleCloudwatchAlarmAction | None = ...,
        cloudwatch_metric: global___TopicRuleCloudwatchMetricAction | None = ...,
        dynamo_db: global___TopicRuleDynamoDBAction | None = ...,
        dynamo_dbv2: global___TopicRuleDynamoDBv2Action | None = ...,
        elasticsearch: global___TopicRuleElasticsearchAction | None = ...,
        firehose: global___TopicRuleFirehoseAction | None = ...,
        http: global___TopicRuleHttpAction | None = ...,
        iot_analytics: global___TopicRuleIotAnalyticsAction | None = ...,
        iot_events: global___TopicRuleIotEventsAction | None = ...,
        iot_site_wise: global___TopicRuleIotSiteWiseAction | None = ...,
        kinesis: global___TopicRuleKinesisAction | None = ...,
        republish: global___TopicRuleRepublishAction | None = ...,
        s3: global___TopicRuleS3Action | None = ...,
        sns: global___TopicRuleSnsAction | None = ...,
        sqs: global___TopicRuleSqsAction | None = ...,
        step_functions: global___TopicRuleStepFunctionsAction | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["cloudwatch_alarm", b"cloudwatch_alarm", "cloudwatch_metric", b"cloudwatch_metric", "dynamo_db", b"dynamo_db", "dynamo_dbv2", b"dynamo_dbv2", "elasticsearch", b"elasticsearch", "firehose", b"firehose", "http", b"http", "iot_analytics", b"iot_analytics", "iot_events", b"iot_events", "iot_site_wise", b"iot_site_wise", "kinesis", b"kinesis", "lambda", b"lambda", "republish", b"republish", "resource_info", b"resource_info", "s3", b"s3", "sns", b"sns", "sqs", b"sqs", "step_functions", b"step_functions"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cloudwatch_alarm", b"cloudwatch_alarm", "cloudwatch_metric", b"cloudwatch_metric", "dynamo_db", b"dynamo_db", "dynamo_dbv2", b"dynamo_dbv2", "elasticsearch", b"elasticsearch", "firehose", b"firehose", "http", b"http", "iot_analytics", b"iot_analytics", "iot_events", b"iot_events", "iot_site_wise", b"iot_site_wise", "kinesis", b"kinesis", "lambda", b"lambda", "republish", b"republish", "resource_info", b"resource_info", "s3", b"s3", "sns", b"sns", "sqs", b"sqs", "step_functions", b"step_functions"]) -> None: ...

global___TopicRuleAction = TopicRuleAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACTIONS_FIELD_NUMBER: builtins.int
    AWS_IOT_SQL_VERSION_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    ERROR_ACTION_FIELD_NUMBER: builtins.int
    RULE_DISABLED_FIELD_NUMBER: builtins.int
    SQL_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def actions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TopicRuleAction]: ...
    aws_iot_sql_version: builtins.str
    description: builtins.str
    @property
    def error_action(self) -> global___TopicRuleAction: ...
    rule_disabled: builtins.bool
    sql: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        actions: collections.abc.Iterable[global___TopicRuleAction] | None = ...,
        aws_iot_sql_version: builtins.str = ...,
        description: builtins.str = ...,
        error_action: global___TopicRuleAction | None = ...,
        rule_disabled: builtins.bool = ...,
        sql: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["error_action", b"error_action", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["actions", b"actions", "aws_iot_sql_version", b"aws_iot_sql_version", "description", b"description", "error_action", b"error_action", "resource_info", b"resource_info", "rule_disabled", b"rule_disabled", "sql", b"sql"]) -> None: ...

global___TopicRuleTopicRulePayload = TopicRuleTopicRulePayload

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    RULE_NAME_FIELD_NUMBER: builtins.int
    TOPIC_RULE_PAYLOAD_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    rule_name: builtins.str
    @property
    def topic_rule_payload(self) -> global___TopicRuleTopicRulePayload: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        rule_name: builtins.str = ...,
        topic_rule_payload: global___TopicRuleTopicRulePayload | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "topic_rule_payload", b"topic_rule_payload"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "rule_name", b"rule_name", "topic_rule_payload", b"topic_rule_payload"]) -> None: ...

global___TopicRule = TopicRule
