# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities

__all__ = [
    'DbInstancePlanPlanConfigArgs',
    'DbInstancePlanPlanConfigArgsDict',
    'DbInstancePlanPlanConfigPauseArgs',
    'DbInstancePlanPlanConfigPauseArgsDict',
    'DbInstancePlanPlanConfigResumeArgs',
    'DbInstancePlanPlanConfigResumeArgsDict',
    'DbInstancePlanPlanConfigScaleDownArgs',
    'DbInstancePlanPlanConfigScaleDownArgsDict',
    'DbInstancePlanPlanConfigScaleInArgs',
    'DbInstancePlanPlanConfigScaleInArgsDict',
    'DbInstancePlanPlanConfigScaleOutArgs',
    'DbInstancePlanPlanConfigScaleOutArgsDict',
    'DbInstancePlanPlanConfigScaleUpArgs',
    'DbInstancePlanPlanConfigScaleUpArgsDict',
    'InstanceIpWhitelistArgs',
    'InstanceIpWhitelistArgsDict',
    'InstanceParameterArgs',
    'InstanceParameterArgsDict',
]

MYPY = False

if not MYPY:
    class DbInstancePlanPlanConfigArgsDict(TypedDict):
        pause: NotRequired[pulumi.Input['DbInstancePlanPlanConfigPauseArgsDict']]
        """
        Pause instance plan config. See `pause` below.
        """
        resume: NotRequired[pulumi.Input['DbInstancePlanPlanConfigResumeArgsDict']]
        """
        Resume instance plan config. See `resume` below.
        """
        scale_down: NotRequired[pulumi.Input['DbInstancePlanPlanConfigScaleDownArgsDict']]
        """
        Scale down instance plan config. See `scale_down` below.
        """
        scale_in: NotRequired[pulumi.Input['DbInstancePlanPlanConfigScaleInArgsDict']]
        """
        Scale In instance plan config. See `scale_in` below.
        """
        scale_out: NotRequired[pulumi.Input['DbInstancePlanPlanConfigScaleOutArgsDict']]
        """
        Scale out instance plan config. See `scale_out` below.
        """
        scale_up: NotRequired[pulumi.Input['DbInstancePlanPlanConfigScaleUpArgsDict']]
        """
        Scale up instance plan config. See `scale_up` below.
        """
