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

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

global___ScalingPlanTagFilter = ScalingPlanTagFilter

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

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

global___ScalingPlanApplicationSource = ScalingPlanApplicationSource

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

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

global___ScalingPlanPredefinedScalingMetricSpecification = ScalingPlanPredefinedScalingMetricSpecification

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

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

global___ScalingPlanMetricDimension = ScalingPlanMetricDimension

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    METRIC_NAME_FIELD_NUMBER: builtins.int
    STATISTIC_FIELD_NUMBER: builtins.int
    DIMENSIONS_FIELD_NUMBER: builtins.int
    UNIT_FIELD_NUMBER: builtins.int
    NAMESPACE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    metric_name: builtins.str
    statistic: builtins.str
    @property
    def dimensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScalingPlanMetricDimension]: ...
    unit: builtins.str
    namespace: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        metric_name: builtins.str = ...,
        statistic: builtins.str = ...,
        dimensions: collections.abc.Iterable[global___ScalingPlanMetricDimension] | None = ...,
        unit: builtins.str = ...,
        namespace: 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["dimensions", b"dimensions", "metric_name", b"metric_name", "namespace", b"namespace", "resource_info", b"resource_info", "statistic", b"statistic", "unit", b"unit"]) -> None: ...

global___ScalingPlanCustomizedScalingMetricSpecification = ScalingPlanCustomizedScalingMetricSpecification

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SCALE_OUT_COOLDOWN_FIELD_NUMBER: builtins.int
    TARGET_VALUE_FIELD_NUMBER: builtins.int
    PREDEFINED_SCALING_METRIC_SPECIFICATION_FIELD_NUMBER: builtins.int
    DISABLE_SCALE_IN_FIELD_NUMBER: builtins.int
    SCALE_IN_COOLDOWN_FIELD_NUMBER: builtins.int
    ESTIMATED_INSTANCE_WARMUP_FIELD_NUMBER: builtins.int
    CUSTOMIZED_SCALING_METRIC_SPECIFICATION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    scale_out_cooldown: builtins.int
    target_value: builtins.float
    @property
    def predefined_scaling_metric_specification(self) -> global___ScalingPlanPredefinedScalingMetricSpecification: ...
    disable_scale_in: builtins.bool
    scale_in_cooldown: builtins.int
    estimated_instance_warmup: builtins.int
    @property
    def customized_scaling_metric_specification(self) -> global___ScalingPlanCustomizedScalingMetricSpecification: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        scale_out_cooldown: builtins.int = ...,
        target_value: builtins.float = ...,
        predefined_scaling_metric_specification: global___ScalingPlanPredefinedScalingMetricSpecification | None = ...,
        disable_scale_in: builtins.bool = ...,
        scale_in_cooldown: builtins.int = ...,
        estimated_instance_warmup: builtins.int = ...,
        customized_scaling_metric_specification: global___ScalingPlanCustomizedScalingMetricSpecification | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["customized_scaling_metric_specification", b"customized_scaling_metric_specification", "predefined_scaling_metric_specification", b"predefined_scaling_metric_specification", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["customized_scaling_metric_specification", b"customized_scaling_metric_specification", "disable_scale_in", b"disable_scale_in", "estimated_instance_warmup", b"estimated_instance_warmup", "predefined_scaling_metric_specification", b"predefined_scaling_metric_specification", "resource_info", b"resource_info", "scale_in_cooldown", b"scale_in_cooldown", "scale_out_cooldown", b"scale_out_cooldown", "target_value", b"target_value"]) -> None: ...

global___ScalingPlanTargetTrackingConfiguration = ScalingPlanTargetTrackingConfiguration

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    METRIC_NAME_FIELD_NUMBER: builtins.int
    STATISTIC_FIELD_NUMBER: builtins.int
    DIMENSIONS_FIELD_NUMBER: builtins.int
    UNIT_FIELD_NUMBER: builtins.int
    NAMESPACE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    metric_name: builtins.str
    statistic: builtins.str
    @property
    def dimensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScalingPlanMetricDimension]: ...
    unit: builtins.str
    namespace: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        metric_name: builtins.str = ...,
        statistic: builtins.str = ...,
        dimensions: collections.abc.Iterable[global___ScalingPlanMetricDimension] | None = ...,
        unit: builtins.str = ...,
        namespace: 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["dimensions", b"dimensions", "metric_name", b"metric_name", "namespace", b"namespace", "resource_info", b"resource_info", "statistic", b"statistic", "unit", b"unit"]) -> None: ...

global___ScalingPlanCustomizedLoadMetricSpecification = ScalingPlanCustomizedLoadMetricSpecification

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

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

