Class: Google::Apis::ServicemanagementV1::Quota
- Inherits:
-
Object
- Object
- Google::Apis::ServicemanagementV1::Quota
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- generated/google/apis/servicemanagement_v1/classes.rb,
generated/google/apis/servicemanagement_v1/representations.rb,
generated/google/apis/servicemanagement_v1/representations.rb
Overview
Quota configuration helps to achieve fairness and budgeting in service usage. The 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:
- 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
-
#limits ⇒ Array<Google::Apis::ServicemanagementV1::QuotaLimit>
List of
QuotaLimit
definitions for the service. -
#metric_rules ⇒ Array<Google::Apis::ServicemanagementV1::MetricRule>
List of
MetricRule
definitions, each one mapping a selected method to one or more metrics.
Instance Method Summary collapse
-
#initialize(**args) ⇒ Quota
constructor
A new instance of Quota.
-
#update!(**args) ⇒ Object
Update properties of this object.
Methods included from Core::JsonObjectSupport
Methods included from Core::Hashable
Constructor Details
#initialize(**args) ⇒ Quota
Returns a new instance of Quota
4005 4006 4007 |
# File 'generated/google/apis/servicemanagement_v1/classes.rb', line 4005 def initialize(**args) update!(**args) end |
Instance Attribute Details
#limits ⇒ Array<Google::Apis::ServicemanagementV1::QuotaLimit>
List of QuotaLimit
definitions for the service.
Used by metric-based quotas only.
Corresponds to the JSON property limits
3996 3997 3998 |
# File 'generated/google/apis/servicemanagement_v1/classes.rb', line 3996 def limits @limits end |
#metric_rules ⇒ Array<Google::Apis::ServicemanagementV1::MetricRule>
List of MetricRule
definitions, each one mapping a selected method to one
or more metrics.
Used by metric-based quotas only.
Corresponds to the JSON property metricRules
4003 4004 4005 |
# File 'generated/google/apis/servicemanagement_v1/classes.rb', line 4003 def metric_rules @metric_rules end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
4010 4011 4012 4013 |
# File 'generated/google/apis/servicemanagement_v1/classes.rb', line 4010 def update!(**args) @limits = args[:limits] if args.key?(:limits) @metric_rules = args[:metric_rules] if args.key?(:metric_rules) end |