Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
ca9d1a05
Commit
ca9d1a05
authored
Apr 20, 2015
by
Feng Xiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Include all well-known type protos.
Change-Id: I122f1cee71a8a739ea603e52582cb0fa9698f0ed
parent
4e63b520
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
425 additions
and
21 deletions
+425
-21
any.proto
src/google/protobuf/any.proto
+8
-4
api.proto
src/google/protobuf/api.proto
+104
-0
duration.proto
src/google/protobuf/duration.proto
+5
-5
empty.proto
src/google/protobuf/empty.proto
+49
-0
source_context.proto
src/google/protobuf/source_context.proto
+45
-0
struct.proto
src/google/protobuf/struct.proto
+11
-6
timestamp.proto
src/google/protobuf/timestamp.proto
+7
-6
type.proto
src/google/protobuf/type.proto
+196
-0
No files found.
src/google/protobuf/any.proto
View file @
ca9d1a05
...
...
@@ -40,7 +40,8 @@ option java_package = "com.google.protobuf";
// `Any` contains an arbitrary serialized message along with a URL
// that describes the type of the serialized message.
//
//
// The proto runtimes and/or compiler will eventually
// provide utilities to pack/unpack Any values (projected Q1/15).
//
// # JSON
// The JSON representation of an `Any` value uses the regular
...
...
@@ -76,21 +77,24 @@ message Any {
// For URLs which use the schema `http`, `https`, or no schema, the
// following restrictions and interpretations apply:
//
// * If no schema is provided,
https
is assumed.
// * If no schema is provided,
`https`
is assumed.
// * The last segment of the URL's path must represent the fully
// qualified name of the type (as in `path/google.protobuf.Duration`).
// * An HTTP GET on the URL must yield a [google.protobuf.Type][google.protobuf.Type]
// value in binary format, or produce an error.
// * Applications are allowed to cache lookup results based on the
// URL, or have them precompiled into a binary to avoid any
// lookup. Therefore, binary compatibility need to be preserved
// lookup. Therefore, binary compatibility need
s
to be preserved
// on changes to types. (Use versioned type names to manage
// breaking changes.)
//
// Schemas other than `http`, `https` (or the empty schema) might be
// used with implementation specific semantics.
//
//
// Types originating from the `google.*` package
// namespace should use `type.googleapis.com/full.type.name` (without
// schema and path). A type service will eventually become available which
// serves those URLs (projected Q2/15).
string
type_url
=
1
;
// Must be valid serialized data of the above specified type.
...
...
src/google/protobuf/api.proto
0 → 100644
View file @
ca9d1a05
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax
=
"proto3"
;
package
google
.
protobuf
;
import
"google/protobuf/source_context.proto"
;
import
"google/protobuf/type.proto"
;
option
java_multiple_files
=
true
;
option
java_outer_classname
=
"ApiProto"
;
option
java_package
=
"com.google.protobuf"
;
// Api is a light-weight descriptor for a protocol buffer service.
message
Api
{
// The fully qualified name of this api, including package name
// followed by the api's simple name.
string
name
=
1
;
// The methods of this api, in unspecified order.
repeated
Method
methods
=
2
;
// Any metadata attached to the API.
repeated
Option
options
=
3
;
// A version string for this api. If specified, must have the form
// `major-version.minor-version`, as in `1.10`. If the minor version
// is omitted, it defaults to zero. If the entire version field is
// empty, the major version is derived from the package name, as
// outlined below. If the field is not empty, the version in the
// package name will be verified to be consistent with what is
// provided here.
//
// The versioning schema uses [semantic
// versioning](http://semver.org) where the major version number
// indicates a breaking change and the minor version an additive,
// non-breaking change. Both version numbers are signals to users
// what to expect from different versions, and should be carefully
// chosen based on the product plan.
//
// The major version is also reflected in the package name of the
// API, which must end in `v<major-version>`, as in
// `google.feature.v1`. For major versions 0 and 1, the suffix can
// be omitted. Zero major versions must only be used for
// experimental, none-GA apis.
//
// See also: [design doc](http://go/api-versioning).
//
//
string
version
=
4
;
// Source context for the protocol buffer service represented by this
// message.
SourceContext
source_context
=
5
;
}
// Method represents a method of an api.
message
Method
{
// The simple name of this method.
string
name
=
1
;
// A URL of the input message type.
string
request_type_url
=
2
;
// If true, the request is streamed.
bool
request_streaming
=
3
;
// The URL of the output message type.
string
response_type_url
=
4
;
// If true, the response is streamed.
bool
response_streaming
=
5
;
// Any metadata attached to the method.
repeated
Option
options
=
6
;
}
src/google/protobuf/duration.proto
View file @
ca9d1a05
...
...
@@ -44,7 +44,7 @@ option java_package = "com.google.protobuf";
// two Timestamp values is a Duration and it can be added or subtracted
// from a Timestamp. Range is approximately +-10,000 years.
//
// Example 1:
c
ompute Duration from two Timestamps in pseudo code.
// Example 1:
C
ompute Duration from two Timestamps in pseudo code.
//
// Timestamp start = ...;
// Timestamp end = ...;
...
...
@@ -61,7 +61,7 @@ option java_package = "com.google.protobuf";
// duration.nanos += 1000000000;
// }
//
// Example 2:
c
ompute Timestamp from Timestamp + Duration in pseudo code.
// Example 2:
C
ompute Timestamp from Timestamp + Duration in pseudo code.
//
// Timestamp start = ...;
// Duration duration = ...;
...
...
@@ -85,9 +85,9 @@ message Duration {
// Signed fractions of a second at nanosecond resolution of the span
// of time. Durations less than one second are represented with a 0
//
seconds field and a positive or negative nanos
field. For durations
// of one second or more, a non-zero value for the
nanos
field must be
// of the same sign as the
seconds
field. Must be from -999,999,999
//
`seconds` field and a positive or negative `nanos`
field. For durations
// of one second or more, a non-zero value for the
`nanos`
field must be
// of the same sign as the
`seconds`
field. Must be from -999,999,999
// to +999,999,999 inclusive.
int32
nanos
=
2
;
}
src/google/protobuf/empty.proto
0 → 100644
View file @
ca9d1a05
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax
=
"proto3"
;
package
google
.
protobuf
;
option
java_multiple_files
=
true
;
option
java_outer_classname
=
"EmptyProto"
;
option
java_package
=
"com.google.protobuf"
;
// A generic empty message that you can re-use to avoid defining duplicated
// empty messages in your APIs. A typical example is to use it as the request
// or the response type of an API method. For instance:
//
// service Foo {
// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
// }
//
message
Empty
{
}
src/google/protobuf/source_context.proto
0 → 100644
View file @
ca9d1a05
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax
=
"proto3"
;
package
google
.
protobuf
;
option
java_multiple_files
=
true
;
option
java_outer_classname
=
"SourceContextProto"
;
option
java_package
=
"com.google.protobuf"
;
// `SourceContext` represents information about the source of a
// protobuf element, like the file in which it is defined.
message
SourceContext
{
// The path-qualified name of the .proto file that contained the associated
// protobuf element. For example: `"google/protobuf/source.proto"`.
string
file_name
=
1
;
}
src/google/protobuf/struct.proto
View file @
ca9d1a05
...
...
@@ -56,28 +56,33 @@ message Value {
oneof
kind
{
// Represents a null value.
NullValue
null_value
=
1
;
// Represents a double value.
double
number_value
=
2
;
// Represents a string value.
string
string_value
=
3
;
// Represents a boolean value.
bool
bool_value
=
4
;
// Represents a structured value.
Struct
struct_value
=
5
;
// Represents a repeated `Value`.
ListValue
list_value
=
6
;
}
}
// `ListValue` is a wrapper around a repeated field of values.
message
ListValue
{
// Repeated field of dynamically typed values.
repeated
Value
values
=
1
;
}
// `NullValue` is a singleton enumeration to represent the null
// value for the `Value` type union.
enum
NullValue
{
// Null value.
NULL_VALUE
=
0
;
}
// `ListValue` is a wrapper around a repeated field of values.
message
ListValue
{
// Repeated field of dynamically typed values.
repeated
Value
values
=
1
;
}
src/google/protobuf/timestamp.proto
View file @
ca9d1a05
...
...
@@ -46,15 +46,16 @@ option java_package = "com.google.protobuf";
// table is needed for interpretation. Range is from
// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
// By restricting to that range, we ensure that we can convert to
// and from RFC 3339 date strings. (See https://www.ietf.org/rfc/rfc3339.txt.)
// and from RFC 3339 date strings.
// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
//
// Example 1:
c
ompute Timestamp from POSIX `time()`.
// Example 1:
C
ompute Timestamp from POSIX `time()`.
//
// Timestamp timestamp;
// timestamp.set_seconds(time(NULL));
// timestamp.set_nanos(0);
//
// Example 2:
c
ompute Timestamp from POSIX `gettimeofday()`.
// Example 2:
C
ompute Timestamp from POSIX `gettimeofday()`.
//
// struct timeval tv;
// gettimeofday(&tv, NULL);
...
...
@@ -63,7 +64,7 @@ option java_package = "com.google.protobuf";
// timestamp.set_seconds(tv.tv_sec);
// timestamp.set_nanos(tv.tv_usec * 1000);
//
// Example 3:
c
ompute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
// Example 3:
C
ompute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
//
// FILETIME ft;
// GetSystemTimeAsFileTime(&ft);
...
...
@@ -75,14 +76,14 @@ option java_package = "com.google.protobuf";
// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
//
// Example 4:
c
ompute Timestamp from Java `System.currentTimeMillis()`.
// Example 4:
C
ompute Timestamp from Java `System.currentTimeMillis()`.
//
// long millis = System.currentTimeMillis();
//
// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
// .setNanos((int) ((millis % 1000) * 1000000)).build();
//
// Example 5:
c
ompute Timestamp from Python `datetime.datetime`.
// Example 5:
C
ompute Timestamp from Python `datetime.datetime`.
//
// now = datetime.datetime.utcnow()
// seconds = int(time.mktime(now.timetuple()))
...
...
src/google/protobuf/type.proto
0 → 100644
View file @
ca9d1a05
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
syntax
=
"proto3"
;
package
google
.
protobuf
;
import
"google/protobuf/any.proto"
;
import
"google/protobuf/source_context.proto"
;
option
java_multiple_files
=
true
;
option
java_outer_classname
=
"TypeProto"
;
option
java_package
=
"com.google.protobuf"
;
// A light-weight descriptor for a proto message type.
message
Type
{
// The fully qualified message name.
string
name
=
1
;
// The list of fields.
repeated
Field
fields
=
2
;
// The list of oneof definitions.
// The list of oneofs declared in this Type
repeated
string
oneofs
=
3
;
// The proto options.
repeated
Option
options
=
4
;
// The source context.
SourceContext
source_context
=
5
;
}
// Field represents a single field of a message type.
message
Field
{
// Kind represents a basic field type.
enum
Kind
{
// Field type unknown.
TYPE_UNKNOWN
=
0
;
// Field type double.
TYPE_DOUBLE
=
1
;
// Field type float.
TYPE_FLOAT
=
2
;
// Field type int64.
TYPE_INT64
=
3
;
// Field type uint64.
TYPE_UINT64
=
4
;
// Field type int32.
TYPE_INT32
=
5
;
// Field type fixed64.
TYPE_FIXED64
=
6
;
// Field type fixed32.
TYPE_FIXED32
=
7
;
// Field type bool.
TYPE_BOOL
=
8
;
// Field type string.
TYPE_STRING
=
9
;
// Field type message.
TYPE_MESSAGE
=
11
;
// Field type bytes.
TYPE_BYTES
=
12
;
// Field type uint32.
TYPE_UINT32
=
13
;
// Field type enum.
TYPE_ENUM
=
14
;
// Field type sfixed32.
TYPE_SFIXED32
=
15
;
// Field type sfixed64.
TYPE_SFIXED64
=
16
;
// Field type sint32.
TYPE_SINT32
=
17
;
// Field type sint64.
TYPE_SINT64
=
18
;
}
// Cardinality represents whether a field is optional, required, or
// repeated.
enum
Cardinality
{
// The field cardinality is unknown. Typically an error condition.
CARDINALITY_UNKNOWN
=
0
;
// For optional fields.
CARDINALITY_OPTIONAL
=
1
;
// For required fields. Not used for proto3.
CARDINALITY_REQUIRED
=
2
;
// For repeated fields.
CARDINALITY_REPEATED
=
3
;
}
// The field kind.
Kind
kind
=
1
;
// The field cardinality, i.e. optional/required/repeated.
Cardinality
cardinality
=
2
;
// The proto field number.
int32
number
=
3
;
// The field name.
string
name
=
4
;
// The type URL (without the scheme) when the type is MESSAGE or ENUM,
// such as `type.googleapis.com/google.protobuf.Empty`.
string
type_url
=
6
;
// Index in Type.oneofs. Starts at 1. Zero means no oneof mapping.
int32
oneof_index
=
7
;
// Whether to use alternative packed wire representation.
bool
packed
=
8
;
// The proto options.
repeated
Option
options
=
9
;
}
// Enum type definition.
message
Enum
{
// Enum type name.
string
name
=
1
;
// Enum value definitions.
repeated
EnumValue
enumvalue
=
2
;
// Proto options for the enum type.
repeated
Option
options
=
3
;
// The source context.
SourceContext
source_context
=
4
;
}
// Enum value definition.
message
EnumValue
{
// Enum value name.
string
name
=
1
;
// Enum value number.
int32
number
=
2
;
// Proto options for the enum value.
repeated
Option
options
=
3
;
}
// Proto option attached to messages/fields/enums etc.
message
Option
{
// Proto option name.
string
name
=
1
;
// Proto option value.
Any
value
=
2
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment