grpc-tools 1.30.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +12 -0
  3. data/bin/grpc_tools_ruby_protoc +33 -0
  4. data/bin/grpc_tools_ruby_protoc_plugin +26 -0
  5. data/bin/x86-linux/google/protobuf/any.proto +155 -0
  6. data/bin/x86-linux/google/protobuf/api.proto +210 -0
  7. data/bin/x86-linux/google/protobuf/compiler/plugin.proto +178 -0
  8. data/bin/x86-linux/google/protobuf/descriptor.proto +909 -0
  9. data/bin/x86-linux/google/protobuf/duration.proto +116 -0
  10. data/bin/x86-linux/google/protobuf/empty.proto +52 -0
  11. data/bin/x86-linux/google/protobuf/field_mask.proto +245 -0
  12. data/bin/x86-linux/google/protobuf/source_context.proto +48 -0
  13. data/bin/x86-linux/google/protobuf/struct.proto +95 -0
  14. data/bin/x86-linux/google/protobuf/timestamp.proto +138 -0
  15. data/bin/x86-linux/google/protobuf/type.proto +187 -0
  16. data/bin/x86-linux/google/protobuf/wrappers.proto +123 -0
  17. data/bin/x86-linux/grpc_ruby_plugin +0 -0
  18. data/bin/x86-linux/protoc +0 -0
  19. data/bin/x86-macos/google/protobuf/any.proto +155 -0
  20. data/bin/x86-macos/google/protobuf/api.proto +210 -0
  21. data/bin/x86-macos/google/protobuf/compiler/plugin.proto +178 -0
  22. data/bin/x86-macos/google/protobuf/descriptor.proto +909 -0
  23. data/bin/x86-macos/google/protobuf/duration.proto +116 -0
  24. data/bin/x86-macos/google/protobuf/empty.proto +52 -0
  25. data/bin/x86-macos/google/protobuf/field_mask.proto +245 -0
  26. data/bin/x86-macos/google/protobuf/source_context.proto +48 -0
  27. data/bin/x86-macos/google/protobuf/struct.proto +95 -0
  28. data/bin/x86-macos/google/protobuf/timestamp.proto +138 -0
  29. data/bin/x86-macos/google/protobuf/type.proto +187 -0
  30. data/bin/x86-macos/google/protobuf/wrappers.proto +123 -0
  31. data/bin/x86-macos/grpc_ruby_plugin +0 -0
  32. data/bin/x86-macos/protoc +0 -0
  33. data/bin/x86-windows/google/protobuf/any.proto +155 -0
  34. data/bin/x86-windows/google/protobuf/api.proto +210 -0
  35. data/bin/x86-windows/google/protobuf/compiler/plugin.proto +178 -0
  36. data/bin/x86-windows/google/protobuf/descriptor.proto +909 -0
  37. data/bin/x86-windows/google/protobuf/duration.proto +116 -0
  38. data/bin/x86-windows/google/protobuf/empty.proto +52 -0
  39. data/bin/x86-windows/google/protobuf/field_mask.proto +245 -0
  40. data/bin/x86-windows/google/protobuf/source_context.proto +48 -0
  41. data/bin/x86-windows/google/protobuf/struct.proto +95 -0
  42. data/bin/x86-windows/google/protobuf/timestamp.proto +138 -0
  43. data/bin/x86-windows/google/protobuf/type.proto +187 -0
  44. data/bin/x86-windows/google/protobuf/wrappers.proto +123 -0
  45. data/bin/x86-windows/grpc_ruby_plugin.exe +0 -0
  46. data/bin/x86-windows/protoc.exe +0 -0
  47. data/bin/x86_64-linux/google/protobuf/any.proto +155 -0
  48. data/bin/x86_64-linux/google/protobuf/api.proto +210 -0
  49. data/bin/x86_64-linux/google/protobuf/compiler/plugin.proto +178 -0
  50. data/bin/x86_64-linux/google/protobuf/descriptor.proto +909 -0
  51. data/bin/x86_64-linux/google/protobuf/duration.proto +116 -0
  52. data/bin/x86_64-linux/google/protobuf/empty.proto +52 -0
  53. data/bin/x86_64-linux/google/protobuf/field_mask.proto +245 -0
  54. data/bin/x86_64-linux/google/protobuf/source_context.proto +48 -0
  55. data/bin/x86_64-linux/google/protobuf/struct.proto +95 -0
  56. data/bin/x86_64-linux/google/protobuf/timestamp.proto +138 -0
  57. data/bin/x86_64-linux/google/protobuf/type.proto +187 -0
  58. data/bin/x86_64-linux/google/protobuf/wrappers.proto +123 -0
  59. data/bin/x86_64-linux/grpc_ruby_plugin +0 -0
  60. data/bin/x86_64-linux/protoc +0 -0
  61. data/bin/x86_64-macos/google/protobuf/any.proto +155 -0
  62. data/bin/x86_64-macos/google/protobuf/api.proto +210 -0
  63. data/bin/x86_64-macos/google/protobuf/compiler/plugin.proto +178 -0
  64. data/bin/x86_64-macos/google/protobuf/descriptor.proto +909 -0
  65. data/bin/x86_64-macos/google/protobuf/duration.proto +116 -0
  66. data/bin/x86_64-macos/google/protobuf/empty.proto +52 -0
  67. data/bin/x86_64-macos/google/protobuf/field_mask.proto +245 -0
  68. data/bin/x86_64-macos/google/protobuf/source_context.proto +48 -0
  69. data/bin/x86_64-macos/google/protobuf/struct.proto +95 -0
  70. data/bin/x86_64-macos/google/protobuf/timestamp.proto +138 -0
  71. data/bin/x86_64-macos/google/protobuf/type.proto +187 -0
  72. data/bin/x86_64-macos/google/protobuf/wrappers.proto +123 -0
  73. data/bin/x86_64-macos/grpc_ruby_plugin +0 -0
  74. data/bin/x86_64-macos/protoc +0 -0
  75. data/bin/x86_64-windows/google/protobuf/any.proto +155 -0
  76. data/bin/x86_64-windows/google/protobuf/api.proto +210 -0
  77. data/bin/x86_64-windows/google/protobuf/compiler/plugin.proto +178 -0
  78. data/bin/x86_64-windows/google/protobuf/descriptor.proto +909 -0
  79. data/bin/x86_64-windows/google/protobuf/duration.proto +116 -0
  80. data/bin/x86_64-windows/google/protobuf/empty.proto +52 -0
  81. data/bin/x86_64-windows/google/protobuf/field_mask.proto +245 -0
  82. data/bin/x86_64-windows/google/protobuf/source_context.proto +48 -0
  83. data/bin/x86_64-windows/google/protobuf/struct.proto +95 -0
  84. data/bin/x86_64-windows/google/protobuf/timestamp.proto +138 -0
  85. data/bin/x86_64-windows/google/protobuf/type.proto +187 -0
  86. data/bin/x86_64-windows/google/protobuf/wrappers.proto +123 -0
  87. data/bin/x86_64-windows/grpc_ruby_plugin.exe +0 -0
  88. data/bin/x86_64-windows/protoc.exe +0 -0
  89. data/platform_check.rb +39 -0
  90. data/version.rb +19 -0
  91. metadata +133 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 8d0dcc7c15164b08b081dc55468266ef031aaf2110c9a382b178e52585d3b956
