Class: Google::Apis::ServiceusageV1::Quota

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

Overview

Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way:

  • The service configuration defines a set of metrics.
  • For API calls, the quota.metric_rules maps methods to metrics with corresponding costs.
  • The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits:
  • name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: "1/min/project" # rate limit for consumer projects values: STANDARD: 10000 # The metric rules bind all methods to the read_calls metric, # except for the UpdateBook and DeleteBook methods. These two methods # are mapped to the write_calls metric, with the UpdateBook method # consuming at twice rate as the DeleteBook method. metric_rules:
  • selector: "*" metric_costs: library.googleapis.com/read_calls: 1
  • selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2
  • selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics:
  • name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64
  • name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Core::JsonObjectSupport

#to_json

Methods included from Core::Hashable

process_value, #to_h

Constructor Details

#initialize(**args) ⇒ Quota

Returns a new instance of Quota.



3655
3656
3657
# File 'generated/google/apis/serviceusage_v1/classes.rb', line 3655

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

Instance Attribute Details

#limitsArray<Google::Apis::ServiceusageV1::QuotaLimit>

List of QuotaLimit definitions for the service. Corresponds to the JSON property limits



3647
3648
3649
# File 'generated/google/apis/serviceusage_v1/classes.rb', line 3647

def limits
  @limits
end

#metric_rulesArray<Google::Apis::ServiceusageV1::MetricRule>

List of MetricRule definitions, each one mapping a selected method to one or more metrics. Corresponds to the JSON property metricRules



3653
3654
3655
# File 'generated/google/apis/serviceusage_v1/classes.rb', line 3653

def metric_rules
  @metric_rules
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



3660
3661
3662
3663
# File 'generated/google/apis/serviceusage_v1/classes.rb', line 3660

def update!(**args)
  @limits = args[:limits] if args.key?(:limits)
  @metric_rules = args[:metric_rules] if args.key?(:metric_rules)
end