googleapis-common-protos-types 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/lib/google/api/annotations_pb.rb +60 -2
  4. data/lib/google/api/auth_pb.rb +264 -34
  5. data/lib/google/api/backend_pb.rb +212 -23
  6. data/lib/google/api/billing_pb.rb +104 -8
  7. data/lib/google/api/client_pb.rb +422 -86
  8. data/lib/google/api/config_change_pb.rb +111 -17
  9. data/lib/google/api/consumer_pb.rb +109 -16
  10. data/lib/google/api/context_pb.rb +117 -11
  11. data/lib/google/api/control_pb.rb +71 -4
  12. data/lib/google/api/distribution_pb.rb +242 -39
  13. data/lib/google/api/documentation_pb.rb +195 -19
  14. data/lib/google/api/endpoint_pb.rb +100 -7
  15. data/lib/google/api/error_reason_pb.rb +597 -33
  16. data/lib/google/api/field_behavior_pb.rb +117 -11
  17. data/lib/google/api/http_pb.rb +406 -23
  18. data/lib/google/api/httpbody_pb.rb +109 -6
  19. data/lib/google/api/label_pb.rb +75 -11
  20. data/lib/google/api/launch_stage_pb.rb +99 -11
  21. data/lib/google/api/log_pb.rb +82 -7
  22. data/lib/google/api/logging_pb.rb +108 -9
  23. data/lib/google/api/metric_pb.rb +297 -38
  24. data/lib/google/api/monitored_resource_pb.rb +159 -17
  25. data/lib/google/api/monitoring_pb.rb +134 -9
  26. data/lib/google/api/policy_pb.rb +129 -0
  27. data/lib/google/api/quota_pb.rb +211 -21
  28. data/lib/google/api/resource_pb.rb +265 -23
  29. data/lib/google/api/routing_pb.rb +488 -8
  30. data/lib/google/api/service_pb.rb +239 -29
  31. data/lib/google/api/source_info_pb.rb +59 -4
  32. data/lib/google/api/system_parameter_pb.rb +123 -13
  33. data/lib/google/api/usage_pb.rb +123 -11
  34. data/lib/google/api/visibility_pb.rb +140 -8
  35. data/lib/google/logging/type/http_request_pb.rb +123 -18
  36. data/lib/google/logging/type/log_severity_pb.rb +98 -12
  37. data/lib/google/longrunning/operations_pb.rb +277 -37
  38. data/lib/google/rpc/code_pb.rb +213 -20
  39. data/lib/google/rpc/context/attribute_context_pb.rb +375 -66
  40. data/lib/google/rpc/context/audit_context_pb.rb +77 -8
  41. data/lib/google/rpc/error_details_pb.rb +313 -56
  42. data/lib/google/rpc/http_pb.rb +91 -17
  43. data/lib/google/rpc/status_pb.rb +77 -6
  44. data/lib/google/type/calendar_period_pb.rb +83 -11
  45. data/lib/google/type/color_pb.rb +202 -7
  46. data/lib/google/type/date_pb.rb +79 -6
  47. data/lib/google/type/datetime_pb.rb +132 -18
  48. data/lib/google/type/dayofweek_pb.rb +77 -11
  49. data/lib/google/type/decimal_pb.rb +122 -4
  50. data/lib/google/type/expr_pb.rb +100 -7
  51. data/lib/google/type/fraction_pb.rb +60 -5
  52. data/lib/google/type/interval_pb.rb +74 -5
  53. data/lib/google/type/latlng_pb.rb +64 -5
  54. data/lib/google/type/localized_text_pb.rb +63 -5
  55. data/lib/google/type/money_pb.rb +69 -6
  56. data/lib/google/type/month_pb.rb +92 -16
  57. data/lib/google/type/phone_number_pb.rb +140 -12
  58. data/lib/google/type/postal_address_pb.rb +161 -14
  59. data/lib/google/type/quaternion_pb.rb +121 -7
  60. data/lib/google/type/timeofday_pb.rb +71 -7
  61. data/lib/googleapis/common/protos/types/version.rb +1 -1
  62. metadata +5 -4
