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

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

global___NotificationChannel = NotificationChannel

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

    NOTIFICATION_CHANNEL_FIELD_NUMBER: builtins.int
    POLICY_FIELD_NUMBER: builtins.int
    @property
    def notification_channel(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NotificationChannel]: ...
    @property
    def policy(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Policy]: ...
    def __init__(
        self,
        *,
        notification_channel: collections.abc.Iterable[global___NotificationChannel] | None = ...,
        policy: collections.abc.Iterable[global___Policy] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["notification_channel", b"notification_channel", "policy", b"policy"]) -> None: ...

global___FMS = FMS

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ACCOUNT_FIELD_NUMBER: builtins.int
    ORGUNIT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def account(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def orgunit(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        account: collections.abc.Iterable[builtins.str] | None = ...,
        orgunit: collections.abc.Iterable[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["account", b"account", "orgunit", b"orgunit", "resource_info", b"resource_info"]) -> None: ...

global___PolicyIEMap = PolicyIEMap

@typing_extensions.final
class PolicyResourceTag(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___PolicyResourceTag = PolicyResourceTag

@typing_extensions.final
class PolicyPolicyTag(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___PolicyPolicyTag = PolicyPolicyTag

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

    @typing_extensions.final
    class SecurityServicePolicyDataEntry(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
    EXCLUDE_MAP_FIELD_NUMBER: builtins.int
    EXCLUDE_RESOURCE_TAGS_FIELD_NUMBER: builtins.int
    INCLUDE_MAP_FIELD_NUMBER: builtins.int
    POLICY_NAME_FIELD_NUMBER: builtins.int
    REMEDIATION_ENABLED_FIELD_NUMBER: builtins.int
    RESOURCE_TAGS_FIELD_NUMBER: builtins.int
    RESOURCE_TYPE_FIELD_NUMBER: builtins.int
    RESOURCE_TYPE_LIST_FIELD_NUMBER: builtins.int
    SECURITY_SERVICE_POLICY_DATA_FIELD_NUMBER: builtins.int
    DELETE_ALL_POLICY_RESOURCES_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def exclude_map(self) -> global___PolicyIEMap: ...
    exclude_resource_tags: builtins.bool
    @property
    def include_map(self) -> global___PolicyIEMap: ...
    policy_name: builtins.str
    remediation_enabled: builtins.bool
    @property
    def resource_tags(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PolicyResourceTag]: ...
    resource_type: builtins.str
    @property
    def resource_type_list(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def security_service_policy_data(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    delete_all_policy_resources: builtins.bool
    @property
    def tags(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PolicyPolicyTag]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        exclude_map: global___PolicyIEMap | None = ...,
        exclude_resource_tags: builtins.bool = ...,
        include_map: global___PolicyIEMap | None = ...,
        policy_name: builtins.str = ...,
        remediation_enabled: builtins.bool = ...,
        resource_tags: collections.abc.Iterable[global___PolicyResourceTag] | None = ...,
        resource_type: builtins.str = ...,
        resource_type_list: collections.abc.Iterable[builtins.str] | None = ...,
        security_service_policy_data: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        delete_all_policy_resources: builtins.bool = ...,
        tags: collections.abc.Iterable[global___PolicyPolicyTag] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["exclude_map", b"exclude_map", "include_map", b"include_map", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["delete_all_policy_resources", b"delete_all_policy_resources", "exclude_map", b"exclude_map", "exclude_resource_tags", b"exclude_resource_tags", "include_map", b"include_map", "policy_name", b"policy_name", "remediation_enabled", b"remediation_enabled", "resource_info", b"resource_info", "resource_tags", b"resource_tags", "resource_type", b"resource_type", "resource_type_list", b"resource_type_list", "security_service_policy_data", b"security_service_policy_data", "tags", b"tags"]) -> None: ...

global___Policy = Policy
