Class: Google::Apis::ServicemanagementV1::Quota
- Inherits:
 - 
      Object
      
        
- Object
 - Google::Apis::ServicemanagementV1::Quota
 
 
- Includes:
 - Core::Hashable, Core::JsonObjectSupport
 
- Defined in:
 - lib/google/apis/servicemanagement_v1/classes.rb,
lib/google/apis/servicemanagement_v1/representations.rb,
lib/google/apis/servicemanagement_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
- 
  
    
      #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.
 
Constructor Details
#initialize(**args) ⇒ Quota
Returns a new instance of Quota.
      3583 3584 3585  | 
    
      # File 'lib/google/apis/servicemanagement_v1/classes.rb', line 3583 def initialize(**args) update!(**args) end  | 
  
Instance Attribute Details
#limits ⇒ Array<Google::Apis::ServicemanagementV1::QuotaLimit>
List of QuotaLimit definitions for the service.
Corresponds to the JSON property limits
      3575 3576 3577  | 
    
      # File 'lib/google/apis/servicemanagement_v1/classes.rb', line 3575 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.
Corresponds to the JSON property metricRules
      3581 3582 3583  | 
    
      # File 'lib/google/apis/servicemanagement_v1/classes.rb', line 3581 def metric_rules @metric_rules end  | 
  
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
      3588 3589 3590 3591  | 
    
      # File 'lib/google/apis/servicemanagement_v1/classes.rb', line 3588 def update!(**args) @limits = args[:limits] if args.key?(:limits) @metric_rules = args[:metric_rules] if args.key?(:metric_rules) end  |