@@ -1,19 +1,34 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/api/monitoring.proto
3
4
 
4
5
  require 'google/protobuf'
5
6
 
6
- Google::Protobuf::DescriptorPool.generated_pool.build do
7
- add_file("google/api/monitoring.proto", :syntax => :proto3) do
8
- add_message "google.api.Monitoring" do
9
- repeated :producer_destinations, :message, 1, "google.api.Monitoring.MonitoringDestination"
10
- repeated :consumer_destinations, :message, 2, "google.api.Monitoring.MonitoringDestination"
11
- end
12
- add_message "google.api.Monitoring.MonitoringDestination" do
13
- optional :monitored_resource, :string, 1
14
- repeated :metrics, :string, 2
7
+
8
+ descriptor_data = "\n\x1bgoogle/api/monitoring.proto\x12\ngoogle.api\"\xec\x01\n\nMonitoring\x12K\n\x15producer_destinations\x18\x01 \x03(\x0b\x32,.google.api.Monitoring.MonitoringDestination\x12K\n\x15\x63onsumer_destinations\x18\x02 \x03(\x0b\x32,.google.api.Monitoring.MonitoringDestination\x1a\x44\n\x15MonitoringDestination\x12\x1a\n\x12monitored_resource\x18\x01 \x01(\t\x12\x0f\n\x07metrics\x18\x02 \x03(\tBq\n\x0e\x63om.google.apiB\x0fMonitoringProtoP\x01ZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig\xa2\x02\x04GAPIb\x06proto3"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError => e
15
+ # Compatibility code: will be removed in the next major version.
16
+ require 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = [
23
+ ]
24
+ imports.each do |type_name, expected_filename|
25
+ import_file = pool.lookup(type_name).file_descriptor
26
+ if import_file.name != expected_filename
27
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
15
28
  end
16
29
  end
30
+ warn "Each proto file must use a consistent fully-qualified name."
31
+ warn "This will become an error in the next major version."
17
32
  end
18
33
 
19
34
  module Google
@@ -22,3 +37,113 @@ module Google
22
37
  Monitoring::MonitoringDestination = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.Monitoring.MonitoringDestination").msgclass
23
38
  end
24
39
  end
40
+
41
+ #### Source proto file: google/api/monitoring.proto ####
42
+ #
43
+ # // Copyright 2023 Google LLC
44
+ # //
45
+ # // Licensed under the Apache License, Version 2.0 (the "License");
46
+ # // you may not use this file except in compliance with the License.
47
+ # // You may obtain a copy of the License at
48
+ # //
49
+ # // http://www.apache.org/licenses/LICENSE-2.0
50
+ # //
51
+ # // Unless required by applicable law or agreed to in writing, software
52
+ # // distributed under the License is distributed on an "AS IS" BASIS,
53
+ # // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
54
+ # // See the License for the specific language governing permissions and
55
+ # // limitations under the License.
56
+ #
57
+ # syntax = "proto3";
58
+ #
59
+ # package google.api;
60
+ #
61
+ # option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
62
+ # option java_multiple_files = true;
63
+ # option java_outer_classname = "MonitoringProto";
64
+ # option java_package = "com.google.api";
65
+ # option objc_class_prefix = "GAPI";
66
+ #
67
+ # // Monitoring configuration of the service.
68
+ # //
69
+ # // The example below shows how to configure monitored resources and metrics
70
+ # // for monitoring. In the example, a monitored resource and two metrics are
71
+ # // defined. The `library.googleapis.com/book/returned_count` metric is sent
72
+ # // to both producer and consumer projects, whereas the
73
+ # // `library.googleapis.com/book/num_overdue` metric is only sent to the
74
+ # // consumer project.
75
+ # //
76
+ # // monitored_resources:
77
+ # // - type: library.googleapis.com/Branch
78
+ # // display_name: "Library Branch"
79
+ # // description: "A branch of a library."
80
+ # // launch_stage: GA
81
+ # // labels:
82
+ # // - key: resource_container
83
+ # // description: "The Cloud container (ie. project id) for the Branch."
84
+ # // - key: location
85
+ # // description: "The location of the library branch."
86
+ # // - key: branch_id
87
+ # // description: "The id of the branch."
88
+ # // metrics:
89
+ # // - name: library.googleapis.com/book/returned_count
90
+ # // display_name: "Books Returned"
91
+ # // description: "The count of books that have been returned."
92
+ # // launch_stage: GA
93
+ # // metric_kind: DELTA
94
+ # // value_type: INT64
95
+ # // unit: "1"
96
+ # // labels:
97
+ # // - key: customer_id
98
+ # // description: "The id of the customer."
99
+ # // - name: library.googleapis.com/book/num_overdue
100
+ # // display_name: "Books Overdue"
101
+ # // description: "The current number of overdue books."
102
+ # // launch_stage: GA
103
+ # // metric_kind: GAUGE
104
+ # // value_type: INT64
105
+ # // unit: "1"
106
+ # // labels:
107
+ # // - key: customer_id
108
+ # // description: "The id of the customer."
109
+ # // monitoring:
110
+ # // producer_destinations:
111
+ # // - monitored_resource: library.googleapis.com/Branch
112
+ # // metrics:
113
+ # // - library.googleapis.com/book/returned_count
114
+ # // consumer_destinations:
115
+ # // - monitored_resource: library.googleapis.com/Branch
116
+ # // metrics:
117
+ # // - library.googleapis.com/book/returned_count
118
+ # // - library.googleapis.com/book/num_overdue
119
+ # message Monitoring {
120
+ # // Configuration of a specific monitoring destination (the producer project
121
+ # // or the consumer project).
122
+ # message MonitoringDestination {
123
+ # // The monitored resource type. The type must be defined in
124
+ # // [Service.monitored_resources][google.api.Service.monitored_resources]
125
+ # // section.
126
+ # string monitored_resource = 1;
127
+ #
128
+ # // Types of the metrics to report to this monitoring destination.
129
+ # // Each type must be defined in
130
+ # // [Service.metrics][google.api.Service.metrics] section.
131
+ # repeated string metrics = 2;
132
+ # }
133
+ #
134
+ # // Monitoring configurations for sending metrics to the producer project.
135
+ # // There can be multiple producer destinations. A monitored resource type may
136
+ # // appear in multiple monitoring destinations if different aggregations are
137
+ # // needed for different sets of metrics associated with that monitored
138
+ # // resource type. A monitored resource and metric pair may only be used once
139
+ # // in the Monitoring configuration.
140
+ # repeated MonitoringDestination producer_destinations = 1;
141
+ #
142
+ # // Monitoring configurations for sending metrics to the consumer project.
143
+ # // There can be multiple consumer destinations. A monitored resource type may
144
+ # // appear in multiple monitoring destinations if different aggregations are
145
+ # // needed for different sets of metrics associated with that monitored
146
+ # // resource type. A monitored resource and metric pair may only be used once
147
+ # // in the Monitoring configuration.
148
+ # repeated MonitoringDestination consumer_destinations = 2;
149
+ # }
@@ -0,0 +1,129 @@
1
+ # frozen_string_literal: true
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: google/api/policy.proto
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/protobuf/descriptor_pb'
8
+
9
+
10
+ descriptor_data = "\n\x17google/api/policy.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\"S\n\x0b\x46ieldPolicy\x12\x10\n\x08selector\x18\x01 \x01(\t\x12\x1b\n\x13resource_permission\x18\x02 \x01(\t\x12\x15\n\rresource_type\x18\x03 \x01(\t\"S\n\x0cMethodPolicy\x12\x10\n\x08selector\x18\t \x01(\t\x12\x31\n\x10request_policies\x18\x02 \x03(\x0b\x32\x17.google.api.FieldPolicy:O\n\x0c\x66ield_policy\x12\x1d.google.protobuf.FieldOptions\x18\xe8\xce\xc1K \x01(\x0b\x32\x17.google.api.FieldPolicy:R\n\rmethod_policy\x12\x1e.google.protobuf.MethodOptions\x18\xb5\x97\x99M \x01(\x0b\x32\x18.google.api.MethodPolicyBp\n\x0e\x63om.google.apiB\x0bPolicyProtoP\x01ZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig\xf8\x01\x01\xa2\x02\x04GAPIb\x06proto3"
11
+
12
+ pool = Google::Protobuf::DescriptorPool.generated_pool
13
+
14
+ begin
15
+ pool.add_serialized_file(descriptor_data)
16
+ rescue TypeError => e
17
+ # Compatibility code: will be removed in the next major version.
18
+ require 'google/protobuf/descriptor_pb'
19
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
20
+ parsed.clear_dependency
21
+ serialized = parsed.class.encode(parsed)
22
+ file = pool.add_serialized_file(serialized)
23
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
24
+ imports = [
25
+ ]
26
+ imports.each do |type_name, expected_filename|
27
+ import_file = pool.lookup(type_name).file_descriptor
28
+ if import_file.name != expected_filename
29
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
30
+ end
31
+ end
32
+ warn "Each proto file must use a consistent fully-qualified name."
33
+ warn "This will become an error in the next major version."
34
+ end
35
+
36
+ module Google
37
+ module Api
38
+ FieldPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.FieldPolicy").msgclass
39
+ MethodPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.MethodPolicy").msgclass
40
+ end
41
+ end
42
+
43
+ #### Source proto file: google/api/policy.proto ####
44
+ #
45
+ # // Copyright 2023 Google LLC
46
+ # //
47
+ # // Licensed under the Apache License, Version 2.0 (the "License");
48
+ # // you may not use this file except in compliance with the License.
49
+ # // You may obtain a copy of the License at
50
+ # //
51
+ # // http://www.apache.org/licenses/LICENSE-2.0
52
+ # //
53
+ # // Unless required by applicable law or agreed to in writing, software
54
+ # // distributed under the License is distributed on an "AS IS" BASIS,
55
+ # // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
56
+ # // See the License for the specific language governing permissions and
57
+ # // limitations under the License.
58
+ #
59
+ # syntax = "proto3";
60
+ #
61
+ # package google.api;
62
+ #
63
+ # import "google/protobuf/descriptor.proto";
64
+ #
65
+ # option cc_enable_arenas = true;
66
+ # option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
67
+ # option java_multiple_files = true;
68
+ # option java_outer_classname = "PolicyProto";
69
+ # option java_package = "com.google.api";
70
+ # option objc_class_prefix = "GAPI";
71
+ #
72
+ # // Provides `google.api.field_policy` annotation at proto fields.
73
+ # extend google.protobuf.FieldOptions {
74
+ # // See [FieldPolicy][].
75
+ # FieldPolicy field_policy = 158361448;
76
+ # }
77
+ #
78
+ # // Provides `google.api.method_policy` annotation at proto methods.
79
+ # extend google.protobuf.MethodOptions {
80
+ # // See [MethodPolicy][].
81
+ # MethodPolicy method_policy = 161893301;
82
+ # }
83
+ #
84
+ # // Google API Policy Annotation
85
+ # //
86
+ # // This message defines a simple API policy annotation that can be used to
87
+ # // annotate API request and response message fields with applicable policies.
88
+ # // One field may have multiple applicable policies that must all be satisfied
89
+ # // before a request can be processed. This policy annotation is used to
90
+ # // generate the overall policy that will be used for automatic runtime
91
+ # // policy enforcement and documentation generation.
92
+ # message FieldPolicy {
93
+ # // Selects one or more request or response message fields to apply this
94
+ # // `FieldPolicy`.
95
+ # //
96
+ # // When a `FieldPolicy` is used in proto annotation, the selector must
97
+ # // be left as empty. The service config generator will automatically fill
98
+ # // the correct value.
99
+ # //
100
+ # // When a `FieldPolicy` is used in service config, the selector must be a
101
+ # // comma-separated string with valid request or response field paths,
102
+ # // such as "foo.bar" or "foo.bar,foo.baz".
103
+ # string selector = 1;
104
+ #
105
+ # // Specifies the required permission(s) for the resource referred to by the
106
+ # // field. It requires the field contains a valid resource reference, and
107
+ # // the request must pass the permission checks to proceed. For example,
108
+ # // "resourcemanager.projects.get".
109
+ # string resource_permission = 2;
110
+ #
111
+ # // Specifies the resource type for the resource referred to by the field.
112
+ # string resource_type = 3;
113
+ # }
114
+ #
115
+ # // Defines policies applying to an RPC method.
116
+ # message MethodPolicy {
117
+ # // Selects a method to which these policies should be enforced, for example,
118
+ # // "google.pubsub.v1.Subscriber.CreateSubscription".
119
+ # //
120
+ # // Refer to [selector][google.api.DocumentationRule.selector] for syntax
121
+ # // details.
122
+ # //
123
+ # // NOTE: This field must not be set in the proto annotation. It will be
124
+ # // automatically filled by the service config compiler .
125
+ # string selector = 9;
126
+ #
127
+ # // Policies that are applicable to the request message.
128
+ # repeated FieldPolicy request_policies = 2;
129
+ # }
@@ -1,31 +1,34 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/api/quota.proto
3
4
 
