vagrant-unbundled 2.3.2.0 → 2.3.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/CHANGELOG.md +57 -0
  4. data/Gemfile.lock +40 -40
  5. data/LICENSE +1 -3
  6. data/Makefile +53 -9
  7. data/contrib/bash/completion.sh +15 -0
  8. data/go.mod +1 -1
  9. data/go.sum +2 -10
  10. data/lib/vagrant/action/builtin/box_add.rb +16 -6
  11. data/lib/vagrant/environment.rb +1 -1
  12. data/lib/vagrant/errors.rb +12 -0
  13. data/lib/vagrant/plugin/v2/config.rb +0 -5
  14. data/lib/vagrant/shared_helpers.rb +21 -0
  15. data/lib/vagrant/util/file_mutex.rb +47 -0
  16. data/lib/vagrant/util/install_cli_autocomplete.rb +3 -3
  17. data/lib/vagrant/util/platform.rb +8 -2
  18. data/lib/vagrant/util.rb +1 -0
  19. data/lib/vagrant.rb +1 -3
  20. data/pkg/vagrant-unbundled-2.3.2.0.gem +0 -0
  21. data/pkg/vagrant-unbundled-2.3.3.0.gem +0 -0
  22. data/plugins/commands/box/command/outdated.rb +1 -1
  23. data/plugins/commands/serve/command.rb +22 -24
  24. data/plugins/commands/serve/constants.rb +8 -0
  25. data/plugins/communicators/ssh/communicator.rb +11 -20
  26. data/plugins/guests/solaris/cap/remove_public_key.rb +2 -2
  27. data/plugins/hosts/arch/host.rb +1 -1
  28. data/plugins/hosts/gentoo/host.rb +1 -1
  29. data/plugins/hosts/slackware/host.rb +1 -1
  30. data/plugins/kernel_v2/config/vm.rb +0 -9
  31. data/plugins/providers/docker/action.rb +1 -2
  32. data/plugins/providers/docker/driver.rb +17 -1
  33. data/plugins/providers/hyperv/driver.rb +6 -1
  34. data/plugins/providers/hyperv/scripts/set_enhanced_session_transport_type.ps1 +11 -2
  35. data/plugins/providers/hyperv/scripts/utils/VagrantVM/VagrantVM.psm1 +15 -0
  36. data/plugins/providers/virtualbox/action/check_virtualbox.rb +0 -6
  37. data/plugins/providers/virtualbox/action/network.rb +23 -5
  38. data/plugins/providers/virtualbox/driver/base.rb +49 -1
  39. data/plugins/providers/virtualbox/driver/version_5_0.rb +40 -36
  40. data/plugins/providers/virtualbox/driver/version_7_0.rb +241 -6
  41. data/plugins/provisioners/ansible/cap/guest/debian/ansible_install.rb +5 -1
  42. data/plugins/provisioners/ansible/cap/guest/posix/ansible_installed.rb +2 -2
  43. data/plugins/provisioners/ansible/provisioner/guest.rb +1 -1
  44. data/plugins/provisioners/ansible/provisioner/host.rb +4 -3
  45. data/plugins/provisioners/chef/config/chef_zero.rb +1 -1
  46. data/plugins/synced_folders/rsync/helper.rb +4 -6
  47. data/templates/commands/init/Vagrantfile.erb +7 -0
  48. data/templates/locales/en.yml +16 -0
  49. data/thirdparty/proto/api-common-protos/.bazelrc +2 -0
  50. data/thirdparty/proto/api-common-protos/.git +1 -0
  51. data/thirdparty/proto/api-common-protos/.gitignore +11 -0
  52. data/thirdparty/proto/api-common-protos/BUILD.bazel +129 -0
  53. data/thirdparty/proto/api-common-protos/CODE_OF_CONDUCT.md +43 -0
  54. data/thirdparty/proto/api-common-protos/CONTRIBUTING.md +42 -0
  55. data/thirdparty/proto/api-common-protos/Dockerfile +18 -0
  56. data/thirdparty/proto/api-common-protos/LICENSE +201 -0
  57. data/thirdparty/proto/api-common-protos/README.md +113 -0
  58. data/thirdparty/proto/api-common-protos/SECURITY.md +7 -0
  59. data/thirdparty/proto/api-common-protos/WORKSPACE +154 -0
  60. data/thirdparty/proto/api-common-protos/google/api/BUILD.bazel +246 -0
  61. data/thirdparty/proto/api-common-protos/google/api/README.md +46 -0
  62. data/thirdparty/proto/api-common-protos/google/api/annotations.proto +31 -0
  63. data/thirdparty/proto/api-common-protos/google/api/auth.proto +181 -0
  64. data/thirdparty/proto/api-common-protos/google/api/backend.proto +51 -0
  65. data/thirdparty/proto/api-common-protos/google/api/billing.proto +67 -0
  66. data/thirdparty/proto/api-common-protos/google/api/client.proto +99 -0
  67. data/thirdparty/proto/api-common-protos/google/api/config_change.proto +85 -0
  68. data/thirdparty/proto/api-common-protos/google/api/consumer.proto +83 -0
  69. data/thirdparty/proto/api-common-protos/google/api/context.proto +63 -0
  70. data/thirdparty/proto/api-common-protos/google/api/control.proto +33 -0
  71. data/thirdparty/proto/api-common-protos/google/api/distribution.proto +213 -0
  72. data/thirdparty/proto/api-common-protos/google/api/documentation.proto +157 -0
  73. data/thirdparty/proto/api-common-protos/google/api/endpoint.proto +71 -0
  74. data/thirdparty/proto/api-common-protos/google/api/field_behavior.proto +84 -0
  75. data/thirdparty/proto/api-common-protos/google/api/http.proto +318 -0
  76. data/thirdparty/proto/api-common-protos/google/api/httpbody.proto +76 -0
  77. data/thirdparty/proto/api-common-protos/google/api/label.proto +49 -0
  78. data/thirdparty/proto/api-common-protos/google/api/launch_stage.proto +67 -0
  79. data/thirdparty/proto/api-common-protos/google/api/log.proto +55 -0
  80. data/thirdparty/proto/api-common-protos/google/api/logging.proto +83 -0
  81. data/thirdparty/proto/api-common-protos/google/api/metric.proto +192 -0
  82. data/thirdparty/proto/api-common-protos/google/api/monitored_resource.proto +116 -0
  83. data/thirdparty/proto/api-common-protos/google/api/monitoring.proto +89 -0
  84. data/thirdparty/proto/api-common-protos/google/api/quota.proto +259 -0
  85. data/thirdparty/proto/api-common-protos/google/api/resource.proto +299 -0
  86. data/thirdparty/proto/api-common-protos/google/api/routing.proto +461 -0
  87. data/thirdparty/proto/api-common-protos/google/api/service.proto +175 -0
  88. data/thirdparty/proto/api-common-protos/google/api/source_info.proto +32 -0
  89. data/thirdparty/proto/api-common-protos/google/api/system_parameter.proto +96 -0
  90. data/thirdparty/proto/api-common-protos/google/api/usage.proto +92 -0
  91. data/thirdparty/proto/api-common-protos/google/cloud/extended_operations.proto +150 -0
  92. data/thirdparty/proto/api-common-protos/google/iam/README.md +14 -0
  93. data/thirdparty/proto/api-common-protos/google/iam/admin/v1/iam.proto +1087 -0
  94. data/thirdparty/proto/api-common-protos/google/iam/v1/iam_policy.proto +145 -0
  95. data/thirdparty/proto/api-common-protos/google/iam/v1/logging/audit_data.proto +34 -0
  96. data/thirdparty/proto/api-common-protos/google/iam/v1/options.proto +41 -0
  97. data/thirdparty/proto/api-common-protos/google/iam/v1/policy.proto +240 -0
  98. data/thirdparty/proto/api-common-protos/google/logging/type/README.md +12 -0
  99. data/thirdparty/proto/api-common-protos/google/logging/type/http_request.proto +92 -0
  100. data/thirdparty/proto/api-common-protos/google/logging/type/log_severity.proto +72 -0
  101. data/thirdparty/proto/api-common-protos/google/longrunning/README.md +31 -0
  102. data/thirdparty/proto/api-common-protos/google/longrunning/operations.proto +247 -0
  103. data/thirdparty/proto/api-common-protos/google/rpc/README.md +18 -0
  104. data/thirdparty/proto/api-common-protos/google/rpc/code.proto +186 -0
  105. data/thirdparty/proto/api-common-protos/google/rpc/context/attribute_context.proto +287 -0
  106. data/thirdparty/proto/api-common-protos/google/rpc/error_details.proto +246 -0
  107. data/thirdparty/proto/api-common-protos/google/rpc/status.proto +47 -0
  108. data/thirdparty/proto/api-common-protos/google/type/README.md +7 -0
  109. data/thirdparty/proto/api-common-protos/google/type/calendar_period.proto +57 -0
  110. data/thirdparty/proto/api-common-protos/google/type/color.proto +170 -0
  111. data/thirdparty/proto/api-common-protos/google/type/date.proto +50 -0
  112. data/thirdparty/proto/api-common-protos/google/type/datetime.proto +97 -0
  113. data/thirdparty/proto/api-common-protos/google/type/dayofweek.proto +51 -0
  114. data/thirdparty/proto/api-common-protos/google/type/expr.proto +51 -0
  115. data/thirdparty/proto/api-common-protos/google/type/fraction.proto +34 -0
  116. data/thirdparty/proto/api-common-protos/google/type/latlng.proto +37 -0
  117. data/thirdparty/proto/api-common-protos/google/type/money.proto +43 -0
  118. data/thirdparty/proto/api-common-protos/google/type/month.proto +66 -0
  119. data/thirdparty/proto/api-common-protos/google/type/postal_address.proto +135 -0
  120. data/thirdparty/proto/api-common-protos/google/type/quaternion.proto +95 -0
  121. data/thirdparty/proto/api-common-protos/google/type/timeofday.proto +44 -0
  122. data/thirdparty/proto/api-common-protos/renovate.json +5 -0
  123. data/thirdparty/proto/api-common-protos/repository_rules.bzl +222 -0
  124. data/tools.go +10 -0
  125. data/vagrant.gemspec +13 -13
  126. data/version.txt +1 -1
  127. metadata +111 -38
  128. data/lib/vagrant/patches/net-ssh.rb +0 -286
