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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    INTERVAL_UNIT_FIELD_NUMBER: builtins.int
    TIMES_FIELD_NUMBER: builtins.int
    CRON_EXPRESSION_FIELD_NUMBER: builtins.int
    INTERVAL_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    interval_unit: builtins.str
    @property
    def times(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    cron_expression: builtins.str
    interval: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        interval_unit: builtins.str = ...,
        times: collections.abc.Iterable[builtins.str] | None = ...,
        cron_expression: builtins.str = ...,
        interval: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cron_expression", b"cron_expression", "interval", b"interval", "interval_unit", b"interval_unit", "resource_info", b"resource_info", "times", b"times"]) -> None: ...

global___LifecyclePolicyCreateRule = LifecyclePolicyCreateRule

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    INTERVAL_UNIT_FIELD_NUMBER: builtins.int
    AVAILABILITY_ZONES_FIELD_NUMBER: builtins.int
    COUNT_FIELD_NUMBER: builtins.int
    INTERVAL_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    interval_unit: builtins.str
    @property
    def availability_zones(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    count: builtins.int
    interval: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        interval_unit: builtins.str = ...,
        availability_zones: collections.abc.Iterable[builtins.str] | None = ...,
        count: builtins.int = ...,
        interval: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["availability_zones", b"availability_zones", "count", b"count", "interval", b"interval", "interval_unit", b"interval_unit", "resource_info", b"resource_info"]) -> None: ...

global___LifecyclePolicyFastRestoreRule = LifecyclePolicyFastRestoreRule

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    INTERVAL_UNIT_FIELD_NUMBER: builtins.int
    COUNT_FIELD_NUMBER: builtins.int
    INTERVAL_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    interval_unit: builtins.str
    count: builtins.int
    interval: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        interval_unit: builtins.str = ...,
        count: builtins.int = ...,
        interval: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["count", b"count", "interval", b"interval", "interval_unit", b"interval_unit", "resource_info", b"resource_info"]) -> None: ...

global___LifecyclePolicyRetainRule = LifecyclePolicyRetainRule

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

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

global___LifecyclePolicyCrossRegionCopyRetainRule = LifecyclePolicyCrossRegionCopyRetainRule

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    TARGET_REGION_FIELD_NUMBER: builtins.int
    ENCRYPTED_FIELD_NUMBER: builtins.int
    CMK_ARN_FIELD_NUMBER: builtins.int
    RETAIN_RULE_FIELD_NUMBER: builtins.int
    COPY_TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    target_region: builtins.str
    encrypted: builtins.bool
    cmk_arn: builtins.str
    @property
    def retain_rule(self) -> global___LifecyclePolicyCrossRegionCopyRetainRule: ...
    copy_tags: builtins.bool
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        target_region: builtins.str = ...,
        encrypted: builtins.bool = ...,
        cmk_arn: builtins.str = ...,
        retain_rule: global___LifecyclePolicyCrossRegionCopyRetainRule | None = ...,
        copy_tags: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "retain_rule", b"retain_rule"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cmk_arn", b"cmk_arn", "copy_tags", b"copy_tags", "encrypted", b"encrypted", "resource_info", b"resource_info", "retain_rule", b"retain_rule", "target_region", b"target_region"]) -> None: ...

