Class: Google::Apis::ComputeAlpha::AutoscalingPolicyScaleDownControl

Inherits:
Object
  • Object
show all
Includes:
Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
Defined in:
generated/google/apis/compute_alpha/classes.rb,
generated/google/apis/compute_alpha/representations.rb,
generated/google/apis/compute_alpha/representations.rb

Overview

Configuration that allows for slower scale down so that even if Autoscaler recommends an abrupt scale down of a MIG, it will be throttled as specified by the parameters below.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Google::Apis::Core::JsonObjectSupport

#to_json

Methods included from Google::Apis::Core::Hashable

process_value, #to_h

Constructor Details

#initialize(**args) ⇒ AutoscalingPolicyScaleDownControl

Returns a new instance of AutoscalingPolicyScaleDownControl.



2507
2508
2509
# File 'generated/google/apis/compute_alpha/classes.rb', line 2507

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#max_scaled_down_replicasGoogle::Apis::ComputeAlpha::FixedOrPercent

Encapsulates numeric value that can be either absolute or relative. Corresponds to the JSON property maxScaledDownReplicas



2465
2466
2467
# File 'generated/google/apis/compute_alpha/classes.rb', line 2465

def max_scaled_down_replicas
  @max_scaled_down_replicas
end

#time_windowGoogle::Apis::ComputeAlpha::GoogleDuration

A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +- 10,000 years.

Examples

Example 1: Compute Duration from two Timestamps in pseudo code. Timestamp start = ...; Timestamp end = ...; Duration duration = ...; duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos; if (duration.seconds 0) duration.seconds += 1; duration.nanos -= 1000000000; else if (duration.seconds > 0 && duration.nanos < 0) duration.seconds -= 1; duration.nanos += 1000000000; Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. Timestamp start = ...; Duration duration = ...; Timestamp end = ...; end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos; if (end.nanos = 1000000000) end.seconds += 1; end.nanos -= 1000000000; Example 3: Compute Duration from datetime.timedelta in Python. td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration. FromTimedelta(td)

JSON Mapping

In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as " 3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3. 000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s". Corresponds to the JSON property timeWindow



2499
2500
2501
# File 'generated/google/apis/compute_alpha/classes.rb', line 2499

def time_window
  @time_window
end

#time_window_secFixnum

How long back autoscaling should look when computing recommendations to include directives regarding slower scale down, as described above. Corresponds to the JSON property timeWindowSec

Returns:

  • (Fixnum)


2505
2506
2507
# File 'generated/google/apis/compute_alpha/classes.rb', line 2505

def time_window_sec
  @time_window_sec
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



2512
2513
2514
2515
2516
# File 'generated/google/apis/compute_alpha/classes.rb', line 2512

def update!(**args)
  @max_scaled_down_replicas = args[:max_scaled_down_replicas] if args.key?(:max_scaled_down_replicas)
  @time_window = args[:time_window] if args.key?(:time_window)
  @time_window_sec = args[:time_window_sec] if args.key?(:time_window_sec)
end