grpc-tools 1.30.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +12 -0
- data/bin/grpc_tools_ruby_protoc +33 -0
- data/bin/grpc_tools_ruby_protoc_plugin +26 -0
- data/bin/x86-linux/google/protobuf/any.proto +155 -0
- data/bin/x86-linux/google/protobuf/api.proto +210 -0
- data/bin/x86-linux/google/protobuf/compiler/plugin.proto +178 -0
- data/bin/x86-linux/google/protobuf/descriptor.proto +909 -0
- data/bin/x86-linux/google/protobuf/duration.proto +116 -0
- data/bin/x86-linux/google/protobuf/empty.proto +52 -0
- data/bin/x86-linux/google/protobuf/field_mask.proto +245 -0
- data/bin/x86-linux/google/protobuf/source_context.proto +48 -0
- data/bin/x86-linux/google/protobuf/struct.proto +95 -0
- data/bin/x86-linux/google/protobuf/timestamp.proto +138 -0
- data/bin/x86-linux/google/protobuf/type.proto +187 -0
- data/bin/x86-linux/google/protobuf/wrappers.proto +123 -0
- data/bin/x86-linux/grpc_ruby_plugin +0 -0
- data/bin/x86-linux/protoc +0 -0
- data/bin/x86-macos/google/protobuf/any.proto +155 -0
- data/bin/x86-macos/google/protobuf/api.proto +210 -0
- data/bin/x86-macos/google/protobuf/compiler/plugin.proto +178 -0
- data/bin/x86-macos/google/protobuf/descriptor.proto +909 -0
- data/bin/x86-macos/google/protobuf/duration.proto +116 -0
- data/bin/x86-macos/google/protobuf/empty.proto +52 -0
- data/bin/x86-macos/google/protobuf/field_mask.proto +245 -0
- data/bin/x86-macos/google/protobuf/source_context.proto +48 -0
- data/bin/x86-macos/google/protobuf/struct.proto +95 -0
- data/bin/x86-macos/google/protobuf/timestamp.proto +138 -0
- data/bin/x86-macos/google/protobuf/type.proto +187 -0
- data/bin/x86-macos/google/protobuf/wrappers.proto +123 -0
- data/bin/x86-macos/grpc_ruby_plugin +0 -0
- data/bin/x86-macos/protoc +0 -0
- data/bin/x86-windows/google/protobuf/any.proto +155 -0
- data/bin/x86-windows/google/protobuf/api.proto +210 -0
- data/bin/x86-windows/google/protobuf/compiler/plugin.proto +178 -0
- data/bin/x86-windows/google/protobuf/descriptor.proto +909 -0
- data/bin/x86-windows/google/protobuf/duration.proto +116 -0
- data/bin/x86-windows/google/protobuf/empty.proto +52 -0
- data/bin/x86-windows/google/protobuf/field_mask.proto +245 -0
- data/bin/x86-windows/google/protobuf/source_context.proto +48 -0
- data/bin/x86-windows/google/protobuf/struct.proto +95 -0
- data/bin/x86-windows/google/protobuf/timestamp.proto +138 -0
- data/bin/x86-windows/google/protobuf/type.proto +187 -0
- data/bin/x86-windows/google/protobuf/wrappers.proto +123 -0
- data/bin/x86-windows/grpc_ruby_plugin.exe +0 -0
- data/bin/x86-windows/protoc.exe +0 -0
- data/bin/x86_64-linux/google/protobuf/any.proto +155 -0
- data/bin/x86_64-linux/google/protobuf/api.proto +210 -0
- data/bin/x86_64-linux/google/protobuf/compiler/plugin.proto +178 -0
- data/bin/x86_64-linux/google/protobuf/descriptor.proto +909 -0
- data/bin/x86_64-linux/google/protobuf/duration.proto +116 -0
- data/bin/x86_64-linux/google/protobuf/empty.proto +52 -0
- data/bin/x86_64-linux/google/protobuf/field_mask.proto +245 -0
- data/bin/x86_64-linux/google/protobuf/source_context.proto +48 -0
- data/bin/x86_64-linux/google/protobuf/struct.proto +95 -0
- data/bin/x86_64-linux/google/protobuf/timestamp.proto +138 -0
- data/bin/x86_64-linux/google/protobuf/type.proto +187 -0
- data/bin/x86_64-linux/google/protobuf/wrappers.proto +123 -0
- data/bin/x86_64-linux/grpc_ruby_plugin +0 -0
- data/bin/x86_64-linux/protoc +0 -0
- data/bin/x86_64-macos/google/protobuf/any.proto +155 -0
- data/bin/x86_64-macos/google/protobuf/api.proto +210 -0
- data/bin/x86_64-macos/google/protobuf/compiler/plugin.proto +178 -0
- data/bin/x86_64-macos/google/protobuf/descriptor.proto +909 -0
- data/bin/x86_64-macos/google/protobuf/duration.proto +116 -0
- data/bin/x86_64-macos/google/protobuf/empty.proto +52 -0
- data/bin/x86_64-macos/google/protobuf/field_mask.proto +245 -0
- data/bin/x86_64-macos/google/protobuf/source_context.proto +48 -0
- data/bin/x86_64-macos/google/protobuf/struct.proto +95 -0
- data/bin/x86_64-macos/google/protobuf/timestamp.proto +138 -0
- data/bin/x86_64-macos/google/protobuf/type.proto +187 -0
- data/bin/x86_64-macos/google/protobuf/wrappers.proto +123 -0
- data/bin/x86_64-macos/grpc_ruby_plugin +0 -0
- data/bin/x86_64-macos/protoc +0 -0
- data/bin/x86_64-windows/google/protobuf/any.proto +155 -0
- data/bin/x86_64-windows/google/protobuf/api.proto +210 -0
- data/bin/x86_64-windows/google/protobuf/compiler/plugin.proto +178 -0
- data/bin/x86_64-windows/google/protobuf/descriptor.proto +909 -0
- data/bin/x86_64-windows/google/protobuf/duration.proto +116 -0
- data/bin/x86_64-windows/google/protobuf/empty.proto +52 -0
- data/bin/x86_64-windows/google/protobuf/field_mask.proto +245 -0
- data/bin/x86_64-windows/google/protobuf/source_context.proto +48 -0
- data/bin/x86_64-windows/google/protobuf/struct.proto +95 -0
- data/bin/x86_64-windows/google/protobuf/timestamp.proto +138 -0
- data/bin/x86_64-windows/google/protobuf/type.proto +187 -0
- data/bin/x86_64-windows/google/protobuf/wrappers.proto +123 -0
- data/bin/x86_64-windows/grpc_ruby_plugin.exe +0 -0
- data/bin/x86_64-windows/protoc.exe +0 -0
- data/platform_check.rb +39 -0
- data/version.rb +19 -0
- metadata +133 -0
checksums.yaml
ADDED
@@ -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
|
data/README.md
ADDED
@@ -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
|
+
}
|