global___LifecyclePolicyCrossRegionCopyRule = LifecyclePolicyCrossRegionCopyRule

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

    @typing_extensions.final
    class TagsToAddEntry(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: ...

    @typing_extensions.final
    class VariableTagsEntry(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_TO_ADD_FIELD_NUMBER: builtins.int
    CREATE_RULE_FIELD_NUMBER: builtins.int
    VARIABLE_TAGS_FIELD_NUMBER: builtins.int
    FAST_RESTORE_RULE_FIELD_NUMBER: builtins.int
    RETAIN_RULE_FIELD_NUMBER: builtins.int
    CROSS_REGION_COPY_RULES_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    COPY_TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def tags_to_add(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def create_rule(self) -> global___LifecyclePolicyCreateRule: ...
    @property
    def variable_tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def fast_restore_rule(self) -> global___LifecyclePolicyFastRestoreRule: ...
    @property
    def retain_rule(self) -> global___LifecyclePolicyRetainRule: ...
    @property
    def cross_region_copy_rules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LifecyclePolicyCrossRegionCopyRule]: ...
    name: builtins.str
    copy_tags: builtins.bool
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        tags_to_add: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        create_rule: global___LifecyclePolicyCreateRule | None = ...,
        variable_tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        fast_restore_rule: global___LifecyclePolicyFastRestoreRule | None = ...,
        retain_rule: global___LifecyclePolicyRetainRule | None = ...,
        cross_region_copy_rules: collections.abc.Iterable[global___LifecyclePolicyCrossRegionCopyRule] | None = ...,
        name: builtins.str = ...,
        copy_tags: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["create_rule", b"create_rule", "fast_restore_rule", b"fast_restore_rule", "resource_info", b"resource_info", "retain_rule", b"retain_rule"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["copy_tags", b"copy_tags", "create_rule", b"create_rule", "cross_region_copy_rules", b"cross_region_copy_rules", "fast_restore_rule", b"fast_restore_rule", "name", b"name", "resource_info", b"resource_info", "retain_rule", b"retain_rule", "tags_to_add", b"tags_to_add", "variable_tags", b"variable_tags"]) -> None: ...

global___LifecyclePolicySchedule = LifecyclePolicySchedule

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

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

global___LifecyclePolicyParameters = LifecyclePolicyParameters

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

    @typing_extensions.final
    class TargetTagsEntry(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
    RESOURCE_TYPES_FIELD_NUMBER: builtins.int
    SCHEDULES_FIELD_NUMBER: builtins.int
    POLICY_TYPE_FIELD_NUMBER: builtins.int
    PARAMETERS_FIELD_NUMBER: builtins.int
    TARGET_TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def resource_types(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def schedules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LifecyclePolicySchedule]: ...
    policy_type: builtins.str
    @property
    def parameters(self) -> global___LifecyclePolicyParameters: ...
    @property
    def target_tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        resource_types: collections.abc.Iterable[builtins.str] | None = ...,
        schedules: collections.abc.Iterable[global___LifecyclePolicySchedule] | None = ...,
        policy_type: builtins.str = ...,
        parameters: global___LifecyclePolicyParameters | None = ...,
        target_tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["parameters", b"parameters", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["parameters", b"parameters", "policy_type", b"policy_type", "resource_info", b"resource_info", "resource_types", b"resource_types", "schedules", b"schedules", "target_tags", b"target_tags"]) -> None: ...

global___LifecyclePolicyPolicyDetails = LifecyclePolicyPolicyDetails

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    EXECUTION_ROLE_ARN_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    POLICY_DETAILS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    execution_role_arn: builtins.str
    description: builtins.str
    state: builtins.str
    @property
    def policy_details(self) -> global___LifecyclePolicyPolicyDetails: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        execution_role_arn: builtins.str = ...,
        description: builtins.str = ...,
        state: builtins.str = ...,
        policy_details: global___LifecyclePolicyPolicyDetails | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["policy_details", b"policy_details", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "execution_role_arn", b"execution_role_arn", "policy_details", b"policy_details", "resource_info", b"resource_info", "state", b"state"]) -> None: ...

global___LifecyclePolicy = LifecyclePolicy

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

    LIFECYCLE_POLICY_FIELD_NUMBER: builtins.int
    @property
    def lifecycle_policy(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LifecyclePolicy]: ...
    def __init__(
        self,
        *,
        lifecycle_policy: collections.abc.Iterable[global___LifecyclePolicy] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["lifecycle_policy", b"lifecycle_policy"]) -> None: ...

global___DLM = DLM