elif False:
    DbInstancePlanPlanConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DbInstancePlanPlanConfigArgs:
    def __init__(__self__, *,
                 pause: Optional[pulumi.Input['DbInstancePlanPlanConfigPauseArgs']] = None,
                 resume: Optional[pulumi.Input['DbInstancePlanPlanConfigResumeArgs']] = None,
                 scale_down: Optional[pulumi.Input['DbInstancePlanPlanConfigScaleDownArgs']] = None,
                 scale_in: Optional[pulumi.Input['DbInstancePlanPlanConfigScaleInArgs']] = None,
                 scale_out: Optional[pulumi.Input['DbInstancePlanPlanConfigScaleOutArgs']] = None,
                 scale_up: Optional[pulumi.Input['DbInstancePlanPlanConfigScaleUpArgs']] = None):
        """
        :param pulumi.Input['DbInstancePlanPlanConfigPauseArgs'] pause: Pause instance plan config. See `pause` below.
        :param pulumi.Input['DbInstancePlanPlanConfigResumeArgs'] resume: Resume instance plan config. See `resume` below.
        :param pulumi.Input['DbInstancePlanPlanConfigScaleDownArgs'] scale_down: Scale down instance plan config. See `scale_down` below.
        :param pulumi.Input['DbInstancePlanPlanConfigScaleInArgs'] scale_in: Scale In instance plan config. See `scale_in` below.
        :param pulumi.Input['DbInstancePlanPlanConfigScaleOutArgs'] scale_out: Scale out instance plan config. See `scale_out` below.
        :param pulumi.Input['DbInstancePlanPlanConfigScaleUpArgs'] scale_up: Scale up instance plan config. See `scale_up` below.
        """
        if pause is not None:
            pulumi.set(__self__, "pause", pause)
        if resume is not None:
            pulumi.set(__self__, "resume", resume)
        if scale_down is not None:
            pulumi.set(__self__, "scale_down", scale_down)
        if scale_in is not None:
            pulumi.set(__self__, "scale_in", scale_in)
        if scale_out is not None:
            pulumi.set(__self__, "scale_out", scale_out)
        if scale_up is not None:
            pulumi.set(__self__, "scale_up", scale_up)

    @property
    @pulumi.getter
    def pause(self) -> Optional[pulumi.Input['DbInstancePlanPlanConfigPauseArgs']]:
        """
        Pause instance plan config. See `pause` below.
        """
        return pulumi.get(self, "pause")

    @pause.setter
    def pause(self, value: Optional[pulumi.Input['DbInstancePlanPlanConfigPauseArgs']]):
        pulumi.set(self, "pause", value)

    @property
    @pulumi.getter
    def resume(self) -> Optional[pulumi.Input['DbInstancePlanPlanConfigResumeArgs']]:
        """
        Resume instance plan config. See `resume` below.
        """
        return pulumi.get(self, "resume")

    @resume.setter
    def resume(self, value: Optional[pulumi.Input['DbInstancePlanPlanConfigResumeArgs']]):
        pulumi.set(self, "resume", value)

    @property
    @pulumi.getter(name="scaleDown")
    def scale_down(self) -> Optional[pulumi.Input['DbInstancePlanPlanConfigScaleDownArgs']]:
        """
        Scale down instance plan config. See `scale_down` below.
        """
        return pulumi.get(self, "scale_down")

    @scale_down.setter
    def scale_down(self, value: Optional[pulumi.Input['DbInstancePlanPlanConfigScaleDownArgs']]):
        pulumi.set(self, "scale_down", value)

    @property
    @pulumi.getter(name="scaleIn")
    def scale_in(self) -> Optional[pulumi.Input['DbInstancePlanPlanConfigScaleInArgs']]:
        """
        Scale In instance plan config. See `scale_in` below.
        """
        return pulumi.get(self, "scale_in")

    @scale_in.setter
    def scale_in(self, value: Optional[pulumi.Input['DbInstancePlanPlanConfigScaleInArgs']]):
        pulumi.set(self, "scale_in", value)

    @property
    @pulumi.getter(name="scaleOut")
    def scale_out(self) -> Optional[pulumi.Input['DbInstancePlanPlanConfigScaleOutArgs']]:
        """
        Scale out instance plan config. See `scale_out` below.
        """
        return pulumi.get(self, "scale_out")

    @scale_out.setter
    def scale_out(self, value: Optional[pulumi.Input['DbInstancePlanPlanConfigScaleOutArgs']]):
        pulumi.set(self, "scale_out", value)

    @property
    @pulumi.getter(name="scaleUp")
    def scale_up(self) -> Optional[pulumi.Input['DbInstancePlanPlanConfigScaleUpArgs']]:
        """
        Scale up instance plan config. See `scale_up` below.
        """
        return pulumi.get(self, "scale_up")

    @scale_up.setter
    def scale_up(self, value: Optional[pulumi.Input['DbInstancePlanPlanConfigScaleUpArgs']]):
        pulumi.set(self, "scale_up", value)


