def __init__(__self__, *, cool_down_period_sec: Optional[pulumi.Input[int]]=None, cpu_utilization: Optional[pulumi.Input['AutoscalingPolicyCpuUtilizationArgs']]=None, custom_metric_utilizations: Optional[pulumi.Input[Sequence[pulumi.Input['AutoscalingPolicyCustomMetricUtilizationArgs']]]]=None, load_balancing_utilization: Optional[pulumi.Input['AutoscalingPolicyLoadBalancingUtilizationArgs']]=None, max_num_replicas: Optional[pulumi.Input[int]]=None, min_num_replicas: Optional[pulumi.Input[int]]=None, mode: Optional[pulumi.Input['AutoscalingPolicyMode']]=None, scale_down_control: Optional[pulumi.Input['AutoscalingPolicyScaleDownControlArgs']]=None, scale_in_control: Optional[pulumi.Input['AutoscalingPolicyScaleInControlArgs']]=None, scaling_schedules: Optional[pulumi.Input[Mapping[(str, pulumi.Input[str])]]]=None):
    "\n        Cloud Autoscaler policy.\n        :param pulumi.Input[int] cool_down_period_sec: The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.\n        :param pulumi.Input['AutoscalingPolicyCpuUtilizationArgs'] cpu_utilization: Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.\n        :param pulumi.Input[Sequence[pulumi.Input['AutoscalingPolicyCustomMetricUtilizationArgs']]] custom_metric_utilizations: Configuration parameters of autoscaling based on a custom metric.\n        :param pulumi.Input['AutoscalingPolicyLoadBalancingUtilizationArgs'] load_balancing_utilization: Configuration parameters of autoscaling based on load balancer.\n        :param pulumi.Input[int] max_num_replicas: The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas.\n        :param pulumi.Input[int] min_num_replicas: The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed.\n        :param pulumi.Input['AutoscalingPolicyMode'] mode: Defines operating mode for this policy.\n        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] scaling_schedules: Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed.\n        "
    if (cool_down_period_sec is not None):
        pulumi.set(__self__, 'cool_down_period_sec', cool_down_period_sec)
    if (cpu_utilization is not None):
        pulumi.set(__self__, 'cpu_utilization', cpu_utilization)
    if (custom_metric_utilizations is not None):
        pulumi.set(__self__, 'custom_metric_utilizations', custom_metric_utilizations)
    if (load_balancing_utilization is not None):
        pulumi.set(__self__, 'load_balancing_utilization', load_balancing_utilization)
    if (max_num_replicas is not None):
        pulumi.set(__self__, 'max_num_replicas', max_num_replicas)
    if (min_num_replicas is not None):
        pulumi.set(__self__, 'min_num_replicas', min_num_replicas)
    if (mode is not None):
        pulumi.set(__self__, 'mode', mode)
    if (scale_down_control is not None):
        pulumi.set(__self__, 'scale_down_control', scale_down_control)
    if (scale_in_control is not None):
        pulumi.set(__self__, 'scale_in_control', scale_in_control)
    if (scaling_schedules is not None):
        pulumi.set(__self__, 'scaling_schedules', scaling_schedules)
Cloud Autoscaler policy.
:param pulumi.Input[int] cool_down_period_sec: The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
:param pulumi.Input['AutoscalingPolicyCpuUtilizationArgs'] cpu_utilization: Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
:param pulumi.Input[Sequence[pulumi.Input['AutoscalingPolicyCustomMetricUtilizationArgs']]] custom_metric_utilizations: Configuration parameters of autoscaling based on a custom metric.
:param pulumi.Input['AutoscalingPolicyLoadBalancingUtilizationArgs'] load_balancing_utilization: Configuration parameters of autoscaling based on load balancer.
:param pulumi.Input[int] max_num_replicas: The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas.
:param pulumi.Input[int] min_num_replicas: The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed.
:param pulumi.Input['AutoscalingPolicyMode'] mode: Defines operating mode for this policy.
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] scaling_schedules: Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed.
def __init__(__self__, *, cool_down_period_sec: Optional[pulumi.Input[int]]=None, cpu_utilization: Optional[pulumi.Input['AutoscalingPolicyCpuUtilizationArgs']]=None, custom_metric_utilizations: Optional[pulumi.Input[Sequence[pulumi.Input['AutoscalingPolicyCustomMetricUtilizationArgs']]]]=None, load_balancing_utilization: Optional[pulumi.Input['AutoscalingPolicyLoadBalancingUtilizationArgs']]=None, max_num_replicas: Optional[pulumi.Input[int]]=None, min_num_replicas: Optional[pulumi.Input[int]]=None, mode: Optional[pulumi.Input['AutoscalingPolicyMode']]=None, scale_down_control: Optional[pulumi.Input['AutoscalingPolicyScaleDownControlArgs']]=None, scale_in_control: Optional[pulumi.Input['AutoscalingPolicyScaleInControlArgs']]=None, scaling_schedules: Optional[pulumi.Input[Mapping[(str, pulumi.Input[str])]]]=None):
    "\n        Cloud Autoscaler policy.\n        :param pulumi.Input[int] cool_down_period_sec: The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.\n        :param pulumi.Input['AutoscalingPolicyCpuUtilizationArgs'] cpu_utilization: Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.\n        :param pulumi.Input[Sequence[pulumi.Input['AutoscalingPolicyCustomMetricUtilizationArgs']]] custom_metric_utilizations: Configuration parameters of autoscaling based on a custom metric.\n        :param pulumi.Input['AutoscalingPolicyLoadBalancingUtilizationArgs'] load_balancing_utilization: Configuration parameters of autoscaling based on load balancer.\n        :param pulumi.Input[int] max_num_replicas: The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas.\n        :param pulumi.Input[int] min_num_replicas: The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed.\n        :param pulumi.Input['AutoscalingPolicyMode'] mode: Defines operating mode for this policy.\n        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] scaling_schedules: Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed.\n        "
    if (cool_down_period_sec is not None):
        pulumi.set(__self__, 'cool_down_period_sec', cool_down_period_sec)
    if (cpu_utilization is not None):
        pulumi.set(__self__, 'cpu_utilization', cpu_utilization)
    if (custom_metric_utilizations is not None):
        pulumi.set(__self__, 'custom_metric_utilizations', custom_metric_utilizations)
    if (load_balancing_utilization is not None):
        pulumi.set(__self__, 'load_balancing_utilization', load_balancing_utilization)
    if (max_num_replicas is not None):
        pulumi.set(__self__, 'max_num_replicas', max_num_replicas)
    if (min_num_replicas is not None):
        pulumi.set(__self__, 'min_num_replicas', min_num_replicas)
    if (mode is not None):
        pulumi.set(__self__, 'mode', mode)
    if (scale_down_control is not None):
        pulumi.set(__self__, 'scale_down_control', scale_down_control)
    if (scale_in_control is not None):
        pulumi.set(__self__, 'scale_in_control', scale_in_control)
    if (scaling_schedules is not None):
        pulumi.set(__self__, 'scaling_schedules', scaling_schedules)