4
+ data.tar.gz: 7d8d06433cb786f3a4a97d2a8349b40abaccf8f0a13fb00133306b7f50ca4594
5
+ SHA512:
6
+ metadata.gz: 19d030671569989f5a474b52d04c721a518bcfde3f3eefcc268195f64574d75ce5758acac9bcc725d2d62544755f7405c9291fb74e5ba039443874ca9a938945
7
+ data.tar.gz: c80a36812030ae45f207acfb03be3b234522cdf5b661d5cd3d7f181cb0838edf2b026af279315debbf2abab1701e33de37f43b6951840209f6faa8651819b197
@@ -0,0 +1,12 @@
1
+ # Ruby gRPC Tools
2
+
3
+ This package distributes protoc and the Ruby gRPC protoc plugin for Windows, Linux, and Mac.
4
+
5
+ Before this package is published, the following directories should be filled with the corresponding `protoc` and `grpc_ruby_plugin` executables.
6
+
7
+ - `bin/x86-linux`
8
+ - `bin/x86_64-linux`
9
+ - `bin/x86-macos`
10
+ - `bin/x86_64-macos`
11
+ - `bin/x86-windows`
12
+ - `bin/x86_64-windows`
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ # Copyright 2016 gRPC authors.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ require 'rbconfig'
17
+
18
+ require_relative '../platform_check'
19
+
20
+ ext = RbConfig::CONFIG['EXEEXT']
21
+
22
+ protoc_name = 'protoc' + ext
23
+
24
+ plugin_name = 'grpc_ruby_plugin' + ext
25
+
26
+ protoc_dir = File.join(File.dirname(__FILE__),
27
+ PLATFORM.architecture + '-' + PLATFORM.os_name)
28
+
29
+ protoc_path = File.join(protoc_dir, protoc_name)
30
+
31
+ plugin_path = File.join(protoc_dir, plugin_name)
32
+
33
+ exec([ protoc_path, protoc_path ], "--plugin=protoc-gen-grpc=#{plugin_path}", *ARGV)
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+ # Copyright 2016 gRPC authors.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ require 'rbconfig'
17
+
18
+ require_relative '../platform_check'
19
+
20
+ plugin_name = 'grpc_ruby_plugin' + RbConfig::CONFIG['EXEEXT']
21
+
22
+ plugin_path = File.join(File.dirname(__FILE__),
23
+ PLATFORM.architecture + '-' + PLATFORM.os_name,
24
+ plugin_name)
25
+
26
+ exec([ plugin_path, plugin_path ], *ARGV)
@@ -0,0 +1,155 @@
1
+ // Protocol Buffers - Google's data interchange format
2
+ // Copyright 2008 Google Inc. All rights reserved.
3
+ // https://developers.google.com/protocol-buffers/
4
+ //
5
+ // Redistribution and use in source and binary forms, with or without
6
+ // modification, are permitted provided that the following conditions are
7
+ // met:
8
+ //
9
+ // * Redistributions of source code must retain the above copyright
10
+ // notice, this list of conditions and the following disclaimer.
11
+ // * Redistributions in binary form must reproduce the above
12
+ // copyright notice, this list of conditions and the following disclaimer
13
+ // in the documentation and/or other materials provided with the
14
+ // distribution.
15
+ // * Neither the name of Google Inc. nor the names of its
16
+ // contributors may be used to endorse or promote products derived from
17
+ // this software without specific prior written permission.
18
+ //
19
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+
31
+ syntax = "proto3";
32
+
33
+ package google.protobuf;
34
+
35
+ option csharp_namespace = "Google.Protobuf.WellKnownTypes";
36
+ option go_package = "github.com/golang/protobuf/ptypes/any";
37
+ option java_package = "com.google.protobuf";
38
+ option java_outer_classname = "AnyProto";
39
+ option java_multiple_files = true;
40
+ option objc_class_prefix = "GPB";
41
+
42
+ // `Any` contains an arbitrary serialized protocol buffer message along with a
43
+ // URL that describes the type of the serialized message.
44
+ //
45
+ // Protobuf library provides support to pack/unpack Any values in the form
46
+ // of utility functions or additional generated methods of the Any type.
47
+ //
48
+ // Example 1: Pack and unpack a message in C++.
49
+ //
50
+ // Foo foo = ...;
51
+ // Any any;
52
+ // any.PackFrom(foo);
53
+ // ...
54
+ // if (any.UnpackTo(&foo)) {
55
+ // ...
56
+ // }
57
+ //
58
+ // Example 2: Pack and unpack a message in Java.
59
+ //
60
+ // Foo foo = ...;
61
+ // Any any = Any.pack(foo);
62
+ // ...
63
+ // if (any.is(Foo.class)) {
64
+ // foo = any.unpack(Foo.class);
65
+ // }
66
+ //
67
+ // Example 3: Pack and unpack a message in Python.
68
+ //
69
+ // foo = Foo(...)
70
+ // any = Any()
71
+ // any.Pack(foo)
72
+ // ...
73
+ // if any.Is(Foo.DESCRIPTOR):
74
+ // any.Unpack(foo)
75
+ // ...
76
+ //
77
+ // Example 4: Pack and unpack a message in Go
78
+ //
79
+ // foo := &pb.Foo{...}
80
+ // any, err := ptypes.MarshalAny(foo)
81
+ // ...
82
+ // foo := &pb.Foo{}
83
+ // if err := ptypes.UnmarshalAny(any, foo); err != nil {
84
+ // ...
85
+ // }
86
+ //
87
+ // The pack methods provided by protobuf library will by default use
88
+ // 'type.googleapis.com/full.type.name' as the type URL and the unpack
89
+ // methods only use the fully qualified type name after the last '/'
90
+ // in the type URL, for example "foo.bar.com/x/y.z" will yield type
91
+ // name "y.z".
92
+ //
93
+ //
94
+ // JSON
95
+ // ====
96
+ // The JSON representation of an `Any` value uses the regular
97
+ // representation of the deserialized, embedded message, with an
98
+ // additional field `@type` which contains the type URL. Example:
99
+ //
100
+ // package google.profile;
101
+ // message Person {
102
+ // string first_name = 1;
103
+ // string last_name = 2;
104
+ // }
105
+ //
106
+ // {
107
+ // "@type": "type.googleapis.com/google.profile.Person",
108
+ // "firstName": <string>,
109
+ // "lastName": <string>
110
+ // }
111
+ //
112
+ // If the embedded message type is well-known and has a custom JSON
113
+ // representation, that representation will be embedded adding a field
114
+ // `value` which holds the custom JSON in addition to the `@type`
115
+ // field. Example (for message [google.protobuf.Duration][]):
116
+ //
117
+ // {
118
+ // "@type": "type.googleapis.com/google.protobuf.Duration",
119
+ // "value": "1.212s"
120
+ // }
121
+ //
122
+ message Any {
123
+ // A URL/resource name that uniquely identifies the type of the serialized
124
+ // protocol buffer message. This string must contain at least
125
+ // one "/" character. The last segment of the URL's path must represent
126
+ // the fully qualified name of the type (as in
127
+ // `path/google.protobuf.Duration`). The name should be in a canonical form
128
+ // (e.g., leading "." is not accepted).
129
+ //
130
+ // In practice, teams usually precompile into the binary all types that they
131
+ // expect it to use in the context of Any. However, for URLs which use the
132
+ // scheme `http`, `https`, or no scheme, one can optionally set up a type
133
+ // server that maps type URLs to message definitions as follows:
134
+ //
135
+ // * If no scheme is provided, `https` is assumed.
136
+ // * An HTTP GET on the URL must yield a [google.protobuf.Type][]
137
+ // value in binary format, or produce an error.
138
+ // * Applications are allowed to cache lookup results based on the
139
+ // URL, or have them precompiled into a binary to avoid any
140
+ // lookup. Therefore, binary compatibility needs to be preserved
141
+ // on changes to types. (Use versioned type names to manage
142
+ // breaking changes.)
143
+ //
144
+ // Note: this functionality is not currently available in the official
145
+ // protobuf release, and it is not used for type URLs beginning with
146
+ // type.googleapis.com.
147
+ //
148
+ // Schemes other than `http`, `https` (or the empty scheme) might be
149
+ // used with implementation specific semantics.
150
+ //
151
+ string type_url = 1;
152
+
153
+ // Must be a valid serialized protocol buffer of the above specified type.
154
+ bytes value = 2;
155
+ }
@@ -0,0 +1,210 @@
1
+ // Protocol Buffers - Google's data interchange format
2
+ // Copyright 2008 Google Inc. All rights reserved.
3
+ // https://developers.google.com/protocol-buffers/
4
+ //
5
+ // Redistribution and use in source and binary forms, with or without
6
+ // modification, are permitted provided that the following conditions are
7
+ // met:
8
+ //
9
+ // * Redistributions of source code must retain the above copyright
10
+ // notice, this list of conditions and the following disclaimer.
11
+ // * Redistributions in binary form must reproduce the above
12
+ // copyright notice, this list of conditions and the following disclaimer
13
+ // in the documentation and/or other materials provided with the
14
+ // distribution.
15
+ // * Neither the name of Google Inc. nor the names of its
16
+ // contributors may be used to endorse or promote products derived from
17
+ // this software without specific prior written permission.
18
+ //
19
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+
31
+ syntax = "proto3";
32
+
33
+ package google.protobuf;
34
+
35
+ import "google/protobuf/source_context.proto";
36
+ import "google/protobuf/type.proto";
37
+
38
+ option csharp_namespace = "Google.Protobuf.WellKnownTypes";
39
+ option java_package = "com.google.protobuf";
40
+ option java_outer_classname = "ApiProto";
41
+ option java_multiple_files = true;
42
+ option objc_class_prefix = "GPB";
43
+ option go_package = "google.golang.org/genproto/protobuf/api;api";
44
+
45
+ // Api is a light-weight descriptor for an API Interface.
46
+ //
47
+ // Interfaces are also described as "protocol buffer services" in some contexts,
48
+ // such as by the "service" keyword in a .proto file, but they are different
49
+ // from API Services, which represent a concrete implementation of an interface
50
+ // as opposed to simply a description of methods and bindings. They are also
51
+ // sometimes simply referred to as "APIs" in other contexts, such as the name of
52
+ // this message itself. See https://cloud.google.com/apis/design/glossary for
53
+ // detailed terminology.
54
+ message Api {
55
+
56
+ // The fully qualified name of this interface, including package name
57
+ // followed by the interface's simple name.
58
+ string name = 1;
59
+
60
+ // The methods of this interface, in unspecified order.
61
+ repeated Method methods = 2;
62
+
63
+ // Any metadata attached to the interface.
64
+ repeated Option options = 3;
65
+
66
+ // A version string for this interface. If specified, must have the form
67
+ // `major-version.minor-version`, as in `1.10`. If the minor version is
68
+ // omitted, it defaults to zero. If the entire version field is empty, the
69
+ // major version is derived from the package name, as outlined below. If the
70
+ // field is not empty, the version in the package name will be verified to be
71
+ // consistent with what is provided here.
72
+ //
73
+ // The versioning schema uses [semantic
74
+ // versioning](http://semver.org) where the major version number
75
+ // indicates a breaking change and the minor version an additive,
76
+ // non-breaking change. Both version numbers are signals to users
77
+ // what to expect from different versions, and should be carefully
78
+ // chosen based on the product plan.
79
+ //
80
+ // The major version is also reflected in the package name of the
81
+ // interface, which must end in `v<major-version>`, as in
82
+ // `google.feature.v1`. For major versions 0 and 1, the suffix can
83
+ // be omitted. Zero major versions must only be used for
84
+ // experimental, non-GA interfaces.
85
+ //
86
+ //
87
+ string version = 4;
88
+
89
+ // Source context for the protocol buffer service represented by this
90
+ // message.
91
+ SourceContext source_context = 5;
92
+
93
+ // Included interfaces. See [Mixin][].
94
+ repeated Mixin mixins = 6;
95
+
96
+ // The source syntax of the service.
97
+ Syntax syntax = 7;
98
+ }
99
+
100
+ // Method represents a method of an API interface.
101
+ message Method {
102
+
103
+ // The simple name of this method.
104
+ string name = 1;
105
+
106
+ // A URL of the input message type.
107
+ string request_type_url = 2;
108
+
109
+ // If true, the request is streamed.
110
+ bool request_streaming = 3;
111
+
112
+ // The URL of the output message type.
113
+ string response_type_url = 4;
114
+
115
+ // If true, the response is streamed.
116
+ bool response_streaming = 5;
117
+
118
+ // Any metadata attached to the method.
119
+ repeated Option options = 6;
120
+
121
+ // The source syntax of this method.
122
+ Syntax syntax = 7;
123
+ }
124
+
125
+ // Declares an API Interface to be included in this interface. The including
126
+ // interface must redeclare all the methods from the included interface, but
127
+ // documentation and options are inherited as follows:
128
+ //
129
+ // - If after comment and whitespace stripping, the documentation
130
+ // string of the redeclared method is empty, it will be inherited
131
+ // from the original method.
132
+ //
133
+ // - Each annotation belonging to the service config (http,
134
+ // visibility) which is not set in the redeclared method will be
135
+ // inherited.
136
+ //
137
+ // - If an http annotation is inherited, the path pattern will be
138
+ // modified as follows. Any version prefix will be replaced by the
139
+ // version of the including interface plus the [root][] path if
140
+ // specified.
141
+ //
142
+ // Example of a simple mixin:
143
+ //
144
+ // package google.acl.v1;
145
+ // service AccessControl {
146
+ // // Get the underlying ACL object.
147
+ // rpc GetAcl(GetAclRequest) returns (Acl) {
148
+ // option (google.api.http).get = "/v1/{resource=**}:getAcl";
149
+ // }
150
+ // }
151
+ //
152
+ // package google.storage.v2;
153
+ // service Storage {
154
+ // rpc GetAcl(GetAclRequest) returns (Acl);
155
+ //
156
+ // // Get a data record.
157
+ // rpc GetData(GetDataRequest) returns (Data) {
158
+ // option (google.api.http).get = "/v2/{resource=**}";
159
+ // }
160
+ // }
161
+ //
162
+ // Example of a mixin configuration:
163
+ //
164
+ // apis:
165
+ // - name: google.storage.v2.Storage
166
+ // mixins:
167
+ // - name: google.acl.v1.AccessControl
168
+ //
169
+ // The mixin construct implies that all methods in `AccessControl` are
170
+ // also declared with same name and request/response types in
171
+ // `Storage`. A documentation generator or annotation processor will
172
+ // see the effective `Storage.GetAcl` method after inherting
173
+ // documentation and annotations as follows:
174
+ //
175
+ // service Storage {
176
+ // // Get the underlying ACL object.
177
+ // rpc GetAcl(GetAclRequest) returns (Acl) {
178
+ // option (google.api.http).get = "/v2/{resource=**}:getAcl";
179
+ // }
180
+ // ...
181
+ // }
182
+ //
183
+ // Note how the version in the path pattern changed from `v1` to `v2`.
184
+ //
185
+ // If the `root` field in the mixin is specified, it should be a
186
+ // relative path under which inherited HTTP paths are placed. Example:
187
+ //
188
+ // apis:
189
+ // - name: google.storage.v2.Storage
190
+ // mixins:
191
+ // - name: google.acl.v1.AccessControl
192
+ // root: acls
193
+ //
194
+ // This implies the following inherited HTTP annotation:
195
+ //
196
+ // service Storage {
197
+ // // Get the underlying ACL object.
198
+ // rpc GetAcl(GetAclRequest) returns (Acl) {
199
+ // option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
200
+ // }
201
+ // ...
202
+ // }
203
+ message Mixin {
204
+ // The fully qualified name of the interface which is included.
205
+ string name = 1;
206
+
207
+ // If non-empty specifies a path under which inherited HTTP paths
208
+ // are rooted.
209
+ string root = 2;
210
+ }