global___ScalingPlanPredefinedLoadMetricSpecification = ScalingPlanPredefinedLoadMetricSpecification

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DISABLE_DYNAMIC_SCALING_FIELD_NUMBER: builtins.int
    SERVICE_NAMESPACE_FIELD_NUMBER: builtins.int
    PREDICTIVE_SCALING_MAX_CAPACITY_BEHAVIOR_FIELD_NUMBER: builtins.int
    SCALABLE_DIMENSION_FIELD_NUMBER: builtins.int
    SCALING_POLICY_UPDATE_BEHAVIOR_FIELD_NUMBER: builtins.int
    MIN_CAPACITY_FIELD_NUMBER: builtins.int
    TARGET_TRACKING_CONFIGURATIONS_FIELD_NUMBER: builtins.int
    PREDICTIVE_SCALING_MAX_CAPACITY_BUFFER_FIELD_NUMBER: builtins.int
    CUSTOMIZED_LOAD_METRIC_SPECIFICATION_FIELD_NUMBER: builtins.int
    PREDEFINED_LOAD_METRIC_SPECIFICATION_FIELD_NUMBER: builtins.int
    RESOURCE_ID_FIELD_NUMBER: builtins.int
    SCHEDULED_ACTION_BUFFER_TIME_FIELD_NUMBER: builtins.int
    MAX_CAPACITY_FIELD_NUMBER: builtins.int
    PREDICTIVE_SCALING_MODE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    disable_dynamic_scaling: builtins.bool
    service_namespace: builtins.str
    predictive_scaling_max_capacity_behavior: builtins.str
    scalable_dimension: builtins.str
    scaling_policy_update_behavior: builtins.str
    min_capacity: builtins.int
    @property
    def target_tracking_configurations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScalingPlanTargetTrackingConfiguration]: ...
    predictive_scaling_max_capacity_buffer: builtins.int
    @property
    def customized_load_metric_specification(self) -> global___ScalingPlanCustomizedLoadMetricSpecification: ...
    @property
    def predefined_load_metric_specification(self) -> global___ScalingPlanPredefinedLoadMetricSpecification: ...
    resource_id: builtins.str
    scheduled_action_buffer_time: builtins.int
    max_capacity: builtins.int
    predictive_scaling_mode: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        disable_dynamic_scaling: builtins.bool = ...,
        service_namespace: builtins.str = ...,
        predictive_scaling_max_capacity_behavior: builtins.str = ...,
        scalable_dimension: builtins.str = ...,
        scaling_policy_update_behavior: builtins.str = ...,
        min_capacity: builtins.int = ...,
        target_tracking_configurations: collections.abc.Iterable[global___ScalingPlanTargetTrackingConfiguration] | None = ...,
        predictive_scaling_max_capacity_buffer: builtins.int = ...,
        customized_load_metric_specification: global___ScalingPlanCustomizedLoadMetricSpecification | None = ...,
        predefined_load_metric_specification: global___ScalingPlanPredefinedLoadMetricSpecification | None = ...,
        resource_id: builtins.str = ...,
        scheduled_action_buffer_time: builtins.int = ...,
        max_capacity: builtins.int = ...,
        predictive_scaling_mode: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["customized_load_metric_specification", b"customized_load_metric_specification", "predefined_load_metric_specification", b"predefined_load_metric_specification", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["customized_load_metric_specification", b"customized_load_metric_specification", "disable_dynamic_scaling", b"disable_dynamic_scaling", "max_capacity", b"max_capacity", "min_capacity", b"min_capacity", "predefined_load_metric_specification", b"predefined_load_metric_specification", "predictive_scaling_max_capacity_behavior", b"predictive_scaling_max_capacity_behavior", "predictive_scaling_max_capacity_buffer", b"predictive_scaling_max_capacity_buffer", "predictive_scaling_mode", b"predictive_scaling_mode", "resource_id", b"resource_id", "resource_info", b"resource_info", "scalable_dimension", b"scalable_dimension", "scaling_policy_update_behavior", b"scaling_policy_update_behavior", "scheduled_action_buffer_time", b"scheduled_action_buffer_time", "service_namespace", b"service_namespace", "target_tracking_configurations", b"target_tracking_configurations"]) -> None: ...

global___ScalingPlanScalingInstruction = ScalingPlanScalingInstruction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    APPLICATION_SOURCE_FIELD_NUMBER: builtins.int
    SCALING_INSTRUCTIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def application_source(self) -> global___ScalingPlanApplicationSource: ...
    @property
    def scaling_instructions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScalingPlanScalingInstruction]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        application_source: global___ScalingPlanApplicationSource | None = ...,
        scaling_instructions: collections.abc.Iterable[global___ScalingPlanScalingInstruction] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["application_source", b"application_source", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["application_source", b"application_source", "resource_info", b"resource_info", "scaling_instructions", b"scaling_instructions"]) -> None: ...

global___ScalingPlan = ScalingPlan

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

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

global___AutoScalingPlans = AutoScalingPlans