@@ -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
+ }
@@ -0,0 +1,299 @@
1
+ // Copyright 2020 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/protobuf/descriptor.proto";
20
+
21
+ option cc_enable_arenas = true;
22
+ option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
23
+ option java_multiple_files = true;
24
+ option java_outer_classname = "ResourceProto";
25
+ option java_package = "com.google.api";
26
+ option objc_class_prefix = "GAPI";
27
+
28
+ extend google.protobuf.FieldOptions {
29
+ // An annotation that describes a resource reference, see
30
+ // [ResourceReference][].
31
+ google.api.ResourceReference resource_reference = 1055;
32
+ }
33
+
34
+ extend google.protobuf.FileOptions {
35
+ // An annotation that describes a resource definition without a corresponding
36
+ // message; see [ResourceDescriptor][].
37
+ repeated google.api.ResourceDescriptor resource_definition = 1053;
38
+ }
39
+
40
+ extend google.protobuf.MessageOptions {
41
+ // An annotation that describes a resource definition, see
42
+ // [ResourceDescriptor][].
43
+ google.api.ResourceDescriptor resource = 1053;
44
+ }
45
+
46
+ // A simple descriptor of a resource type.
47
+ //
48
+ // ResourceDescriptor annotates a resource message (either by means of a
49
+ // protobuf annotation or use in the service config), and associates the
50
+ // resource's schema, the resource type, and the pattern of the resource name.
51
+ //
52
+ // Example:
53
+ //
54
+ // message Topic {
55
+ // // Indicates this message defines a resource schema.
56
+ // // Declares the resource type in the format of {service}/{kind}.
57
+ // // For Kubernetes resources, the format is {api group}/{kind}.
58
+ // option (google.api.resource) = {
59
+ // type: "pubsub.googleapis.com/Topic"
60
+ // name_descriptor: {
61
+ // pattern: "projects/{project}/topics/{topic}"
62
+ // parent_type: "cloudresourcemanager.googleapis.com/Project"
63
+ // parent_name_extractor: "projects/{project}"
64
+ // }
65
+ // };
66
+ // }
67
+ //
68
+ // The ResourceDescriptor Yaml config will look like:
69
+ //
70
+ // resources:
71
+ // - type: "pubsub.googleapis.com/Topic"
72
+ // name_descriptor:
73
+ // - pattern: "projects/{project}/topics/{topic}"
74
+ // parent_type: "cloudresourcemanager.googleapis.com/Project"
75
+ // parent_name_extractor: "projects/{project}"
76
+ //
77
+ // Sometimes, resources have multiple patterns, typically because they can
78
+ // live under multiple parents.
79
+ //
80
+ // Example:
81
+ //
82
+ // message LogEntry {
83
+ // option (google.api.resource) = {
84
+ // type: "logging.googleapis.com/LogEntry"
85
+ // name_descriptor: {
86
+ // pattern: "projects/{project}/logs/{log}"
87
+ // parent_type: "cloudresourcemanager.googleapis.com/Project"
88
+ // parent_name_extractor: "projects/{project}"
89
+ // }
90
+ // name_descriptor: {
91
+ // pattern: "folders/{folder}/logs/{log}"
92
+ // parent_type: "cloudresourcemanager.googleapis.com/Folder"
93
+ // parent_name_extractor: "folders/{folder}"
94
+ // }
95
+ // name_descriptor: {
96
+ // pattern: "organizations/{organization}/logs/{log}"
97
+ // parent_type: "cloudresourcemanager.googleapis.com/Organization"
98
+ // parent_name_extractor: "organizations/{organization}"
99
+ // }
100
+ // name_descriptor: {
101
+ // pattern: "billingAccounts/{billing_account}/logs/{log}"
102
+ // parent_type: "billing.googleapis.com/BillingAccount"
103
+ // parent_name_extractor: "billingAccounts/{billing_account}"
104
+ // }
105
+ // };
106
+ // }
107
+ //
108
+ // The ResourceDescriptor Yaml config will look like:
109
+ //
110
+ // resources:
111
+ // - type: 'logging.googleapis.com/LogEntry'
112
+ // name_descriptor:
113
+ // - pattern: "projects/{project}/logs/{log}"
114
+ // parent_type: "cloudresourcemanager.googleapis.com/Project"
115
+ // parent_name_extractor: "projects/{project}"
116
+ // - pattern: "folders/{folder}/logs/{log}"
117
+ // parent_type: "cloudresourcemanager.googleapis.com/Folder"
118
+ // parent_name_extractor: "folders/{folder}"
119
+ // - pattern: "organizations/{organization}/logs/{log}"
120
+ // parent_type: "cloudresourcemanager.googleapis.com/Organization"
121
+ // parent_name_extractor: "organizations/{organization}"
122
+ // - pattern: "billingAccounts/{billing_account}/logs/{log}"
123
+ // parent_type: "billing.googleapis.com/BillingAccount"
124
+ // parent_name_extractor: "billingAccounts/{billing_account}"
125
+ //
126
+ // For flexible resources, the resource name doesn't contain parent names, but
127
+ // the resource itself has parents for policy evaluation.
128
+ //
129
+ // Example:
130
+ //
131
+ // message Shelf {
132
+ // option (google.api.resource) = {
133
+ // type: "library.googleapis.com/Shelf"
134
+ // name_descriptor: {
135
+ // pattern: "shelves/{shelf}"
136
+ // parent_type: "cloudresourcemanager.googleapis.com/Project"
137
+ // }
138
+ // name_descriptor: {
139
+ // pattern: "shelves/{shelf}"
140
+ // parent_type: "cloudresourcemanager.googleapis.com/Folder"
141
+ // }
142
+ // };
143
+ // }
144
+ //
145
+ // The ResourceDescriptor Yaml config will look like:
146
+ //
147
+ // resources:
148
+ // - type: 'library.googleapis.com/Shelf'
149
+ // name_descriptor:
150
+ // - pattern: "shelves/{shelf}"
151
+ // parent_type: "cloudresourcemanager.googleapis.com/Project"
152
+ // - pattern: "shelves/{shelf}"
153
+ // parent_type: "cloudresourcemanager.googleapis.com/Folder"
154
+ message ResourceDescriptor {
155
+ // A description of the historical or future-looking state of the
156
+ // resource pattern.
157
+ enum History {
158
+ // The "unset" value.
159
+ HISTORY_UNSPECIFIED = 0;
160
+
161
+ // The resource originally had one pattern and launched as such, and
162
+ // additional patterns were added later.
163
+ ORIGINALLY_SINGLE_PATTERN = 1;
164
+
165
+ // The resource has one pattern, but the API owner expects to add more
166
+ // later. (This is the inverse of ORIGINALLY_SINGLE_PATTERN, and prevents
167
+ // that from being necessary once there are multiple patterns.)
168
+ FUTURE_MULTI_PATTERN = 2;
169
+ }
170
+
171
+ // A flag representing a specific style that a resource claims to conform to.
172
+ enum Style {
173
+ // The unspecified value. Do not use.
174
+ STYLE_UNSPECIFIED = 0;
175
+
176
+ // This resource is intended to be "declarative-friendly".
177
+ //
178
+ // Declarative-friendly resources must be more strictly consistent, and
179
+ // setting this to true communicates to tools that this resource should
180
+ // adhere to declarative-friendly expectations.
181
+ //
182
+ // Note: This is used by the API linter (linter.aip.dev) to enable
183
+ // additional checks.
184
+ DECLARATIVE_FRIENDLY = 1;
185
+ }
186
+
187
+ // The resource type. It must be in the format of
188
+ // {service_name}/{resource_type_kind}. The `resource_type_kind` must be
189
+ // singular and must not include version numbers.
190
+ //
191
+ // Example: `storage.googleapis.com/Bucket`
192
+ //
193
+ // The value of the resource_type_kind must follow the regular expression
194
+ // /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and
195
+ // should use PascalCase (UpperCamelCase). The maximum number of
196
+ // characters allowed for the `resource_type_kind` is 100.
197
+ string type = 1;
198
+
199
+ // Optional. The relative resource name pattern associated with this resource
200
+ // type. The DNS prefix of the full resource name shouldn't be specified here.
201
+ //
202
+ // The path pattern must follow the syntax, which aligns with HTTP binding
203
+ // syntax:
204
+ //
205
+ // Template = Segment { "/" Segment } ;
206
+ // Segment = LITERAL | Variable ;
207
+ // Variable = "{" LITERAL "}" ;
208
+ //
209
+ // Examples:
210
+ //
211
+ // - "projects/{project}/topics/{topic}"
212
+ // - "projects/{project}/knowledgeBases/{knowledge_base}"
213
+ //
214
+ // The components in braces correspond to the IDs for each resource in the
215
+ // hierarchy. It is expected that, if multiple patterns are provided,
216
+ // the same component name (e.g. "project") refers to IDs of the same
217
+ // type of resource.
218
+ repeated string pattern = 2;
219
+
220
+ // Optional. The field on the resource that designates the resource name
221
+ // field. If omitted, this is assumed to be "name".
222
+ string name_field = 3;
223
+
224
+ // Optional. The historical or future-looking state of the resource pattern.
225
+ //
226
+ // Example:
227
+ //
228
+ // // The InspectTemplate message originally only supported resource
229
+ // // names with organization, and project was added later.
230
+ // message InspectTemplate {
231
+ // option (google.api.resource) = {
232
+ // type: "dlp.googleapis.com/InspectTemplate"
233
+ // pattern:
234
+ // "organizations/{organization}/inspectTemplates/{inspect_template}"
235
+ // pattern: "projects/{project}/inspectTemplates/{inspect_template}"
236
+ // history: ORIGINALLY_SINGLE_PATTERN
237
+ // };
238
+ // }
239
+ History history = 4;
240
+
241
+ // The plural name used in the resource name and permission names, such as
242
+ // 'projects' for the resource name of 'projects/{project}' and the permission
243
+ // name of 'cloudresourcemanager.googleapis.com/projects.get'. It is the same
244
+ // concept of the `plural` field in k8s CRD spec
245
+ // https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
246
+ //
247
+ // Note: The plural form is required even for singleton resources. See
248
+ // https://aip.dev/156
249
+ string plural = 5;
250
+
251
+ // The same concept of the `singular` field in k8s CRD spec
252
+ // https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
253
+ // Such as "project" for the `resourcemanager.googleapis.com/Project` type.
254
+ string singular = 6;
255
+
256
+ // Style flag(s) for this resource.
257
+ // These indicate that a resource is expected to conform to a given
258
+ // style. See the specific style flags for additional information.
259
+ repeated Style style = 10;
260
+ }
261
+
262
+ // Defines a proto annotation that describes a string field that refers to
263
+ // an API resource.
264
+ message ResourceReference {
265
+ // The resource type that the annotated field references.
266
+ //
267
+ // Example:
268
+ //
269
+ // message Subscription {
270
+ // string topic = 2 [(google.api.resource_reference) = {
271
+ // type: "pubsub.googleapis.com/Topic"
272
+ // }];
273
+ // }
274
+ //
275
+ // Occasionally, a field may reference an arbitrary resource. In this case,
276
+ // APIs use the special value * in their resource reference.
277
+ //
278
+ // Example:
279
+ //
280
+ // message GetIamPolicyRequest {
281
+ // string resource = 2 [(google.api.resource_reference) = {
282
+ // type: "*"
283
+ // }];
284
+ // }
285
+ string type = 1;
286
+
287
+ // The resource type of a child collection that the annotated field
288
+ // references. This is useful for annotating the `parent` field that
289
+ // doesn't have a fixed resource type.
290
+ //
291
+ // Example:
292
+ //
293
+ // message ListLogEntriesRequest {
294
+ // string parent = 1 [(google.api.resource_reference) = {
295
+ // child_type: "logging.googleapis.com/LogEntry"
296
+ // };
297
+ // }
298
+ string child_type = 2;
299
+ }