4
5
  require 'google/protobuf'
5
6
 
6
- Google::Protobuf::DescriptorPool.generated_pool.build do
7
- add_file("google/api/quota.proto", :syntax => :proto3) do
8
- add_message "google.api.Quota" do
9
- repeated :limits, :message, 3, "google.api.QuotaLimit"
10
- repeated :metric_rules, :message, 4, "google.api.MetricRule"
11
- end
12
- add_message "google.api.MetricRule" do
13
- optional :selector, :string, 1
14
- map :metric_costs, :string, :int64, 2
15
- end
16
- add_message "google.api.QuotaLimit" do
17
- optional :name, :string, 6
18
- optional :description, :string, 2
19
- optional :default_limit, :int64, 3
20
- optional :max_limit, :int64, 4
21
- optional :free_tier, :int64, 7
22
- optional :duration, :string, 5
23
- optional :metric, :string, 8
24
- optional :unit, :string, 9
25
- map :values, :string, :int64, 10
26
- optional :display_name, :string, 12
7
+
8
+ descriptor_data = "\n\x16google/api/quota.proto\x12\ngoogle.api\"]\n\x05Quota\x12&\n\x06limits\x18\x03 \x03(\x0b\x32\x16.google.api.QuotaLimit\x12,\n\x0cmetric_rules\x18\x04 \x03(\x0b\x32\x16.google.api.MetricRule\"\x91\x01\n\nMetricRule\x12\x10\n\x08selector\x18\x01 \x01(\t\x12=\n\x0cmetric_costs\x18\x02 \x03(\x0b\x32\'.google.api.MetricRule.MetricCostsEntry\x1a\x32\n\x10MetricCostsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\"\x95\x02\n\nQuotaLimit\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x15\n\rdefault_limit\x18\x03 \x01(\x03\x12\x11\n\tmax_limit\x18\x04 \x01(\x03\x12\x11\n\tfree_tier\x18\x07 \x01(\x03\x12\x10\n\x08\x64uration\x18\x05 \x01(\t\x12\x0e\n\x06metric\x18\x08 \x01(\t\x12\x0c\n\x04unit\x18\t \x01(\t\x12\x32\n\x06values\x18\n \x03(\x0b\x32\".google.api.QuotaLimit.ValuesEntry\x12\x14\n\x0c\x64isplay_name\x18\x0c \x01(\t\x1a-\n\x0bValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x42l\n\x0e\x63om.google.apiB\nQuotaProtoP\x01ZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig\xa2\x02\x04GAPIb\x06proto3"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError => e
15
+ # Compatibility code: will be removed in the next major version.
16
+ require 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = [
23
+ ]
24
+ imports.each do |type_name, expected_filename|
25
+ import_file = pool.lookup(type_name).file_descriptor
26
+ if import_file.name != expected_filename
27
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
27
28
  end
