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.



2519
2520
2521
# File 'generated/google/apis/compute_alpha/classes.rb', line 2519

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



2477
2478
2479
# File 'generated/google/apis/compute_alpha/classes.rb', line 2477

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



2511
2512
2513
# File 'generated/google/apis/compute_alpha/classes.rb', line 2511

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)


2517
2518
2519
# File 'generated/google/apis/compute_alpha/classes.rb', line 2517

def time_window_sec
  @time_window_sec
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



2524
2525
2526
2527
2528
# File 'generated/google/apis/compute_alpha/classes.rb', line 2524

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