if not MYPY:
    class DbInstancePlanPlanConfigPauseArgsDict(TypedDict):
        execute_time: NotRequired[pulumi.Input[str]]
        """
        The executed time of the Plan.
        """
        plan_cron_time: NotRequired[pulumi.Input[str]]
        """
        The Cron Time of the plan.
        """
        plan_task_status: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) The status of the plan task.
        """
elif False:
    DbInstancePlanPlanConfigPauseArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DbInstancePlanPlanConfigPauseArgs:
    def __init__(__self__, *,
                 execute_time: Optional[pulumi.Input[str]] = None,
                 plan_cron_time: Optional[pulumi.Input[str]] = None,
                 plan_task_status: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] execute_time: The executed time of the Plan.
        :param pulumi.Input[str] plan_cron_time: The Cron Time of the plan.
        :param pulumi.Input[str] plan_task_status: (Available since v1.231.0) The status of the plan task.
        """
        if execute_time is not None:
            pulumi.set(__self__, "execute_time", execute_time)
        if plan_cron_time is not None:
            pulumi.set(__self__, "plan_cron_time", plan_cron_time)
        if plan_task_status is not None:
            pulumi.set(__self__, "plan_task_status", plan_task_status)

    @property
    @pulumi.getter(name="executeTime")
    def execute_time(self) -> Optional[pulumi.Input[str]]:
        """
        The executed time of the Plan.
        """
        return pulumi.get(self, "execute_time")

    @execute_time.setter
    def execute_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "execute_time", value)

    @property
    @pulumi.getter(name="planCronTime")
    def plan_cron_time(self) -> Optional[pulumi.Input[str]]:
        """
        The Cron Time of the plan.
        """
        return pulumi.get(self, "plan_cron_time")

    @plan_cron_time.setter
    def plan_cron_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_cron_time", value)

    @property
    @pulumi.getter(name="planTaskStatus")
    def plan_task_status(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) The status of the plan task.
        """
        return pulumi.get(self, "plan_task_status")

    @plan_task_status.setter
    def plan_task_status(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_task_status", value)


if not MYPY:
    class DbInstancePlanPlanConfigResumeArgsDict(TypedDict):
        execute_time: NotRequired[pulumi.Input[str]]
        """
        The executed time of the Plan.
        """
        plan_cron_time: NotRequired[pulumi.Input[str]]
        """
        The Cron Time of the plan.
        """
        plan_task_status: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) The status of the plan task.
        """
elif False:
    DbInstancePlanPlanConfigResumeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DbInstancePlanPlanConfigResumeArgs:
    def __init__(__self__, *,
                 execute_time: Optional[pulumi.Input[str]] = None,
                 plan_cron_time: Optional[pulumi.Input[str]] = None,
                 plan_task_status: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] execute_time: The executed time of the Plan.
        :param pulumi.Input[str] plan_cron_time: The Cron Time of the plan.
        :param pulumi.Input[str] plan_task_status: (Available since v1.231.0) The status of the plan task.
        """
        if execute_time is not None:
            pulumi.set(__self__, "execute_time", execute_time)
        if plan_cron_time is not None:
            pulumi.set(__self__, "plan_cron_time", plan_cron_time)
        if plan_task_status is not None:
            pulumi.set(__self__, "plan_task_status", plan_task_status)

    @property
    @pulumi.getter(name="executeTime")
    def execute_time(self) -> Optional[pulumi.Input[str]]:
        """
        The executed time of the Plan.
        """
        return pulumi.get(self, "execute_time")

    @execute_time.setter
    def execute_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "execute_time", value)

    @property
    @pulumi.getter(name="planCronTime")
    def plan_cron_time(self) -> Optional[pulumi.Input[str]]:
        """
        The Cron Time of the plan.
        """
        return pulumi.get(self, "plan_cron_time")

    @plan_cron_time.setter
    def plan_cron_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_cron_time", value)

    @property
    @pulumi.getter(name="planTaskStatus")
    def plan_task_status(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) The status of the plan task.
        """
        return pulumi.get(self, "plan_task_status")

    @plan_task_status.setter
    def plan_task_status(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_task_status", value)


if not MYPY:
    class DbInstancePlanPlanConfigScaleDownArgsDict(TypedDict):
        execute_time: NotRequired[pulumi.Input[str]]
        """
        The executed time of the Plan.
        """
        instance_spec: NotRequired[pulumi.Input[str]]
        """
        The specification of segment nodes of the Plan.
        """
        plan_cron_time: NotRequired[pulumi.Input[str]]
        """
        The Cron Time of the plan.
        """
        plan_task_status: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) The status of the plan task.
        """
elif False:
    DbInstancePlanPlanConfigScaleDownArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DbInstancePlanPlanConfigScaleDownArgs:
    def __init__(__self__, *,
                 execute_time: Optional[pulumi.Input[str]] = None,
                 instance_spec: Optional[pulumi.Input[str]] = None,
                 plan_cron_time: Optional[pulumi.Input[str]] = None,
                 plan_task_status: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] execute_time: The executed time of the Plan.
        :param pulumi.Input[str] instance_spec: The specification of segment nodes of the Plan.
        :param pulumi.Input[str] plan_cron_time: The Cron Time of the plan.
        :param pulumi.Input[str] plan_task_status: (Available since v1.231.0) The status of the plan task.
        """
        if execute_time is not None:
            pulumi.set(__self__, "execute_time", execute_time)
        if instance_spec is not None:
            pulumi.set(__self__, "instance_spec", instance_spec)
        if plan_cron_time is not None:
            pulumi.set(__self__, "plan_cron_time", plan_cron_time)
        if plan_task_status is not None:
            pulumi.set(__self__, "plan_task_status", plan_task_status)

    @property
    @pulumi.getter(name="executeTime")
    def execute_time(self) -> Optional[pulumi.Input[str]]:
        """
        The executed time of the Plan.
        """
        return pulumi.get(self, "execute_time")

    @execute_time.setter
    def execute_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "execute_time", value)

    @property
    @pulumi.getter(name="instanceSpec")
    def instance_spec(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of segment nodes of the Plan.
        """
        return pulumi.get(self, "instance_spec")

    @instance_spec.setter
    def instance_spec(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "instance_spec", value)

    @property
    @pulumi.getter(name="planCronTime")
    def plan_cron_time(self) -> Optional[pulumi.Input[str]]:
        """
        The Cron Time of the plan.
        """
        return pulumi.get(self, "plan_cron_time")

    @plan_cron_time.setter
    def plan_cron_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_cron_time", value)

    @property
    @pulumi.getter(name="planTaskStatus")
    def plan_task_status(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) The status of the plan task.
        """
        return pulumi.get(self, "plan_task_status")

    @plan_task_status.setter
    def plan_task_status(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_task_status", value)


if not MYPY:
    class DbInstancePlanPlanConfigScaleInArgsDict(TypedDict):
        execute_time: NotRequired[pulumi.Input[str]]
        """
        The executed time of the Plan.
        """
        plan_cron_time: NotRequired[pulumi.Input[str]]
        """
        The Cron Time of the plan.
        """
        plan_task_status: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) The status of the plan task.
        """
        segment_node_num: NotRequired[pulumi.Input[str]]
        """
        The segment Node Num of the Plan.
        """
elif False:
    DbInstancePlanPlanConfigScaleInArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DbInstancePlanPlanConfigScaleInArgs:
    def __init__(__self__, *,
                 execute_time: Optional[pulumi.Input[str]] = None,
                 plan_cron_time: Optional[pulumi.Input[str]] = None,
                 plan_task_status: Optional[pulumi.Input[str]] = None,
                 segment_node_num: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] execute_time: The executed time of the Plan.
        :param pulumi.Input[str] plan_cron_time: The Cron Time of the plan.
        :param pulumi.Input[str] plan_task_status: (Available since v1.231.0) The status of the plan task.
        :param pulumi.Input[str] segment_node_num: The segment Node Num of the Plan.
        """
        if execute_time is not None:
            pulumi.set(__self__, "execute_time", execute_time)
        if plan_cron_time is not None:
            pulumi.set(__self__, "plan_cron_time", plan_cron_time)
        if plan_task_status is not None:
            pulumi.set(__self__, "plan_task_status", plan_task_status)
        if segment_node_num is not None:
            pulumi.set(__self__, "segment_node_num", segment_node_num)

    @property
    @pulumi.getter(name="executeTime")
    def execute_time(self) -> Optional[pulumi.Input[str]]:
        """
        The executed time of the Plan.
        """
        return pulumi.get(self, "execute_time")

    @execute_time.setter
    def execute_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "execute_time", value)

    @property
    @pulumi.getter(name="planCronTime")
    def plan_cron_time(self) -> Optional[pulumi.Input[str]]:
        """
        The Cron Time of the plan.
        """
        return pulumi.get(self, "plan_cron_time")

    @plan_cron_time.setter
    def plan_cron_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_cron_time", value)

    @property
    @pulumi.getter(name="planTaskStatus")
    def plan_task_status(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) The status of the plan task.
        """
        return pulumi.get(self, "plan_task_status")

    @plan_task_status.setter
    def plan_task_status(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_task_status", value)

    @property
    @pulumi.getter(name="segmentNodeNum")
    def segment_node_num(self) -> Optional[pulumi.Input[str]]:
        """
        The segment Node Num of the Plan.
        """
        return pulumi.get(self, "segment_node_num")

    @segment_node_num.setter
    def segment_node_num(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "segment_node_num", value)


if not MYPY:
    class DbInstancePlanPlanConfigScaleOutArgsDict(TypedDict):
        execute_time: NotRequired[pulumi.Input[str]]
        """
        The executed time of the Plan.
        """
        plan_cron_time: NotRequired[pulumi.Input[str]]
        """
        The Cron Time of the plan.
        """
        plan_task_status: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) The status of the plan task.
        """
        segment_node_num: NotRequired[pulumi.Input[str]]
        """
        The segment Node Num of the Plan.
        """
elif False:
    DbInstancePlanPlanConfigScaleOutArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DbInstancePlanPlanConfigScaleOutArgs:
    def __init__(__self__, *,
                 execute_time: Optional[pulumi.Input[str]] = None,
                 plan_cron_time: Optional[pulumi.Input[str]] = None,
                 plan_task_status: Optional[pulumi.Input[str]] = None,
                 segment_node_num: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] execute_time: The executed time of the Plan.
        :param pulumi.Input[str] plan_cron_time: The Cron Time of the plan.
        :param pulumi.Input[str] plan_task_status: (Available since v1.231.0) The status of the plan task.
        :param pulumi.Input[str] segment_node_num: The segment Node Num of the Plan.
        """
        if execute_time is not None:
            pulumi.set(__self__, "execute_time", execute_time)
        if plan_cron_time is not None:
            pulumi.set(__self__, "plan_cron_time", plan_cron_time)
        if plan_task_status is not None:
            pulumi.set(__self__, "plan_task_status", plan_task_status)
        if segment_node_num is not None:
            pulumi.set(__self__, "segment_node_num", segment_node_num)

    @property
    @pulumi.getter(name="executeTime")
    def execute_time(self) -> Optional[pulumi.Input[str]]:
        """
        The executed time of the Plan.
        """
        return pulumi.get(self, "execute_time")

    @execute_time.setter
    def execute_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "execute_time", value)

    @property
    @pulumi.getter(name="planCronTime")
    def plan_cron_time(self) -> Optional[pulumi.Input[str]]:
        """
        The Cron Time of the plan.
        """
        return pulumi.get(self, "plan_cron_time")

    @plan_cron_time.setter
    def plan_cron_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_cron_time", value)

    @property
    @pulumi.getter(name="planTaskStatus")
    def plan_task_status(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) The status of the plan task.
        """
        return pulumi.get(self, "plan_task_status")

    @plan_task_status.setter
    def plan_task_status(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_task_status", value)

    @property
    @pulumi.getter(name="segmentNodeNum")
    def segment_node_num(self) -> Optional[pulumi.Input[str]]:
        """
        The segment Node Num of the Plan.
        """
        return pulumi.get(self, "segment_node_num")

    @segment_node_num.setter
    def segment_node_num(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "segment_node_num", value)


if not MYPY:
    class DbInstancePlanPlanConfigScaleUpArgsDict(TypedDict):
        execute_time: NotRequired[pulumi.Input[str]]
        """
        The executed time of the Plan.
        """
        instance_spec: NotRequired[pulumi.Input[str]]
        """
        The specification of segment nodes of the Plan.
        """
        plan_cron_time: NotRequired[pulumi.Input[str]]
        """
        The Cron Time of the plan.
        """
        plan_task_status: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) The status of the plan task.
        """
elif False:
    DbInstancePlanPlanConfigScaleUpArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DbInstancePlanPlanConfigScaleUpArgs:
    def __init__(__self__, *,
                 execute_time: Optional[pulumi.Input[str]] = None,
                 instance_spec: Optional[pulumi.Input[str]] = None,
                 plan_cron_time: Optional[pulumi.Input[str]] = None,
                 plan_task_status: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] execute_time: The executed time of the Plan.
        :param pulumi.Input[str] instance_spec: The specification of segment nodes of the Plan.
        :param pulumi.Input[str] plan_cron_time: The Cron Time of the plan.
        :param pulumi.Input[str] plan_task_status: (Available since v1.231.0) The status of the plan task.
        """
        if execute_time is not None:
            pulumi.set(__self__, "execute_time", execute_time)
        if instance_spec is not None:
            pulumi.set(__self__, "instance_spec", instance_spec)
        if plan_cron_time is not None:
            pulumi.set(__self__, "plan_cron_time", plan_cron_time)
        if plan_task_status is not None:
            pulumi.set(__self__, "plan_task_status", plan_task_status)

    @property
    @pulumi.getter(name="executeTime")
    def execute_time(self) -> Optional[pulumi.Input[str]]:
        """
        The executed time of the Plan.
        """
        return pulumi.get(self, "execute_time")

    @execute_time.setter
    def execute_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "execute_time", value)

    @property
    @pulumi.getter(name="instanceSpec")
    def instance_spec(self) -> Optional[pulumi.Input[str]]:
        """
        The specification of segment nodes of the Plan.
        """
        return pulumi.get(self, "instance_spec")

    @instance_spec.setter
    def instance_spec(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "instance_spec", value)

    @property
    @pulumi.getter(name="planCronTime")
    def plan_cron_time(self) -> Optional[pulumi.Input[str]]:
        """
        The Cron Time of the plan.
        """
        return pulumi.get(self, "plan_cron_time")

    @plan_cron_time.setter
    def plan_cron_time(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_cron_time", value)

    @property
    @pulumi.getter(name="planTaskStatus")
    def plan_task_status(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) The status of the plan task.
        """
        return pulumi.get(self, "plan_task_status")

    @plan_task_status.setter
    def plan_task_status(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "plan_task_status", value)


if not MYPY:
    class InstanceIpWhitelistArgsDict(TypedDict):
        ip_group_attribute: NotRequired[pulumi.Input[str]]
        """
        The value of this parameter is empty by default. The attribute of the whitelist group. 
        If the value contains `hidden`, this white list item will not output.
        """
        ip_group_name: NotRequired[pulumi.Input[str]]
        """
        IP whitelist group name.
        """
        security_ip_list: NotRequired[pulumi.Input[str]]
        """
        List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]). System default to `["127.0.0.1"]`.
        """
elif False:
    InstanceIpWhitelistArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceIpWhitelistArgs:
    def __init__(__self__, *,
                 ip_group_attribute: Optional[pulumi.Input[str]] = None,
                 ip_group_name: Optional[pulumi.Input[str]] = None,
                 security_ip_list: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] ip_group_attribute: The value of this parameter is empty by default. The attribute of the whitelist group. 
               If the value contains `hidden`, this white list item will not output.
        :param pulumi.Input[str] ip_group_name: IP whitelist group name.
        :param pulumi.Input[str] security_ip_list: List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]). System default to `["127.0.0.1"]`.
        """
        if ip_group_attribute is not None:
            pulumi.set(__self__, "ip_group_attribute", ip_group_attribute)
        if ip_group_name is not None:
            pulumi.set(__self__, "ip_group_name", ip_group_name)
        if security_ip_list is not None:
            pulumi.set(__self__, "security_ip_list", security_ip_list)

    @property
    @pulumi.getter(name="ipGroupAttribute")
    def ip_group_attribute(self) -> Optional[pulumi.Input[str]]:
        """
        The value of this parameter is empty by default. The attribute of the whitelist group. 
        If the value contains `hidden`, this white list item will not output.
        """
        return pulumi.get(self, "ip_group_attribute")

    @ip_group_attribute.setter
    def ip_group_attribute(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "ip_group_attribute", value)

    @property
    @pulumi.getter(name="ipGroupName")
    def ip_group_name(self) -> Optional[pulumi.Input[str]]:
        """
        IP whitelist group name.
        """
        return pulumi.get(self, "ip_group_name")

    @ip_group_name.setter
    def ip_group_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "ip_group_name", value)

    @property
    @pulumi.getter(name="securityIpList")
    def security_ip_list(self) -> Optional[pulumi.Input[str]]:
        """
        List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]). System default to `["127.0.0.1"]`.
        """
        return pulumi.get(self, "security_ip_list")

    @security_ip_list.setter
    def security_ip_list(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "security_ip_list", value)


if not MYPY:
    class InstanceParameterArgsDict(TypedDict):
        name: pulumi.Input[str]
        """
        The name of the parameter.
        """
        value: pulumi.Input[str]
        """
        The value of the parameter.
        """
        default_value: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) The default value of the parameter.
        """
        force_restart_instance: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) Whether to force restart the instance to config the parameter.
        """
        is_changeable_config: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) Whether the parameter is changeable.
        """
        optional_range: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) The optional range of the parameter.
        """
        parameter_description: NotRequired[pulumi.Input[str]]
        """
        (Available since v1.231.0) The description of the parameter.
        """
elif False:
    InstanceParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceParameterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 value: pulumi.Input[str],
                 default_value: Optional[pulumi.Input[str]] = None,
                 force_restart_instance: Optional[pulumi.Input[str]] = None,
                 is_changeable_config: Optional[pulumi.Input[str]] = None,
                 optional_range: Optional[pulumi.Input[str]] = None,
                 parameter_description: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] name: The name of the parameter.
        :param pulumi.Input[str] value: The value of the parameter.
        :param pulumi.Input[str] default_value: (Available since v1.231.0) The default value of the parameter.
        :param pulumi.Input[str] force_restart_instance: (Available since v1.231.0) Whether to force restart the instance to config the parameter.
        :param pulumi.Input[str] is_changeable_config: (Available since v1.231.0) Whether the parameter is changeable.
        :param pulumi.Input[str] optional_range: (Available since v1.231.0) The optional range of the parameter.
        :param pulumi.Input[str] parameter_description: (Available since v1.231.0) The description of the parameter.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)
        if default_value is not None:
            pulumi.set(__self__, "default_value", default_value)
        if force_restart_instance is not None:
            pulumi.set(__self__, "force_restart_instance", force_restart_instance)
        if is_changeable_config is not None:
            pulumi.set(__self__, "is_changeable_config", is_changeable_config)
        if optional_range is not None:
            pulumi.set(__self__, "optional_range", optional_range)
        if parameter_description is not None:
            pulumi.set(__self__, "parameter_description", parameter_description)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        The name of the parameter.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def value(self) -> pulumi.Input[str]:
        """
        The value of the parameter.
        """
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: pulumi.Input[str]):
        pulumi.set(self, "value", value)

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) The default value of the parameter.
        """
        return pulumi.get(self, "default_value")

    @default_value.setter
    def default_value(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "default_value", value)

    @property
    @pulumi.getter(name="forceRestartInstance")
    def force_restart_instance(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) Whether to force restart the instance to config the parameter.
        """
        return pulumi.get(self, "force_restart_instance")

    @force_restart_instance.setter
    def force_restart_instance(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "force_restart_instance", value)

    @property
    @pulumi.getter(name="isChangeableConfig")
    def is_changeable_config(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) Whether the parameter is changeable.
        """
        return pulumi.get(self, "is_changeable_config")

    @is_changeable_config.setter
    def is_changeable_config(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "is_changeable_config", value)

    @property
    @pulumi.getter(name="optionalRange")
    def optional_range(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) The optional range of the parameter.
        """
        return pulumi.get(self, "optional_range")

    @optional_range.setter
    def optional_range(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "optional_range", value)

    @property
    @pulumi.getter(name="parameterDescription")
    def parameter_description(self) -> Optional[pulumi.Input[str]]:
        """
        (Available since v1.231.0) The description of the parameter.
        """
        return pulumi.get(self, "parameter_description")

    @parameter_description.setter
    def parameter_description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "parameter_description", value)


