vagrant-unbundled 2.3.2.0 → 2.3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/Gemfile.lock +12 -12
  4. data/LICENSE +1 -3
  5. data/lib/vagrant/errors.rb +4 -0
  6. data/lib/vagrant/util/install_cli_autocomplete.rb +3 -3
  7. data/lib/vagrant.rb +0 -3
  8. data/pkg/vagrant-unbundled-2.3.2.0.gem +0 -0
  9. data/plugins/commands/serve/command.rb +1 -1
  10. data/plugins/guests/solaris/cap/remove_public_key.rb +2 -2
  11. data/plugins/hosts/gentoo/host.rb +1 -1
  12. data/plugins/hosts/slackware/host.rb +1 -1
  13. data/plugins/providers/virtualbox/action/network.rb +8 -5
  14. data/plugins/providers/virtualbox/driver/base.rb +3 -1
  15. data/plugins/providers/virtualbox/driver/version_5_0.rb +40 -36
  16. data/plugins/providers/virtualbox/driver/version_7_0.rb +223 -5
  17. data/plugins/provisioners/ansible/cap/guest/debian/ansible_install.rb +1 -1
  18. data/plugins/provisioners/ansible/provisioner/host.rb +1 -1
  19. data/plugins/provisioners/chef/config/chef_zero.rb +1 -1
  20. data/plugins/synced_folders/rsync/helper.rb +1 -0
  21. data/templates/locales/en.yml +4 -0
  22. data/thirdparty/proto/api-common-protos/.bazelrc +2 -0
  23. data/thirdparty/proto/api-common-protos/.git +1 -0
  24. data/thirdparty/proto/api-common-protos/.gitignore +11 -0
  25. data/thirdparty/proto/api-common-protos/BUILD.bazel +129 -0
  26. data/thirdparty/proto/api-common-protos/CODE_OF_CONDUCT.md +43 -0
  27. data/thirdparty/proto/api-common-protos/CONTRIBUTING.md +42 -0
  28. data/thirdparty/proto/api-common-protos/Dockerfile +18 -0
  29. data/thirdparty/proto/api-common-protos/LICENSE +201 -0
  30. data/thirdparty/proto/api-common-protos/README.md +113 -0
  31. data/thirdparty/proto/api-common-protos/SECURITY.md +7 -0
  32. data/thirdparty/proto/api-common-protos/WORKSPACE +154 -0
  33. data/thirdparty/proto/api-common-protos/google/api/BUILD.bazel +246 -0
  34. data/thirdparty/proto/api-common-protos/google/api/README.md +46 -0
  35. data/thirdparty/proto/api-common-protos/google/api/annotations.proto +31 -0
  36. data/thirdparty/proto/api-common-protos/google/api/auth.proto +181 -0
  37. data/thirdparty/proto/api-common-protos/google/api/backend.proto +51 -0
  38. data/thirdparty/proto/api-common-protos/google/api/billing.proto +67 -0
  39. data/thirdparty/proto/api-common-protos/google/api/client.proto +99 -0
  40. data/thirdparty/proto/api-common-protos/google/api/config_change.proto +85 -0
  41. data/thirdparty/proto/api-common-protos/google/api/consumer.proto +83 -0
  42. data/thirdparty/proto/api-common-protos/google/api/context.proto +63 -0
  43. data/thirdparty/proto/api-common-protos/google/api/control.proto +33 -0
  44. data/thirdparty/proto/api-common-protos/google/api/distribution.proto +213 -0
  45. data/thirdparty/proto/api-common-protos/google/api/documentation.proto +157 -0
  46. data/thirdparty/proto/api-common-protos/google/api/endpoint.proto +71 -0
  47. data/thirdparty/proto/api-common-protos/google/api/field_behavior.proto +84 -0
  48. data/thirdparty/proto/api-common-protos/google/api/http.proto +318 -0
  49. data/thirdparty/proto/api-common-protos/google/api/httpbody.proto +76 -0
  50. data/thirdparty/proto/api-common-protos/google/api/label.proto +49 -0
  51. data/thirdparty/proto/api-common-protos/google/api/launch_stage.proto +67 -0
  52. data/thirdparty/proto/api-common-protos/google/api/log.proto +55 -0
  53. data/thirdparty/proto/api-common-protos/google/api/logging.proto +83 -0
  54. data/thirdparty/proto/api-common-protos/google/api/metric.proto +192 -0
  55. data/thirdparty/proto/api-common-protos/google/api/monitored_resource.proto +116 -0
  56. data/thirdparty/proto/api-common-protos/google/api/monitoring.proto +89 -0
  57. data/thirdparty/proto/api-common-protos/google/api/quota.proto +259 -0
  58. data/thirdparty/proto/api-common-protos/google/api/resource.proto +299 -0
  59. data/thirdparty/proto/api-common-protos/google/api/routing.proto +461 -0
  60. data/thirdparty/proto/api-common-protos/google/api/service.proto +175 -0
  61. data/thirdparty/proto/api-common-protos/google/api/source_info.proto +32 -0
  62. data/thirdparty/proto/api-common-protos/google/api/system_parameter.proto +96 -0
  63. data/thirdparty/proto/api-common-protos/google/api/usage.proto +92 -0
  64. data/thirdparty/proto/api-common-protos/google/cloud/extended_operations.proto +150 -0
  65. data/thirdparty/proto/api-common-protos/google/iam/README.md +14 -0
  66. data/thirdparty/proto/api-common-protos/google/iam/admin/v1/iam.proto +1087 -0
  67. data/thirdparty/proto/api-common-protos/google/iam/v1/iam_policy.proto +145 -0
  68. data/thirdparty/proto/api-common-protos/google/iam/v1/logging/audit_data.proto +34 -0
  69. data/thirdparty/proto/api-common-protos/google/iam/v1/options.proto +41 -0
  70. data/thirdparty/proto/api-common-protos/google/iam/v1/policy.proto +240 -0
  71. data/thirdparty/proto/api-common-protos/google/logging/type/README.md +12 -0
  72. data/thirdparty/proto/api-common-protos/google/logging/type/http_request.proto +92 -0
  73. data/thirdparty/proto/api-common-protos/google/logging/type/log_severity.proto +72 -0
  74. data/thirdparty/proto/api-common-protos/google/longrunning/README.md +31 -0
  75. data/thirdparty/proto/api-common-protos/google/longrunning/operations.proto +247 -0
  76. data/thirdparty/proto/api-common-protos/google/rpc/README.md +18 -0
  77. data/thirdparty/proto/api-common-protos/google/rpc/code.proto +186 -0
  78. data/thirdparty/proto/api-common-protos/google/rpc/context/attribute_context.proto +287 -0
  79. data/thirdparty/proto/api-common-protos/google/rpc/error_details.proto +246 -0
  80. data/thirdparty/proto/api-common-protos/google/rpc/status.proto +47 -0
  81. data/thirdparty/proto/api-common-protos/google/type/README.md +7 -0
  82. data/thirdparty/proto/api-common-protos/google/type/calendar_period.proto +57 -0
  83. data/thirdparty/proto/api-common-protos/google/type/color.proto +170 -0
  84. data/thirdparty/proto/api-common-protos/google/type/date.proto +50 -0
  85. data/thirdparty/proto/api-common-protos/google/type/datetime.proto +97 -0
  86. data/thirdparty/proto/api-common-protos/google/type/dayofweek.proto +51 -0
  87. data/thirdparty/proto/api-common-protos/google/type/expr.proto +51 -0
  88. data/thirdparty/proto/api-common-protos/google/type/fraction.proto +34 -0
  89. data/thirdparty/proto/api-common-protos/google/type/latlng.proto +37 -0
  90. data/thirdparty/proto/api-common-protos/google/type/money.proto +43 -0
  91. data/thirdparty/proto/api-common-protos/google/type/month.proto +66 -0
  92. data/thirdparty/proto/api-common-protos/google/type/postal_address.proto +135 -0
  93. data/thirdparty/proto/api-common-protos/google/type/quaternion.proto +95 -0
  94. data/thirdparty/proto/api-common-protos/google/type/timeofday.proto +44 -0
  95. data/thirdparty/proto/api-common-protos/renovate.json +5 -0
  96. data/thirdparty/proto/api-common-protos/repository_rules.bzl +222 -0
  97. data/vagrant.gemspec +4 -4
  98. data/version.txt +1 -1
  99. metadata +89 -20
  100. data/lib/vagrant/patches/net-ssh.rb +0 -286