28
29
  end
30
+ warn "Each proto file must use a consistent fully-qualified name."
31
+ warn "This will become an error in the next major version."
29
32
  end
30
33
 
31
34
  module Google
@@ -35,3 +38,190 @@ module Google
35
38
  QuotaLimit = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.QuotaLimit").msgclass
36
39
  end
37
40
  end
41
+
42
+ #### Source proto file: google/api/quota.proto ####
43
+ #
44
+ # // Copyright 2023 Google LLC
45
+ # //
46
+ # // Licensed under the Apache License, Version 2.0 (the "License");
47
+ # // you may not use this file except in compliance with the License.
48
+ # // You may obtain a copy of the License at
49
+ # //
50
+ # // http://www.apache.org/licenses/LICENSE-2.0
51
+ # //
52
+ # // Unless required by applicable law or agreed to in writing, software
53
+ # // distributed under the License is distributed on an "AS IS" BASIS,
54
+ # // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
55
+ # // See the License for the specific language governing permissions and
56
+ # // limitations under the License.
57
+ #
58
+ # syntax = "proto3";
59
+ #
60
+ # package google.api;
61
+ #
62
+ # option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
63
+ # option java_multiple_files = true;
64
+ # option java_outer_classname = "QuotaProto";
65
+ # option java_package = "com.google.api";
66
+ # option objc_class_prefix = "GAPI";
67
+ #
68
+ # // Quota configuration helps to achieve fairness and budgeting in service
69
+ # // usage.
70
+ # //
71
+ # // The metric based quota configuration works this way:
72
+ # // - The service configuration defines a set of metrics.
73
+ # // - For API calls, the quota.metric_rules maps methods to metrics with
74
+ # // corresponding costs.
75
+ # // - The quota.limits defines limits on the metrics, which will be used for
76
+ # // quota checks at runtime.
77
+ # //
78
+ # // An example quota configuration in yaml format:
79
+ # //
80
+ # // quota:
81
+ # // limits:
82
+ # //
83
+ # // - name: apiWriteQpsPerProject
84
+ # // metric: library.googleapis.com/write_calls
85
+ # // unit: "1/min/{project}" # rate limit for consumer projects
86
+ # // values:
87
+ # // STANDARD: 10000
88
+ # //
89
+ # //
90
+ # // (The metric rules bind all methods to the read_calls metric,
91
+ # // except for the UpdateBook and DeleteBook methods. These two methods
92
+ # // are mapped to the write_calls metric, with the UpdateBook method
93
+ # // consuming at twice rate as the DeleteBook method.)
94
+ # // metric_rules:
95
+ # // - selector: "*"
96
+ # // metric_costs:
97
+ # // library.googleapis.com/read_calls: 1
98
+ # // - selector: google.example.library.v1.LibraryService.UpdateBook
99
+ # // metric_costs:
100
+ # // library.googleapis.com/write_calls: 2
101
+ # // - selector: google.example.library.v1.LibraryService.DeleteBook
102
+ # // metric_costs:
103
+ # // library.googleapis.com/write_calls: 1
104
+ # //
105
+ # // Corresponding Metric definition:
106
+ # //
107
+ # // metrics:
108
+ # // - name: library.googleapis.com/read_calls
109
+ # // display_name: Read requests
110
+ # // metric_kind: DELTA
111
+ # // value_type: INT64
112
+ # //
113
+ # // - name: library.googleapis.com/write_calls
114
+ # // display_name: Write requests
115
+ # // metric_kind: DELTA
116
+ # // value_type: INT64
117
+ # //
118
+ # //
119
+ # message Quota {
120
+ # // List of QuotaLimit definitions for the service.
121
+ # repeated QuotaLimit limits = 3;
122
+ #
123
+ # // List of MetricRule definitions, each one mapping a selected method to one
124
+ # // or more metrics.
125
+ # repeated MetricRule metric_rules = 4;
126
+ # }
127
+ #
128
+ # // Bind API methods to metrics. Binding a method to a metric causes that
129
+ # // metric's configured quota behaviors to apply to the method call.
130
+ # message MetricRule {
131
+ # // Selects the methods to which this rule applies.
132
+ # //
133
+ # // Refer to [selector][google.api.DocumentationRule.selector] for syntax
134
+ # // details.
135
+ # string selector = 1;
136
+ #
137
+ # // Metrics to update when the selected methods are called, and the associated
138
+ # // cost applied to each metric.
139
+ # //
140
+ # // The key of the map is the metric name, and the values are the amount
141
+ # // increased for the metric against which the quota limits are defined.
142
+ # // The value must not be negative.
143
+ # map<string, int64> metric_costs = 2;
144
+ # }
145
+ #
146
+ # // `QuotaLimit` defines a specific limit that applies over a specified duration
147
+ # // for a limit type. There can be at most one limit for a duration and limit
148
+ # // type combination defined within a `QuotaGroup`.
149
+ # message QuotaLimit {
150
+ # // Name of the quota limit.
151
+ # //
152
+ # // The name must be provided, and it must be unique within the service. The
153
+ # // name can only include alphanumeric characters as well as '-'.
154
+ # //
155
+ # // The maximum length of the limit name is 64 characters.
156
+ # string name = 6;
157
+ #
158
+ # // Optional. User-visible, extended description for this quota limit.
159
+ # // Should be used only when more context is needed to understand this limit
160
+ # // than provided by the limit's display name (see: `display_name`).
161
+ # string description = 2;
162
+ #
163
+ # // Default number of tokens that can be consumed during the specified
164
+ # // duration. This is the number of tokens assigned when a client
165
+ # // application developer activates the service for his/her project.
166
+ # //
167
+ # // Specifying a value of 0 will block all requests. This can be used if you
168
+ # // are provisioning quota to selected consumers and blocking others.
169
+ # // Similarly, a value of -1 will indicate an unlimited quota. No other
170
+ # // negative values are allowed.
171
+ # //
172
+ # // Used by group-based quotas only.
173
+ # int64 default_limit = 3;
174
+ #
175
+ # // Maximum number of tokens that can be consumed during the specified
176
+ # // duration. Client application developers can override the default limit up
177
+ # // to this maximum. If specified, this value cannot be set to a value less
178
+ # // than the default limit. If not specified, it is set to the default limit.
179
+ # //
180
+ # // To allow clients to apply overrides with no upper bound, set this to -1,
181
+ # // indicating unlimited maximum quota.
182
+ # //
183
+ # // Used by group-based quotas only.
184
+ # int64 max_limit = 4;
185
+ #
186
+ # // Free tier value displayed in the Developers Console for this limit.
187
+ # // The free tier is the number of tokens that will be subtracted from the
188
+ # // billed amount when billing is enabled.
189
+ # // This field can only be set on a limit with duration "1d", in a billable
190
+ # // group; it is invalid on any other limit. If this field is not set, it
191
+ # // defaults to 0, indicating that there is no free tier for this service.
192
+ # //
193
+ # // Used by group-based quotas only.
194
+ # int64 free_tier = 7;
195
+ #
196
+ # // Duration of this limit in textual notation. Must be "100s" or "1d".
197
+ # //
198
+ # // Used by group-based quotas only.
199
+ # string duration = 5;
200
+ #
201
+ # // The name of the metric this quota limit applies to. The quota limits with
202
+ # // the same metric will be checked together during runtime. The metric must be
203
+ # // defined within the service config.
204
+ # string metric = 8;
205
+ #
206
+ # // Specify the unit of the quota limit. It uses the same syntax as
207
+ # // [Metric.unit][]. The supported unit kinds are determined by the quota
208
+ # // backend system.
209
+ # //
210
+ # // Here are some examples:
211
+ # // * "1/min/{project}" for quota per minute per project.
212
+ # //
213
+ # // Note: the order of unit components is insignificant.
214
+ # // The "1" at the beginning is required to follow the metric unit syntax.
215
+ # string unit = 9;
216
+ #
217
+ # // Tiered limit values. You must specify this as a key:value pair, with an
218
+ # // integer value that is the maximum number of requests allowed for the
219
+ # // specified unit. Currently only STANDARD is supported.
220
+ # map<string, int64> values = 10;
221
+ #
222
+ # // User-visible display name for this limit.
223
+ # // Optional. If not set, the UI will provide a default display name based on
224
+ # // the quota configuration. This field can be used to override the default
225
+ # // display name generated from the configuration.
226
+ # string display_name = 12;
227
+ # }