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

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

global___ScalableTargetScalableTargetAction = ScalableTargetScalableTargetAction

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    END_TIME_FIELD_NUMBER: builtins.int
    SCALABLE_TARGET_ACTION_FIELD_NUMBER: builtins.int
    SCHEDULE_FIELD_NUMBER: builtins.int
    SCHEDULED_ACTION_NAME_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    end_time: builtins.str
    @property
    def scalable_target_action(self) -> global___ScalableTargetScalableTargetAction: ...
    schedule: builtins.str
    scheduled_action_name: builtins.str
    start_time: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        end_time: builtins.str = ...,
        scalable_target_action: global___ScalableTargetScalableTargetAction | None = ...,
        schedule: builtins.str = ...,
        scheduled_action_name: builtins.str = ...,
        start_time: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "scalable_target_action", b"scalable_target_action"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["end_time", b"end_time", "resource_info", b"resource_info", "scalable_target_action", b"scalable_target_action", "schedule", b"schedule", "scheduled_action_name", b"scheduled_action_name", "start_time", b"start_time"]) -> None: ...

global___ScalableTargetScheduledAction = ScalableTargetScheduledAction

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

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

global___ScalableTargetSuspendedState = ScalableTargetSuspendedState

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    MAX_CAPACITY_FIELD_NUMBER: builtins.int
    MIN_CAPACITY_FIELD_NUMBER: builtins.int
    RESOURCE_ID_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    SCALABLE_DIMENSION_FIELD_NUMBER: builtins.int
    SCHEDULED_ACTIONS_FIELD_NUMBER: builtins.int
    SERVICE_NAMESPACE_FIELD_NUMBER: builtins.int
    SUSPENDED_STATE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    max_capacity: builtins.int
    min_capacity: builtins.int
    resource_id: builtins.str
    role_arn: builtins.str
    scalable_dimension: builtins.str
    @property
    def scheduled_actions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScalableTargetScheduledAction]: ...
    service_namespace: builtins.str
    @property
    def suspended_state(self) -> global___ScalableTargetSuspendedState: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        max_capacity: builtins.int = ...,
        min_capacity: builtins.int = ...,
        resource_id: builtins.str = ...,
        role_arn: builtins.str = ...,
        scalable_dimension: builtins.str = ...,
        scheduled_actions: collections.abc.Iterable[global___ScalableTargetScheduledAction] | None = ...,
        service_namespace: builtins.str = ...,
        suspended_state: global___ScalableTargetSuspendedState | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "suspended_state", b"suspended_state"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["max_capacity", b"max_capacity", "min_capacity", b"min_capacity", "resource_id", b"resource_id", "resource_info", b"resource_info", "role_arn", b"role_arn", "scalable_dimension", b"scalable_dimension", "scheduled_actions", b"scheduled_actions", "service_namespace", b"service_namespace", "suspended_state", b"suspended_state"]) -> None: ...

global___ScalableTarget = ScalableTarget

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

    SCALABLE_TARGET_FIELD_NUMBER: builtins.int
    SCALING_POLICY_FIELD_NUMBER: builtins.int
    @property
    def scalable_target(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScalableTarget]: ...
    @property
    def scaling_policy(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScalingPolicy]: ...
    def __init__(
        self,
        *,
        scalable_target: collections.abc.Iterable[global___ScalableTarget] | None = ...,
        scaling_policy: collections.abc.Iterable[global___ScalingPolicy] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["scalable_target", b"scalable_target", "scaling_policy", b"scaling_policy"]) -> None: ...

global___ApplicationAutoScaling = ApplicationAutoScaling

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    METRIC_INTERVAL_LOWER_BOUND_FIELD_NUMBER: builtins.int
    METRIC_INTERVAL_UPPER_BOUND_FIELD_NUMBER: builtins.int
    SCALING_ADJUSTMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    metric_interval_lower_bound: builtins.float
    metric_interval_upper_bound: builtins.float
    scaling_adjustment: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        metric_interval_lower_bound: builtins.float = ...,
        metric_interval_upper_bound: builtins.float = ...,
        scaling_adjustment: 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["metric_interval_lower_bound", b"metric_interval_lower_bound", "metric_interval_upper_bound", b"metric_interval_upper_bound", "resource_info", b"resource_info", "scaling_adjustment", b"scaling_adjustment"]) -> None: ...

