Class: Google::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptions

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ SecurityPolicyRuleRateLimitOptions

Returns a new instance of SecurityPolicyRuleRateLimitOptions.



34926
34927
34928
# File 'lib/google/apis/compute_alpha/classes.rb', line 34926

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

Instance Attribute Details

#ban_duration_secFixnum

Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration' when the number of requests that exceed the 'rate_limit_threshold' also exceed this ' ban_threshold'. Corresponds to the JSON property banDurationSec

Returns:

  • (Fixnum)


34877
34878
34879
# File 'lib/google/apis/compute_alpha/classes.rb', line 34877

def ban_duration_sec
  @ban_duration_sec
end

#ban_thresholdGoogle::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptionsThreshold

Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration' when the number of requests that exceed the 'rate_limit_threshold' also exceed this ' ban_threshold'. Corresponds to the JSON property banThreshold



34885
34886
34887
# File 'lib/google/apis/compute_alpha/classes.rb', line 34885

def ban_threshold
  @ban_threshold
end

#block_durationFixnum

Can only be specified if the action for the rule is "rate_based_ban" If specified, determines the time (in seconds) the traffic will continue to be blocked by the rate limit after the rate falls below the threshold. The default value is 0 seconds. [Deprecated] This field is deprecated. Corresponds to the JSON property blockDuration

Returns:

  • (Fixnum)


34893
34894
34895
# File 'lib/google/apis/compute_alpha/classes.rb', line 34893

def block_duration
  @block_duration
end

#conform_actionString

Action to take when requests are under the given threshold. When requests are throttled, this is also the action for all requests which are not dropped. Valid options are "allow", "fairshare", and "drop_overload". Corresponds to the JSON property conformAction

Returns:

  • (String)


34900
34901
34902
# File 'lib/google/apis/compute_alpha/classes.rb', line 34900

def conform_action
  @conform_action
end

#enforce_on_keyString

Determines the key to enforce the threshold_rps limit on. If key is "IP", each IP has this limit enforced separately, whereas "ALL_IPs" means a single limit is applied to all requests matching this rule. Corresponds to the JSON property enforceOnKey

Returns:

  • (String)


34907
34908
34909
# File 'lib/google/apis/compute_alpha/classes.rb', line 34907

def enforce_on_key
  @enforce_on_key
end

#exceed_actionString

When a request is denied, returns the HTTP response code specified. Valid options are "deny()" where valid values for status are 403, 404, 429, and 502. Corresponds to the JSON property exceedAction

Returns:

  • (String)


34913
34914
34915
# File 'lib/google/apis/compute_alpha/classes.rb', line 34913

def exceed_action
  @exceed_action
end

#rate_limit_thresholdGoogle::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptionsThreshold

Threshold at which to begin ratelimiting. Corresponds to the JSON property rateLimitThreshold



34918
34919
34920
# File 'lib/google/apis/compute_alpha/classes.rb', line 34918

def rate_limit_threshold
  @rate_limit_threshold
end

#threshold_rpsFixnum

Rate in requests per second at which to begin ratelimiting. [Deprecated] This field is deprecated. Corresponds to the JSON property thresholdRps

Returns:

  • (Fixnum)


34924
34925
34926
# File 'lib/google/apis/compute_alpha/classes.rb', line 34924

def threshold_rps
  @threshold_rps
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



34931
34932
34933
34934
34935
34936
34937
34938
34939
34940
# File 'lib/google/apis/compute_alpha/classes.rb', line 34931

def update!(**args)
  @ban_duration_sec = args[:ban_duration_sec] if args.key?(:ban_duration_sec)
  @ban_threshold = args[:ban_threshold] if args.key?(:ban_threshold)
  @block_duration = args[:block_duration] if args.key?(:block_duration)
  @conform_action = args[:conform_action] if args.key?(:conform_action)
  @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
  @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
  @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold)
  @threshold_rps = args[:threshold_rps] if args.key?(:threshold_rps)
end