@@ -0,0 +1,192 @@
1
+ // Copyright 2018 Google LLC.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.api;
18
+
19
+ import "google/api/label.proto";
20
+
21
+ option go_package = "google.golang.org/genproto/googleapis/api/metric;metric";
22
+ option java_multiple_files = true;
23
+ option java_outer_classname = "MetricProto";
24
+ option java_package = "com.google.api";
25
+ option objc_class_prefix = "GAPI";
26
+
27
+
28
+ // Defines a metric type and its schema. Once a metric descriptor is created,
29
+ // deleting or altering it stops data collection and makes the metric type's
30
+ // existing data unusable.
31
+ message MetricDescriptor {
32
+ // The kind of measurement. It describes how the data is reported.
33
+ enum MetricKind {
34
+ // Do not use this default value.
35
+ METRIC_KIND_UNSPECIFIED = 0;
36
+
37
+ // An instantaneous measurement of a value.
38
+ GAUGE = 1;
39
+
40
+ // The change in a value during a time interval.
41
+ DELTA = 2;
42
+
43
+ // A value accumulated over a time interval. Cumulative
44
+ // measurements in a time series should have the same start time
45
+ // and increasing end times, until an event resets the cumulative
46
+ // value to zero and sets a new start time for the following
47
+ // points.
48
+ CUMULATIVE = 3;
49
+ }
50
+
51
+ // The value type of a metric.
52
+ enum ValueType {
53
+ // Do not use this default value.
54
+ VALUE_TYPE_UNSPECIFIED = 0;
55
+
56
+ // The value is a boolean.
57
+ // This value type can be used only if the metric kind is `GAUGE`.
58
+ BOOL = 1;
59
+
60
+ // The value is a signed 64-bit integer.
61
+ INT64 = 2;
62
+
63
+ // The value is a double precision floating point number.
64
+ DOUBLE = 3;
65
+
66
+ // The value is a text string.
67
+ // This value type can be used only if the metric kind is `GAUGE`.
68
+ STRING = 4;
69
+
70
+ // The value is a [`Distribution`][google.api.Distribution].
71
+ DISTRIBUTION = 5;
72
+
73
+ // The value is money.
74
+ MONEY = 6;
75
+ }
76
+
77
+ // The resource name of the metric descriptor.
78
+ string name = 1;
79
+
80
+ // The metric type, including its DNS name prefix. The type is not
81
+ // URL-encoded. All user-defined custom metric types have the DNS name
82
+ // `custom.googleapis.com`. Metric types should use a natural hierarchical
83
+ // grouping. For example:
84
+ //
85
+ // "custom.googleapis.com/invoice/paid/amount"
86
+ // "appengine.googleapis.com/http/server/response_latencies"
87
+ string type = 8;
88
+
89
+ // The set of labels that can be used to describe a specific
90
+ // instance of this metric type. For example, the
91
+ // `appengine.googleapis.com/http/server/response_latencies` metric
92
+ // type has a label for the HTTP response code, `response_code`, so
93
+ // you can look at latencies for successful responses or just
94
+ // for responses that failed.
95
+ repeated LabelDescriptor labels = 2;
96
+
97
+ // Whether the metric records instantaneous values, changes to a value, etc.
98
+ // Some combinations of `metric_kind` and `value_type` might not be supported.
99
+ MetricKind metric_kind = 3;
100
+
101
+ // Whether the measurement is an integer, a floating-point number, etc.
102
+ // Some combinations of `metric_kind` and `value_type` might not be supported.
103
+ ValueType value_type = 4;
104
+
105
+ // The unit in which the metric value is reported. It is only applicable
106
+ // if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
107
+ // supported units are a subset of [The Unified Code for Units of
108
+ // Measure](http://unitsofmeasure.org/ucum.html) standard:
109
+ //
110
+ // **Basic units (UNIT)**
111
+ //
112
+ // * `bit` bit
113
+ // * `By` byte
114
+ // * `s` second
115
+ // * `min` minute
116
+ // * `h` hour
117
+ // * `d` day
118
+ //
119
+ // **Prefixes (PREFIX)**
120
+ //
121
+ // * `k` kilo (10**3)
122
+ // * `M` mega (10**6)
123
+ // * `G` giga (10**9)
124
+ // * `T` tera (10**12)
125
+ // * `P` peta (10**15)
126
+ // * `E` exa (10**18)
127
+ // * `Z` zetta (10**21)
128
+ // * `Y` yotta (10**24)
129
+ // * `m` milli (10**-3)
130
+ // * `u` micro (10**-6)
131
+ // * `n` nano (10**-9)
132
+ // * `p` pico (10**-12)
133
+ // * `f` femto (10**-15)
134
+ // * `a` atto (10**-18)
135
+ // * `z` zepto (10**-21)
136
+ // * `y` yocto (10**-24)
137
+ // * `Ki` kibi (2**10)
138
+ // * `Mi` mebi (2**20)
139
+ // * `Gi` gibi (2**30)
140
+ // * `Ti` tebi (2**40)
141
+ //
142
+ // **Grammar**
143
+ //
144
+ // The grammar also includes these connectors:
145
+ //
146
+ // * `/` division (as an infix operator, e.g. `1/s`).
147
+ // * `.` multiplication (as an infix operator, e.g. `GBy.d`)
148
+ //
149
+ // The grammar for a unit is as follows:
150
+ //
151
+ // Expression = Component { "." Component } { "/" Component } ;
152
+ //
153
+ // Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
154
+ // | Annotation
155
+ // | "1"
156
+ // ;
157
+ //
158
+ // Annotation = "{" NAME "}" ;
159
+ //
160
+ // Notes:
161
+ //
162
+ // * `Annotation` is just a comment if it follows a `UNIT` and is
163
+ // equivalent to `1` if it is used alone. For examples,
164
+ // `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
165
+ // * `NAME` is a sequence of non-blank printable ASCII characters not
166
+ // containing '{' or '}'.
167
+ // * `1` represents dimensionless value 1, such as in `1/s`.
168
+ // * `%` represents dimensionless value 1/100, and annotates values giving
169
+ // a percentage.
170
+ string unit = 5;
171
+
172
+ // A detailed description of the metric, which can be used in documentation.
173
+ string description = 6;
174
+
175
+ // A concise name for the metric, which can be displayed in user interfaces.
176
+ // Use sentence case without an ending period, for example "Request count".
177
+ // This field is optional but it is recommended to be set for any metrics
178
+ // associated with user-visible concepts, such as Quota.
179
+ string display_name = 7;
180
+ }
181
+
182
+ // A specific metric, identified by specifying values for all of the
183
+ // labels of a [`MetricDescriptor`][google.api.MetricDescriptor].
184
+ message Metric {
185
+ // An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
186
+ // For example, `custom.googleapis.com/invoice/paid/amount`.
187
+ string type = 3;
188
+
189
+ // The set of label values that uniquely identify this metric. All
190
+ // labels listed in the `MetricDescriptor` must be assigned values.
191
+ map<string, string> labels = 2;
192
+ }
@@ -0,0 +1,116 @@
1
+ // Copyright 2018 Google LLC.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.api;
18
+
19
+ import "google/api/label.proto";
20
+ import "google/protobuf/struct.proto";
21
+
22
+ option cc_enable_arenas = true;
23
+ option go_package = "google.golang.org/genproto/googleapis/api/monitoredres;monitoredres";
24
+ option java_multiple_files = true;
25
+ option java_outer_classname = "MonitoredResourceProto";
26
+ option java_package = "com.google.api";
27
+ option objc_class_prefix = "GAPI";
28
+
29
+
30
+ // An object that describes the schema of a [MonitoredResource][google.api.MonitoredResource] object using a
31
+ // type name and a set of labels. For example, the monitored resource
32
+ // descriptor for Google Compute Engine VM instances has a type of
33
+ // `"gce_instance"` and specifies the use of the labels `"instance_id"` and
34
+ // `"zone"` to identify particular VM instances.
35
+ //
36
+ // Different APIs can support different monitored resource types. APIs generally
37
+ // provide a `list` method that returns the monitored resource descriptors used
38
+ // by the API.
39
+ message MonitoredResourceDescriptor {
40
+ // Optional. The resource name of the monitored resource descriptor:
41
+ // `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
42
+ // {type} is the value of the `type` field in this object and
43
+ // {project_id} is a project ID that provides API-specific context for
44
+ // accessing the type. APIs that do not use project information can use the
45
+ // resource name format `"monitoredResourceDescriptors/{type}"`.
46
+ string name = 5;
47
+
48
+ // Required. The monitored resource type. For example, the type
49
+ // `"cloudsql_database"` represents databases in Google Cloud SQL.
50
+ // The maximum length of this value is 256 characters.
51
+ string type = 1;
52
+
53
+ // Optional. A concise name for the monitored resource type that might be
54
+ // displayed in user interfaces. It should be a Title Cased Noun Phrase,
55
+ // without any article or other determiners. For example,
56
+ // `"Google Cloud SQL Database"`.
57
+ string display_name = 2;
58
+
59
+ // Optional. A detailed description of the monitored resource type that might
60
+ // be used in documentation.
61
+ string description = 3;
62
+
63
+ // Required. A set of labels used to describe instances of this monitored
64
+ // resource type. For example, an individual Google Cloud SQL database is
65
+ // identified by values for the labels `"database_id"` and `"zone"`.
66
+ repeated LabelDescriptor labels = 4;
67
+ }
68
+
69
+ // An object representing a resource that can be used for monitoring, logging,
70
+ // billing, or other purposes. Examples include virtual machine instances,
71
+ // databases, and storage devices such as disks. The `type` field identifies a
72
+ // [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object that describes the resource's
73
+ // schema. Information in the `labels` field identifies the actual resource and
74
+ // its attributes according to the schema. For example, a particular Compute
75
+ // Engine VM instance could be represented by the following object, because the
76
+ // [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for `"gce_instance"` has labels
77
+ // `"instance_id"` and `"zone"`:
78
+ //
79
+ // { "type": "gce_instance",
80
+ // "labels": { "instance_id": "12345678901234",
81
+ // "zone": "us-central1-a" }}
82
+ message MonitoredResource {
83
+ // Required. The monitored resource type. This field must match
84
+ // the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
85
+ // example, the type of a Compute Engine VM instance is `gce_instance`.
86
+ string type = 1;
87
+
88
+ // Required. Values for all of the labels listed in the associated monitored
89
+ // resource descriptor. For example, Compute Engine VM instances use the
90
+ // labels `"project_id"`, `"instance_id"`, and `"zone"`.
91
+ map<string, string> labels = 2;
92
+ }
93
+
94
+ // Auxiliary metadata for a [MonitoredResource][google.api.MonitoredResource] object.
95
+ // [MonitoredResource][google.api.MonitoredResource] objects contain the minimum set of information to
96
+ // uniquely identify a monitored resource instance. There is some other useful
97
+ // auxiliary metadata. Google Stackdriver Monitoring & Logging uses an ingestion
98
+ // pipeline to extract metadata for cloud resources of all types , and stores
99
+ // the metadata in this message.
100
+ message MonitoredResourceMetadata {
101
+ // Output only. Values for predefined system metadata labels.
102
+ // System labels are a kind of metadata extracted by Google Stackdriver.
103
+ // Stackdriver determines what system labels are useful and how to obtain
104
+ // their values. Some examples: "machine_image", "vpc", "subnet_id",
105
+ // "security_group", "name", etc.
106
+ // System label values can be only strings, Boolean values, or a list of
107
+ // strings. For example:
108
+ //
109
+ // { "name": "my-test-instance",
110
+ // "security_group": ["a", "b", "c"],
111
+ // "spot_instance": false }
112
+ google.protobuf.Struct system_labels = 1;
113
+
114
+ // Output only. A map of user-defined metadata labels.
115
+ map<string, string> user_labels = 2;
116
+ }
@@ -0,0 +1,89 @@
1
+ // Copyright 2018 Google LLC.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.api;
18
+
19
+ import "google/api/annotations.proto";
20
+
21
+ option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
22
+ option java_multiple_files = true;
23
+ option java_outer_classname = "MonitoringProto";
24
+ option java_package = "com.google.api";
25
+ option objc_class_prefix = "GAPI";
26
+
27
+
28
+ // Monitoring configuration of the service.
29
+ //
30
+ // The example below shows how to configure monitored resources and metrics
31
+ // for monitoring. In the example, a monitored resource and two metrics are
32
+ // defined. The `library.googleapis.com/book/returned_count` metric is sent
33
+ // to both producer and consumer projects, whereas the
34
+ // `library.googleapis.com/book/overdue_count` metric is only sent to the
35
+ // consumer project.
36
+ //
37
+ // monitored_resources:
38
+ // - type: library.googleapis.com/branch
39
+ // labels:
40
+ // - key: /city
41
+ // description: The city where the library branch is located in.
42
+ // - key: /name
43
+ // description: The name of the branch.
44
+ // metrics:
45
+ // - name: library.googleapis.com/book/returned_count
46
+ // metric_kind: DELTA
47
+ // value_type: INT64
48
+ // labels:
49
+ // - key: /customer_id
50
+ // - name: library.googleapis.com/book/overdue_count
51
+ // metric_kind: GAUGE
52
+ // value_type: INT64
53
+ // labels:
54
+ // - key: /customer_id
55
+ // monitoring:
56
+ // producer_destinations:
57
+ // - monitored_resource: library.googleapis.com/branch
58
+ // metrics:
59
+ // - library.googleapis.com/book/returned_count
60
+ // consumer_destinations:
61
+ // - monitored_resource: library.googleapis.com/branch
62
+ // metrics:
63
+ // - library.googleapis.com/book/returned_count
64
+ // - library.googleapis.com/book/overdue_count
65
+ message Monitoring {
66
+ // Configuration of a specific monitoring destination (the producer project
67
+ // or the consumer project).
68
+ message MonitoringDestination {
69
+ // The monitored resource type. The type must be defined in
70
+ // [Service.monitored_resources][google.api.Service.monitored_resources] section.
71
+ string monitored_resource = 1;
72
+
73
+ // Names of the metrics to report to this monitoring destination.
74
+ // Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
75
+ repeated string metrics = 2;
76
+ }
77
+
78
+ // Monitoring configurations for sending metrics to the producer project.
79
+ // There can be multiple producer destinations, each one must have a
80
+ // different monitored resource type. A metric can be used in at most
81
+ // one producer destination.
82
+ repeated MonitoringDestination producer_destinations = 1;
83
+
84
+ // Monitoring configurations for sending metrics to the consumer project.
85
+ // There can be multiple consumer destinations, each one must have a
86
+ // different monitored resource type. A metric can be used in at most
87
+ // one consumer destination.
88
+ repeated MonitoringDestination consumer_destinations = 2;
89
+ }
@@ -0,0 +1,259 @@
1
+ // Copyright 2017 Google Inc.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.api;
18
+
19
+ import "google/api/annotations.proto";
20
+
21
+ option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
22
+ option java_multiple_files = true;
23
+ option java_outer_classname = "QuotaProto";
24
+ option java_package = "com.google.api";
25
+ option objc_class_prefix = "GAPI";
26
+
27
+
28
+ // Quota configuration helps to achieve fairness and budgeting in service
29
+ // usage.
30
+ //
31
+ // The quota configuration works this way:
32
+ // - The service configuration defines a set of metrics.
33
+ // - For API calls, the quota.metric_rules maps methods to metrics with
34
+ // corresponding costs.
35
+ // - The quota.limits defines limits on the metrics, which will be used for
36
+ // quota checks at runtime.
37
+ //
38
+ // An example quota configuration in yaml format:
39
+ //
40
+ // quota:
41
+ // limits:
42
+ //
43
+ // - name: apiWriteQpsPerProject
44
+ // metric: library.googleapis.com/write_calls
45
+ // unit: "1/min/{project}" # rate limit for consumer projects
46
+ // values:
47
+ // STANDARD: 10000
48
+ //
49
+ // # The metric rules bind all methods to the read_calls metric,
50
+ // # except for the UpdateBook and DeleteBook methods. These two methods
51
+ // # are mapped to the write_calls metric, with the UpdateBook method
52
+ // # consuming at twice rate as the DeleteBook method.
53
+ // metric_rules:
54
+ // - selector: "*"
55
+ // metric_costs:
56
+ // library.googleapis.com/read_calls: 1
57
+ // - selector: google.example.library.v1.LibraryService.UpdateBook
58
+ // metric_costs:
59
+ // library.googleapis.com/write_calls: 2
60
+ // - selector: google.example.library.v1.LibraryService.DeleteBook
61
+ // metric_costs:
62
+ // library.googleapis.com/write_calls: 1
63
+ //
64
+ // Corresponding Metric definition:
65
+ //
66
+ // metrics:
67
+ // - name: library.googleapis.com/read_calls
68
+ // display_name: Read requests
69
+ // metric_kind: DELTA
70
+ // value_type: INT64
71
+ //
72
+ // - name: library.googleapis.com/write_calls
73
+ // display_name: Write requests
74
+ // metric_kind: DELTA
75
+ // value_type: INT64
76
+ //
77
+ message Quota {
78
+ // List of `QuotaLimit` definitions for the service.
79
+ //
80
+ // Used by metric-based quotas only.
81
+ repeated QuotaLimit limits = 3;
82
+
83
+ // List of `MetricRule` definitions, each one mapping a selected method to one
84
+ // or more metrics.
85
+ //
86
+ // Used by metric-based quotas only.
87
+ repeated MetricRule metric_rules = 4;
88
+ }
89
+
90
+ // Bind API methods to metrics. Binding a method to a metric causes that
91
+ // metric's configured quota, billing, and monitoring behaviors to apply to the
92
+ // method call.
93
+ //
94
+ // Used by metric-based quotas only.
95
+ message MetricRule {
96
+ // Selects the methods to which this rule applies.
97
+ //
98
+ // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
99
+ string selector = 1;
100
+
101
+ // Metrics to update when the selected methods are called, and the associated
102
+ // cost applied to each metric.
103
+ //
104
+ // The key of the map is the metric name, and the values are the amount
105
+ // increased for the metric against which the quota limits are defined.
106
+ // The value must not be negative.
107
+ map<string, int64> metric_costs = 2;
108
+ }
109
+
110
+ // `QuotaLimit` defines a specific limit that applies over a specified duration
111
+ // for a limit type. There can be at most one limit for a duration and limit
112
+ // type combination defined within a `QuotaGroup`.
113
+ message QuotaLimit {
114
+ // Name of the quota limit. The name is used to refer to the limit when
115
+ // overriding the default limit on per-consumer basis.
116
+ //
117
+ // For group-based quota limits, the name must be unique within the quota
118
+ // group. If a name is not provided, it will be generated from the limit_by
119
+ // and duration fields.
120
+ //
121
+ // For metric-based quota limits, the name must be provided, and it must be
122
+ // unique within the service. The name can only include alphanumeric
123
+ // characters as well as '-'.
124
+ //
125
+ // The maximum length of the limit name is 64 characters.
126
+ //
127
+ // The name of a limit is used as a unique identifier for this limit.
128
+ // Therefore, once a limit has been put into use, its name should be
129
+ // immutable. You can use the display_name field to provide a user-friendly
130
+ // name for the limit. The display name can be evolved over time without
131
+ // affecting the identity of the limit.
132
+ string name = 6;
133
+
134
+ // Optional. User-visible, extended description for this quota limit.
135
+ // Should be used only when more context is needed to understand this limit
136
+ // than provided by the limit's display name (see: `display_name`).
137
+ string description = 2;
138
+
139
+ // Default number of tokens that can be consumed during the specified
140
+ // duration. This is the number of tokens assigned when a client
141
+ // application developer activates the service for his/her project.
142
+ //
143
+ // Specifying a value of 0 will block all requests. This can be used if you
144
+ // are provisioning quota to selected consumers and blocking others.
145
+ // Similarly, a value of -1 will indicate an unlimited quota. No other
146
+ // negative values are allowed.
147
+ //
148
+ // Used by group-based quotas only.
149
+ int64 default_limit = 3;
150
+
151
+ // Maximum number of tokens that can be consumed during the specified
152
+ // duration. Client application developers can override the default limit up
153
+ // to this maximum. If specified, this value cannot be set to a value less
154
+ // than the default limit. If not specified, it is set to the default limit.
155
+ //
156
+ // To allow clients to apply overrides with no upper bound, set this to -1,
157
+ // indicating unlimited maximum quota.
158
+ //
159
+ // Used by group-based quotas only.
160
+ int64 max_limit = 4;
161
+
162
+ // Free tier value displayed in the Developers Console for this limit.
163
+ // The free tier is the number of tokens that will be subtracted from the
164
+ // billed amount when billing is enabled.
165
+ // This field can only be set on a limit with duration "1d", in a billable
166
+ // group; it is invalid on any other limit. If this field is not set, it
167
+ // defaults to 0, indicating that there is no free tier for this service.
168
+ //
169
+ // Used by group-based quotas only.
170
+ int64 free_tier = 7;
171
+
172
+ // Duration of this limit in textual notation. Example: "100s", "24h", "1d".
173
+ // For duration longer than a day, only multiple of days is supported. We
174
+ // support only "100s" and "1d" for now. Additional support will be added in
175
+ // the future. "0" indicates indefinite duration.
176
+ //
177
+ // Used by group-based quotas only.
178
+ string duration = 5;
179
+
180
+ // The name of the metric this quota limit applies to. The quota limits with
181
+ // the same metric will be checked together during runtime. The metric must be
182
+ // defined within the service config.
183
+ //
184
+ // Used by metric-based quotas only.
185
+ string metric = 8;
186
+
187
+ // Specify the unit of the quota limit. It uses the same syntax as
188
+ // [Metric.unit][]. The supported unit kinds are determined by the quota
189
+ // backend system.
190
+ //
191
+ // The [Google Service Control](https://cloud.google.com/service-control)
192
+ // supports the following unit components:
193
+ // * One of the time intevals:
194
+ // * "/min" for quota every minute.
195
+ // * "/d" for quota every 24 hours, starting 00:00 US Pacific Time.
196
+ // * Otherwise the quota won't be reset by time, such as storage limit.
197
+ // * One and only one of the granted containers:
198
+ // * "/{organization}" quota for an organization.
199
+ // * "/{project}" quota for a project.
200
+ // * "/{folder}" quota for a folder.
201
+ // * "/{resource}" quota for a universal resource.
202
+ // * Zero or more quota segmentation dimension. Not all combos are valid.
203
+ // * "/{region}" quota for every region. Not to be used with time intervals.
204
+ // * Otherwise the resources granted on the target is not segmented.
205
+ // * "/{zone}" quota for every zone. Not to be used with time intervals.
206
+ // * Otherwise the resources granted on the target is not segmented.
207
+ // * "/{resource}" quota for a resource associated with a project or org.
208
+ //
209
+ // Here are some examples:
210
+ // * "1/min/{project}" for quota per minute per project.
211
+ // * "1/min/{user}" for quota per minute per user.
212
+ // * "1/min/{organization}" for quota per minute per organization.
213
+ //
214
+ // Note: the order of unit components is insignificant.
215
+ // The "1" at the beginning is required to follow the metric unit syntax.
216
+ //
217
+ // Used by metric-based quotas only.
218
+ string unit = 9;
219
+
220
+ // Tiered limit values. Also allows for regional or zone overrides for these
221
+ // values if "/{region}" or "/{zone}" is specified in the unit field.
222
+ //
223
+ // Currently supported tiers from low to high:
224
+ // VERY_LOW, LOW, STANDARD, HIGH, VERY_HIGH
225
+ //
226
+ // To apply different limit values for users according to their tiers, specify
227
+ // the values for the tiers you want to differentiate. For example:
228
+ // {LOW:100, STANDARD:500, HIGH:1000, VERY_HIGH:5000}
229
+ //
230
+ // The limit value for each tier is optional except for the tier STANDARD.
231
+ // The limit value for an unspecified tier falls to the value of its next
232
+ // tier towards tier STANDARD. For the above example, the limit value for tier
233
+ // STANDARD is 500.
234
+ //
235
+ // To apply the same limit value for all users, just specify limit value for
236
+ // tier STANDARD. For example: {STANDARD:500}.
237
+ //
238
+ // To apply a regional overide for a tier, add a map entry with key
239
+ // "<TIER>/<region>", where <region> is a region name. Similarly, for a zone
240
+ // override, add a map entry with key "<TIER>/{zone}".
241
+ // Further, a wildcard can be used at the end of a zone name in order to
242
+ // specify zone level overrides. For example:
243
+ // LOW: 10, STANDARD: 50, HIGH: 100,
244
+ // LOW/us-central1: 20, STANDARD/us-central1: 60, HIGH/us-central1: 200,
245
+ // LOW/us-central1-*: 10, STANDARD/us-central1-*: 20, HIGH/us-central1-*: 80
246
+ //
247
+ // The regional overrides tier set for each region must be the same as
248
+ // the tier set for default limit values. Same rule applies for zone overrides
249
+ // tier as well.
250
+ //
251
+ // Used by metric-based quotas only.
252
+ map<string, int64> values = 10;
253
+
254
+ // User-visible display name for this limit.
255
+ // Optional. If not set, the UI will provide a default display name based on
256
+ // the quota configuration. This field can be used to override the default
257
+ // display name generated from the configuration.
258
+ string display_name = 12;
259
+ }