global___ScalingPolicyStepAdjustment = ScalingPolicyStepAdjustment

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ADJUSTMENT_TYPE_FIELD_NUMBER: builtins.int
    COOLDOWN_FIELD_NUMBER: builtins.int
    METRIC_AGGREGATION_TYPE_FIELD_NUMBER: builtins.int
    MIN_ADJUSTMENT_MAGNITUDE_FIELD_NUMBER: builtins.int
    STEP_ADJUSTMENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    adjustment_type: builtins.str
    cooldown: builtins.int
    metric_aggregation_type: builtins.str
    min_adjustment_magnitude: builtins.int
    @property
    def step_adjustments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScalingPolicyStepAdjustment]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        adjustment_type: builtins.str = ...,
        cooldown: builtins.int = ...,
        metric_aggregation_type: builtins.str = ...,
        min_adjustment_magnitude: builtins.int = ...,
        step_adjustments: collections.abc.Iterable[global___ScalingPolicyStepAdjustment] | 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["adjustment_type", b"adjustment_type", "cooldown", b"cooldown", "metric_aggregation_type", b"metric_aggregation_type", "min_adjustment_magnitude", b"min_adjustment_magnitude", "resource_info", b"resource_info", "step_adjustments", b"step_adjustments"]) -> None: ...

global___ScalingPolicyStepScalingPolicyConfiguration = ScalingPolicyStepScalingPolicyConfiguration

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

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

global___ScalingPolicyMetricDimension = ScalingPolicyMetricDimension

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

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

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

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

global___ScalingPolicyPredefinedMetricSpecification = ScalingPolicyPredefinedMetricSpecification

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CUSTOMIZED_METRIC_SPECIFICATION_FIELD_NUMBER: builtins.int
    DISABLE_SCALE_IN_FIELD_NUMBER: builtins.int
    PREDEFINED_METRIC_SPECIFICATION_FIELD_NUMBER: builtins.int
    SCALE_IN_COOLDOWN_FIELD_NUMBER: builtins.int
    SCALE_OUT_COOLDOWN_FIELD_NUMBER: builtins.int
    TARGET_VALUE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def customized_metric_specification(self) -> global___ScalingPolicyCustomizedMetricSpecification: ...
    disable_scale_in: builtins.bool
    @property
    def predefined_metric_specification(self) -> global___ScalingPolicyPredefinedMetricSpecification: ...
    scale_in_cooldown: builtins.int
    scale_out_cooldown: builtins.int
    target_value: builtins.float
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        customized_metric_specification: global___ScalingPolicyCustomizedMetricSpecification | None = ...,
        disable_scale_in: builtins.bool = ...,
        predefined_metric_specification: global___ScalingPolicyPredefinedMetricSpecification | None = ...,
        scale_in_cooldown: builtins.int = ...,
        scale_out_cooldown: builtins.int = ...,
        target_value: builtins.float = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["customized_metric_specification", b"customized_metric_specification", "predefined_metric_specification", b"predefined_metric_specification", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["customized_metric_specification", b"customized_metric_specification", "disable_scale_in", b"disable_scale_in", "predefined_metric_specification", b"predefined_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___ScalingPolicyTargetTrackingScalingPolicyConfiguration = ScalingPolicyTargetTrackingScalingPolicyConfiguration

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

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    POLICY_NAME_FIELD_NUMBER: builtins.int
    POLICY_TYPE_FIELD_NUMBER: builtins.int
    RESOURCE_ID_FIELD_NUMBER: builtins.int
    SCALABLE_DIMENSION_FIELD_NUMBER: builtins.int
    SCALING_TARGET_ID_FIELD_NUMBER: builtins.int
    SERVICE_NAMESPACE_FIELD_NUMBER: builtins.int
    STEP_SCALING_POLICY_CONFIGURATION_FIELD_NUMBER: builtins.int
    TARGET_TRACKING_SCALING_POLICY_CONFIGURATION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    policy_name: builtins.str
    policy_type: builtins.str
    resource_id: builtins.str
    scalable_dimension: builtins.str
    scaling_target_id: builtins.str
    service_namespace: builtins.str
    @property
    def step_scaling_policy_configuration(self) -> global___ScalingPolicyStepScalingPolicyConfiguration: ...
    @property
    def target_tracking_scaling_policy_configuration(self) -> global___ScalingPolicyTargetTrackingScalingPolicyConfiguration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        policy_name: builtins.str = ...,
        policy_type: builtins.str = ...,
        resource_id: builtins.str = ...,
        scalable_dimension: builtins.str = ...,
        scaling_target_id: builtins.str = ...,
        service_namespace: builtins.str = ...,
        step_scaling_policy_configuration: global___ScalingPolicyStepScalingPolicyConfiguration | None = ...,
        target_tracking_scaling_policy_configuration: global___ScalingPolicyTargetTrackingScalingPolicyConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "step_scaling_policy_configuration", b"step_scaling_policy_configuration", "target_tracking_scaling_policy_configuration", b"target_tracking_scaling_policy_configuration"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["policy_name", b"policy_name", "policy_type", b"policy_type", "resource_id", b"resource_id", "resource_info", b"resource_info", "scalable_dimension", b"scalable_dimension", "scaling_target_id", b"scaling_target_id", "service_namespace", b"service_namespace", "step_scaling_policy_configuration", b"step_scaling_policy_configuration", "target_tracking_scaling_policy_configuration", b"target_tracking_scaling_policy_configuration"]) -> None: ...

global___ScalingPolicy = ScalingPolicy
