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,154 @@
1
+ workspace(name = "com_google_googleapis")
2
+
3
+ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
4
+
5
+ ##############################################################################
6
+ # Common
7
+ ##############################################################################
8
+
9
+ load("//:repository_rules.bzl", "switched_rules_by_language")
10
+
11
+ switched_rules_by_language(
12
+ name = "com_google_googleapis_imports",
13
+ cc = True,
14
+ gapic = True,
15
+ go = True,
16
+ grpc = True,
17
+ java = True,
18
+ nodejs = True,
19
+ php = True,
20
+ )
21
+
22
+ # Note gapic-generator contains java-specific and common code, that is why it is imported in common
23
+ # section
24
+ http_archive(
25
+ name = "com_google_api_codegen",
26
+ strip_prefix = "gapic-generator-c075bbe8eff3a1094a03cd77474d8dbcb010f954",
27
+ urls = ["https://github.com/googleapis/gapic-generator/archive/c075bbe8eff3a1094a03cd77474d8dbcb010f954.zip"],
28
+ )
29
+
30
+ ##############################################################################
31
+ # Java
32
+ ##############################################################################
33
+
34
+ # java_gapic artifacts runtime dependencies (gax-java)
35
+ #
36
+ # Keeping it here to see how this goes (what will be more maintainable: direct import of gax or via
37
+ # gapic-generator).
38
+ #
39
+ #load("@com_google_api_codegen//rules_gapic/java:java_gapic_repositories.bzl", "java_gapic_repositories")
40
+ #
41
+ #java_gapic_repositories()
42
+
43
+ http_archive(
44
+ name = "com_google_api_gax_java",
45
+ strip_prefix = "gax-java-6b170195c18e0d8abc8385ef063d6da9773f87de",
46
+ urls = ["https://github.com/googleapis/gax-java/archive/6b170195c18e0d8abc8385ef063d6da9773f87de.zip"],
47
+ )
48
+
49
+ load("@com_google_api_gax_java//:repository_rules.bzl", "com_google_api_gax_java_properties")
50
+
51
+ com_google_api_gax_java_properties(
52
+ name = "com_google_api_gax_java_properties",
53
+ file = "@com_google_api_gax_java//:dependencies.properties",
54
+ )
55
+
56
+ load("@com_google_api_gax_java//:repositories.bzl", "com_google_api_gax_java_repositories")
57
+
58
+ com_google_api_gax_java_repositories()
59
+
60
+ # gapic-generator transitive
61
+ # (goes AFTER java-gax, since both java gax and gapic-generator are written in java and may conflict)
62
+ load("@com_google_api_codegen//:repository_rules.bzl", "com_google_api_codegen_properties")
63
+
64
+ com_google_api_codegen_properties(
65
+ name = "com_google_api_codegen_properties",
66
+ file = "@com_google_api_codegen//:dependencies.properties",
67
+ )
68
+
69
+ load("@com_google_api_codegen//:repositories.bzl", "com_google_api_codegen_repositories")
70
+
71
+ com_google_api_codegen_repositories()
72
+
73
+ # protoc-java-resource-names-plugin (loaded in com_google_api_codegen_repositories())
74
+ # (required to support resource names feature in gapic generator)
75
+ load(
76
+ "@com_google_protoc_java_resource_names_plugin//:repositories.bzl",
77
+ "com_google_protoc_java_resource_names_plugin_repositories",
78
+ )
79
+
80
+ com_google_protoc_java_resource_names_plugin_repositories(omit_com_google_protobuf = True)
81
+
82
+ ##############################################################################
83
+ # Go
84
+ ##############################################################################
85
+
86
+ # rules_go (support Golang under bazel)
87
+ http_archive(
88
+ name = "io_bazel_rules_go",
89
+ sha256 = "a82a352bffae6bee4e95f68a8d80a70e87f42c4741e6a448bec11998fcc82329",
90
+ url = "https://github.com/bazelbuild/rules_go/releases/download/0.18.5/rules_go-0.18.5.tar.gz",
91
+ )
92
+
93
+ load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
94
+
95
+ go_rules_dependencies()
96
+
97
+ go_register_toolchains()
98
+
99
+ # bazel-gazelle (support Golang under bazel)
100
+ http_archive(
101
+ name = "bazel_gazelle",
102
+ strip_prefix = "bazel-gazelle-0.17.0",
103
+ urls = ["https://github.com/bazelbuild/bazel-gazelle/archive/0.17.0.zip"],
104
+ )
105
+
106
+ load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
107
+
108
+ gazelle_dependencies()
109
+
110
+ # go_gapic artifacts runtime dependencies (gax-go)
111
+ load("@com_google_api_codegen//rules_gapic/go:go_gapic_repositories.bzl", "go_gapic_repositories")
112
+
113
+ go_gapic_repositories()
114
+
115
+ ##############################################################################
116
+ # C++
117
+ ##############################################################################
118
+
119
+ http_archive(
120
+ name = "com_google_gapic_generator_cpp",
121
+ strip_prefix = "gapic-generator-cpp-2d9229952b649e53b2e986f5a3031d0d374af9e1",
122
+ urls = ["https://github.com/googleapis/gapic-generator-cpp/archive/2d9229952b649e53b2e986f5a3031d0d374af9e1.zip"],
123
+ )
124
+
125
+ load(
126
+ "@com_google_gapic_generator_cpp//gax:repositories.bzl",
127
+ "com_google_gapic_generator_cpp_gax_repositories",
128
+ )
129
+
130
+ com_google_gapic_generator_cpp_gax_repositories()
131
+
132
+ load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
133
+
134
+ grpc_deps()
135
+
136
+ load(
137
+ "@com_google_gapic_generator_cpp//:repositories.bzl",
138
+ "com_google_gapic_generator_cpp_repositories",
139
+ )
140
+
141
+ com_google_gapic_generator_cpp_repositories()
142
+
143
+ ##############################################################################
144
+ # PHP
145
+ ##############################################################################
146
+
147
+ load("@com_google_api_codegen//rules_gapic/php:php_gapic_repositories.bzl", "php", "php_gapic_repositories")
148
+
149
+ php(
150
+ name = "php",
151
+ version = "7.1.30",
152
+ )
153
+
154
+ php_gapic_repositories()
@@ -0,0 +1,246 @@
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
+ # This is an API workspace, having public visibility by default makes perfect sense.
16
+ package(default_visibility = ["//visibility:public"])
17
+
18
+ proto_library(
19
+ name = "annotations_proto",
20
+ srcs = ["annotations.proto"],
21
+ deps = [
22
+ ":http_proto",
23
+ "@com_google_protobuf//:descriptor_proto",
24
+ ],
25
+ )
26
+
27
+ proto_library(
28
+ name = "auth_proto",
29
+ srcs = ["auth.proto"],
30
+ deps = [
31
+ ":annotations_proto",
32
+ ],
33
+ )
34
+
35
+ proto_library(
36
+ name = "billing_proto",
37
+ srcs = ["billing.proto"],
38
+ deps = [
39
+ ":annotations_proto",
40
+ ":metric_proto",
41
+ ],
42
+ )
43
+
44
+ proto_library(
45
+ name = "backend_proto",
46
+ srcs = ["backend.proto"],
47
+ visibility = ["//visibility:public"],
48
+ )
49
+
50
+ proto_library(
51
+ name = "client_proto",
52
+ srcs = ["client.proto"],
53
+ deps = [
54
+ "@com_google_protobuf//:descriptor_proto",
55
+ ],
56
+ )
57
+
58
+ cc_proto_library(
59
+ name = "client_cc_proto",
60
+ deps = [":client_proto"],
61
+ )
62
+
63
+ proto_library(
64
+ name = "config_change_proto",
65
+ srcs = ["config_change.proto"],
66
+ visibility = ["//visibility:public"],
67
+ )
68
+
69
+ proto_library(
70
+ name = "consumer_proto",
71
+ srcs = ["consumer.proto"],
72
+ visibility = ["//visibility:public"],
73
+ )
74
+
75
+ proto_library(
76
+ name = "context_proto",
77
+ srcs = ["context.proto"],
78
+ visibility = ["//visibility:public"],
79
+ )
80
+
81
+ proto_library(
82
+ name = "control_proto",
83
+ srcs = ["control.proto"],
84
+ visibility = ["//visibility:public"],
85
+ )
86
+
87
+ proto_library(
88
+ name = "distribution_proto",
89
+ srcs = ["distribution.proto"],
90
+ deps = [
91
+ ":annotations_proto",
92
+ "@com_google_protobuf//:any_proto",
93
+ "@com_google_protobuf//:timestamp_proto",
94
+ ],
95
+ )
96
+
97
+ proto_library(
98
+ name = "documentation_proto",
99
+ srcs = ["documentation.proto"],
100
+ visibility = ["//visibility:public"],
101
+ )
102
+
103
+ proto_library(
104
+ name = "endpoint_proto",
105
+ srcs = ["endpoint.proto"],
106
+ deps = [
107
+ ":annotations_proto",
108
+ ],
109
+ )
110
+
111
+ proto_library(
112
+ name = "field_behavior",
113
+ srcs = ["field_behavior.proto"],
114
+ deps = [
115
+ "@com_google_protobuf//:descriptor_proto",
116
+ ],
117
+ )
118
+
119
+ proto_library(
120
+ name = "http_proto",
121
+ srcs = ["http.proto"],
122
+ visibility = ["//visibility:public"],
123
+ )
124
+
125
+ proto_library(
126
+ name = "httpbody_proto",
127
+ srcs = ["httpbody.proto"],
128
+ deps = [
129
+ "@com_google_protobuf//:any_proto",
130
+ ],
131
+ )
132
+
133
+ proto_library(
134
+ name = "label_proto",
135
+ srcs = ["label.proto"],
136
+ visibility = ["//visibility:public"],
137
+ )
138
+
139
+ proto_library(
140
+ name = "log_proto",
141
+ srcs = ["log.proto"],
142
+ deps = [
143
+ ":label_proto",
144
+ ],
145
+ )
146
+
147
+ proto_library(
148
+ name = "logging_proto",
149
+ srcs = ["logging.proto"],
150
+ deps = [
151
+ ":annotations_proto",
152
+ ],
153
+ )
154
+
155
+ proto_library(
156
+ name = "metric_proto",
157
+ srcs = ["metric.proto"],
158
+ deps = [
159
+ ":label_proto",
160
+ ],
161
+ )
162
+
163
+ proto_library(
164
+ name = "monitored_resource_proto",
165
+ srcs = ["monitored_resource.proto"],
166
+ deps = [
167
+ ":label_proto",
168
+ "@com_google_protobuf//:struct_proto",
169
+ ],
170
+ )
171
+
172
+ proto_library(
173
+ name = "monitoring_proto",
174
+ srcs = ["monitoring.proto"],
175
+ deps = [
176
+ ":annotations_proto",
177
+ ],
178
+ )
179
+
180
+ proto_library(
181
+ name = "quota_proto",
182
+ srcs = ["quota.proto"],
183
+ deps = [
184
+ ":annotations_proto",
185
+ ],
186
+ )
187
+
188
+ proto_library(
189
+ name = "resource_proto",
190
+ srcs = ["resource.proto"],
191
+ deps = [
192
+ "@com_google_protobuf//:descriptor_proto",
193
+ ],
194
+ )
195
+
196
+ proto_library(
197
+ name = "service_proto",
198
+ srcs = ["service.proto"],
199
+ deps = [
200
+ ":annotations_proto",
201
+ ":auth_proto",
202
+ ":backend_proto",
203
+ ":billing_proto",
204
+ ":context_proto",
205
+ ":control_proto",
206
+ ":documentation_proto",
207
+ ":endpoint_proto",
208
+ ":http_proto",
209
+ ":label_proto",
210
+ ":log_proto",
211
+ ":logging_proto",
212
+ ":metric_proto",
213
+ ":monitored_resource_proto",
214
+ ":monitoring_proto",
215
+ ":quota_proto",
216
+ ":source_info_proto",
217
+ ":system_parameter_proto",
218
+ ":usage_proto",
219
+ "@com_google_protobuf//:any_proto",
220
+ "@com_google_protobuf//:api_proto",
221
+ "@com_google_protobuf//:type_proto",
222
+ "@com_google_protobuf//:wrappers_proto",
223
+ ],
224
+ )
225
+
226
+ proto_library(
227
+ name = "source_info_proto",
228
+ srcs = ["source_info.proto"],
229
+ deps = [
230
+ "@com_google_protobuf//:any_proto",
231
+ ],
232
+ )
233
+
234
+ proto_library(
235
+ name = "system_parameter_proto",
236
+ srcs = ["system_parameter.proto"],
237
+ visibility = ["//visibility:public"],
238
+ )
239
+
240
+ proto_library(
241
+ name = "usage_proto",
242
+ srcs = ["usage.proto"],
243
+ deps = [
244
+ ":annotations_proto",
245
+ ],
246
+ )
@@ -0,0 +1,46 @@
1
+ ## API Protos
2
+
3
+ This folder contains the schema of the configuration model for Google's
4
+ internal API serving platform, which handles routing, quotas, monitoring,
5
+ logging, and the like.
6
+
7
+ Google refers to this configuration colloquially as the "service config",
8
+ and the `service.proto` file in this directory is the entry point for
9
+ understanding these.
10
+
11
+ ## Using these protos
12
+
13
+ To be honest, we probably open sourced way too much of this (basically by
14
+ accident). There are a couple files in here you are most likely to be
15
+ interested in: `http.proto`, `documentation.proto`, `auth.proto`, and
16
+ `annotations.proto`.
17
+
18
+ ### HTTP and REST
19
+
20
+ The `http.proto` file contains the `Http` message (which then is wrapped
21
+ in an annotation in `annotations.proto`), which provides a specification
22
+ for REST endpoints and verbs (`GET`, `POST`, etc.) on RPC methods.
23
+ We recommend use of this annotation for describing the relationship
24
+ between RPCs and REST endpoints.
25
+
26
+ ### Documentation
27
+
28
+ The `documentation.proto` file contains a `Documentation` message which
29
+ provides a mechanism to fully describe an API, allowing a tool to build
30
+ structured documentation artifacts.
31
+
32
+ ### Authentication
33
+
34
+ The `auth.proto` file contains descriptions of both authentication rules
35
+ and authenticaion providers, allowing you to describe what your services
36
+ expect and accept from clients.
37
+
38
+ ## api-compiler
39
+
40
+ Google provides a tool called [api-compiler][], which is a tool that accepts
41
+ a protocol buffer descriptor and a YAML file specifying some of the
42
+ options described in `service.proto`, and outputs a much more thorough
43
+ `Service` descriptor based on the information it infers from the protos
44
+ themselves.
45
+
46
+ [api-compiler]: https://github.com/googleapis/api-compiler
@@ -0,0 +1,31 @@
1
+ // Copyright (c) 2015, 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/http.proto";
20
+ import "google/protobuf/descriptor.proto";
21
+
22
+ option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
23
+ option java_multiple_files = true;
24
+ option java_outer_classname = "AnnotationsProto";
25
+ option java_package = "com.google.api";
26
+ option objc_class_prefix = "GAPI";
27
+
28
+ extend google.protobuf.MethodOptions {
29
+ // See `HttpRule`.
30
+ HttpRule http = 72295728;
31
+ }
@@ -0,0 +1,181 @@
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 = "AuthProto";
24
+ option java_package = "com.google.api";
25
+ option objc_class_prefix = "GAPI";
26
+
27
+
28
+ // `Authentication` defines the authentication configuration for an API.
29
+ //
30
+ // Example for an API targeted for external use:
31
+ //
32
+ // name: calendar.googleapis.com
33
+ // authentication:
34
+ // providers:
35
+ // - id: google_calendar_auth
36
+ // jwks_uri: https://www.googleapis.com/oauth2/v1/certs
37
+ // issuer: https://securetoken.google.com
38
+ // rules:
39
+ // - selector: "*"
40
+ // requirements:
41
+ // provider_id: google_calendar_auth
42
+ message Authentication {
43
+ // A list of authentication rules that apply to individual API methods.
44
+ //
45
+ // **NOTE:** All service configuration rules follow "last one wins" order.
46
+ repeated AuthenticationRule rules = 3;
47
+
48
+ // Defines a set of authentication providers that a service supports.
49
+ repeated AuthProvider providers = 4;
50
+ }
51
+
52
+ // Authentication rules for the service.
53
+ //
54
+ // By default, if a method has any authentication requirements, every request
55
+ // must include a valid credential matching one of the requirements.
56
+ // It's an error to include more than one kind of credential in a single
57
+ // request.
58
+ //
59
+ // If a method doesn't have any auth requirements, request credentials will be
60
+ // ignored.
61
+ message AuthenticationRule {
62
+ // Selects the methods to which this rule applies.
63
+ //
64
+ // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
65
+ string selector = 1;
66
+
67
+ // The requirements for OAuth credentials.
68
+ OAuthRequirements oauth = 2;
69
+
70
+ // If true, the service accepts API keys without any other credential.
71
+ bool allow_without_credential = 5;
72
+
73
+ // Requirements for additional authentication providers.
74
+ repeated AuthRequirement requirements = 7;
75
+ }
76
+
77
+ // Configuration for an anthentication provider, including support for
78
+ // [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
79
+ message AuthProvider {
80
+ // The unique identifier of the auth provider. It will be referred to by
81
+ // `AuthRequirement.provider_id`.
82
+ //
83
+ // Example: "bookstore_auth".
84
+ string id = 1;
85
+
86
+ // Identifies the principal that issued the JWT. See
87
+ // https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
88
+ // Usually a URL or an email address.
89
+ //
90
+ // Example: https://securetoken.google.com
91
+ // Example: 1234567-compute@developer.gserviceaccount.com
92
+ string issuer = 2;
93
+
94
+ // URL of the provider's public key set to validate signature of the JWT. See
95
+ // [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
96
+ // Optional if the key set document:
97
+ // - can be retrieved from
98
+ // [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html
99
+ // of the issuer.
100
+ // - can be inferred from the email domain of the issuer (e.g. a Google service account).
101
+ //
102
+ // Example: https://www.googleapis.com/oauth2/v1/certs
103
+ string jwks_uri = 3;
104
+
105
+ // The list of JWT
106
+ // [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
107
+ // that are allowed to access. A JWT containing any of these audiences will
108
+ // be accepted. When this setting is absent, only JWTs with audience
109
+ // "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]"
110
+ // will be accepted. For example, if no audiences are in the setting,
111
+ // LibraryService API will only accept JWTs with the following audience
112
+ // "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
113
+ //
114
+ // Example:
115
+ //
116
+ // audiences: bookstore_android.apps.googleusercontent.com,
117
+ // bookstore_web.apps.googleusercontent.com
118
+ string audiences = 4;
119
+
120
+ // Redirect URL if JWT token is required but no present or is expired.
121
+ // Implement authorizationUrl of securityDefinitions in OpenAPI spec.
122
+ string authorization_url = 5;
123
+ }
124
+
125
+ // OAuth scopes are a way to define data and permissions on data. For example,
126
+ // there are scopes defined for "Read-only access to Google Calendar" and
127
+ // "Access to Cloud Platform". Users can consent to a scope for an application,
128
+ // giving it permission to access that data on their behalf.
129
+ //
130
+ // OAuth scope specifications should be fairly coarse grained; a user will need
131
+ // to see and understand the text description of what your scope means.
132
+ //
133
+ // In most cases: use one or at most two OAuth scopes for an entire family of
134
+ // products. If your product has multiple APIs, you should probably be sharing
135
+ // the OAuth scope across all of those APIs.
136
+ //
137
+ // When you need finer grained OAuth consent screens: talk with your product
138
+ // management about how developers will use them in practice.
139
+ //
140
+ // Please note that even though each of the canonical scopes is enough for a
141
+ // request to be accepted and passed to the backend, a request can still fail
142
+ // due to the backend requiring additional scopes or permissions.
143
+ message OAuthRequirements {
144
+ // The list of publicly documented OAuth scopes that are allowed access. An
145
+ // OAuth token containing any of these scopes will be accepted.
146
+ //
147
+ // Example:
148
+ //
149
+ // canonical_scopes: https://www.googleapis.com/auth/calendar,
150
+ // https://www.googleapis.com/auth/calendar.read
151
+ string canonical_scopes = 1;
152
+ }
153
+
154
+ // User-defined authentication requirements, including support for
155
+ // [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
156
+ message AuthRequirement {
157
+ // [id][google.api.AuthProvider.id] from authentication provider.
158
+ //
159
+ // Example:
160
+ //
161
+ // provider_id: bookstore_auth
162
+ string provider_id = 1;
163
+
164
+ // NOTE: This will be deprecated soon, once AuthProvider.audiences is
165
+ // implemented and accepted in all the runtime components.
166
+ //
167
+ // The list of JWT
168
+ // [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
169
+ // that are allowed to access. A JWT containing any of these audiences will
170
+ // be accepted. When this setting is absent, only JWTs with audience
171
+ // "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]"
172
+ // will be accepted. For example, if no audiences are in the setting,
173
+ // LibraryService API will only accept JWTs with the following audience
174
+ // "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
175
+ //
176
+ // Example:
177
+ //
178
+ // audiences: bookstore_android.apps.googleusercontent.com,
179
+ // bookstore_web.apps.googleusercontent.com
180
+ string audiences = 2;
181
+ }