google-cloud-firestore 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +8 -0
  3. data/LICENSE +201 -0
  4. data/README.md +30 -0
  5. data/lib/google-cloud-firestore.rb +106 -0
  6. data/lib/google/cloud/firestore.rb +514 -0
  7. data/lib/google/cloud/firestore/batch.rb +462 -0
  8. data/lib/google/cloud/firestore/client.rb +449 -0
  9. data/lib/google/cloud/firestore/collection_reference.rb +249 -0
  10. data/lib/google/cloud/firestore/commit_response.rb +145 -0
  11. data/lib/google/cloud/firestore/convert.rb +561 -0
  12. data/lib/google/cloud/firestore/credentials.rb +35 -0
  13. data/lib/google/cloud/firestore/document_reference.rb +468 -0
  14. data/lib/google/cloud/firestore/document_snapshot.rb +324 -0
  15. data/lib/google/cloud/firestore/field_path.rb +216 -0
  16. data/lib/google/cloud/firestore/field_value.rb +113 -0
  17. data/lib/google/cloud/firestore/generate.rb +35 -0
  18. data/lib/google/cloud/firestore/query.rb +651 -0
  19. data/lib/google/cloud/firestore/service.rb +176 -0
  20. data/lib/google/cloud/firestore/transaction.rb +726 -0
  21. data/lib/google/cloud/firestore/v1beta1.rb +121 -0
  22. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/common.rb +63 -0
  23. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/document.rb +134 -0
  24. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/firestore.rb +584 -0
  25. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/query.rb +215 -0
  26. data/lib/google/cloud/firestore/v1beta1/doc/google/firestore/v1beta1/write.rb +167 -0
  27. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/any.rb +124 -0
  28. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/timestamp.rb +106 -0
  29. data/lib/google/cloud/firestore/v1beta1/doc/google/protobuf/wrappers.rb +89 -0
  30. data/lib/google/cloud/firestore/v1beta1/doc/google/rpc/status.rb +83 -0
  31. data/lib/google/cloud/firestore/v1beta1/doc/overview.rb +53 -0
  32. data/lib/google/cloud/firestore/v1beta1/firestore_client.rb +974 -0
  33. data/lib/google/cloud/firestore/v1beta1/firestore_client_config.json +100 -0
  34. data/lib/google/cloud/firestore/version.rb +22 -0
  35. data/lib/google/firestore/v1beta1/common_pb.rb +44 -0
  36. data/lib/google/firestore/v1beta1/document_pb.rb +49 -0
  37. data/lib/google/firestore/v1beta1/firestore_pb.rb +219 -0
  38. data/lib/google/firestore/v1beta1/firestore_services_pb.rb +87 -0
  39. data/lib/google/firestore/v1beta1/query_pb.rb +103 -0
  40. data/lib/google/firestore/v1beta1/write_pb.rb +73 -0
  41. metadata +251 -0
@@ -0,0 +1,215 @@
1
+ # Copyright 2017 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
+ # https://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
+ module Google
16
+ module Firestore
17
+ module V1beta1
18
+ # A Firestore query.
19
+ # @!attribute [rw] select
20
+ # @return [Google::Firestore::V1beta1::StructuredQuery::Projection]
21
+ # The projection to return.
22
+ # @!attribute [rw] from
23
+ # @return [Array<Google::Firestore::V1beta1::StructuredQuery::CollectionSelector>]
24
+ # The collections to query.
25
+ # @!attribute [rw] where
26
+ # @return [Google::Firestore::V1beta1::StructuredQuery::Filter]
27
+ # The filter to apply.
28
+ # @!attribute [rw] order_by
29
+ # @return [Array<Google::Firestore::V1beta1::StructuredQuery::Order>]
30
+ # The order to apply to the query results.
31
+ #
32
+ # Firestore guarantees a stable ordering through the following rules:
33
+ #
34
+ # * Any field required to appear in +order_by+, that is not already
35
+ # specified in +order_by+, is appended to the order in field name order
36
+ # by default.
37
+ # * If an order on +__name__+ is not specified, it is appended by default.
38
+ #
39
+ # Fields are appended with the same sort direction as the last order
40
+ # specified, or 'ASCENDING' if no order was specified. For example:
41
+ #
42
+ # * +SELECT * FROM Foo ORDER BY A+ becomes
43
+ # +SELECT * FROM Foo ORDER BY A, __name__+
44
+ # * +SELECT * FROM Foo ORDER BY A DESC+ becomes
45
+ # +SELECT * FROM Foo ORDER BY A DESC, __name__ DESC+
46
+ # * +SELECT * FROM Foo WHERE A > 1+ becomes
47
+ # +SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__+
48
+ # @!attribute [rw] start_at
49
+ # @return [Google::Firestore::V1beta1::Cursor]
50
+ # A starting point for the query results.
51
+ # @!attribute [rw] end_at
52
+ # @return [Google::Firestore::V1beta1::Cursor]
53
+ # A end point for the query results.
54
+ # @!attribute [rw] offset
55
+ # @return [Integer]
56
+ # The number of results to skip.
57
+ #
58
+ # Applies before limit, but after all other constraints. Must be >= 0 if
59
+ # specified.
60
+ # @!attribute [rw] limit
61
+ # @return [Google::Protobuf::Int32Value]
62
+ # The maximum number of results to return.
63
+ #
64
+ # Applies after all other constraints.
65
+ # Must be >= 0 if specified.
66
+ class StructuredQuery
67
+ # A selection of a collection, such as +messages as m1+.
68
+ # @!attribute [rw] collection_id
69
+ # @return [String]
70
+ # The collection ID.
71
+ # When set, selects only collections with this ID.
72
+ # @!attribute [rw] all_descendants
73
+ # @return [true, false]
74
+ # When false, selects only collections that are immediate children of
75
+ # the +parent+ specified in the containing +RunQueryRequest+.
76
+ # When true, selects all descendant collections.
77
+ class CollectionSelector; end
78
+
79
+ # A filter.
80
+ # @!attribute [rw] composite_filter
81
+ # @return [Google::Firestore::V1beta1::StructuredQuery::CompositeFilter]
82
+ # A composite filter.
83
+ # @!attribute [rw] field_filter
84
+ # @return [Google::Firestore::V1beta1::StructuredQuery::FieldFilter]
85
+ # A filter on a document field.
86
+ # @!attribute [rw] unary_filter
87
+ # @return [Google::Firestore::V1beta1::StructuredQuery::UnaryFilter]
88
+ # A filter that takes exactly one argument.
89
+ class Filter; end
90
+
91
+ # A filter that merges multiple other filters using the given operator.
92
+ # @!attribute [rw] op
93
+ # @return [Google::Firestore::V1beta1::StructuredQuery::CompositeFilter::Operator]
94
+ # The operator for combining multiple filters.
95
+ # @!attribute [rw] filters
96
+ # @return [Array<Google::Firestore::V1beta1::StructuredQuery::Filter>]
97
+ # The list of filters to combine.
98
+ # Must contain at least one filter.
99
+ class CompositeFilter
100
+ # A composite filter operator.
101
+ module Operator
102
+ # Unspecified. This value must not be used.
103
+ OPERATOR_UNSPECIFIED = 0
104
+
105
+ # The results are required to satisfy each of the combined filters.
106
+ AND = 1
107
+ end
108
+ end
109
+
110
+ # A filter on a specific field.
111
+ # @!attribute [rw] field
112
+ # @return [Google::Firestore::V1beta1::StructuredQuery::FieldReference]
113
+ # The field to filter by.
114
+ # @!attribute [rw] op
115
+ # @return [Google::Firestore::V1beta1::StructuredQuery::FieldFilter::Operator]
116
+ # The operator to filter by.
117
+ # @!attribute [rw] value
118
+ # @return [Google::Firestore::V1beta1::Value]
119
+ # The value to compare to.
120
+ class FieldFilter
121
+ # A field filter operator.
122
+ module Operator
123
+ # Unspecified. This value must not be used.
124
+ OPERATOR_UNSPECIFIED = 0
125
+
126
+ # Less than. Requires that the field come first in +order_by+.
127
+ LESS_THAN = 1
128
+
129
+ # Less than or equal. Requires that the field come first in +order_by+.
130
+ LESS_THAN_OR_EQUAL = 2
131
+
132
+ # Greater than. Requires that the field come first in +order_by+.
133
+ GREATER_THAN = 3
134
+
135
+ # Greater than or equal. Requires that the field come first in
136
+ # +order_by+.
137
+ GREATER_THAN_OR_EQUAL = 4
138
+
139
+ # Equal.
140
+ EQUAL = 5
141
+ end
142
+ end
143
+
144
+ # A filter with a single operand.
145
+ # @!attribute [rw] op
146
+ # @return [Google::Firestore::V1beta1::StructuredQuery::UnaryFilter::Operator]
147
+ # The unary operator to apply.
148
+ # @!attribute [rw] field
149
+ # @return [Google::Firestore::V1beta1::StructuredQuery::FieldReference]
150
+ # The field to which to apply the operator.
151
+ class UnaryFilter
152
+ # A unary operator.
153
+ module Operator
154
+ # Unspecified. This value must not be used.
155
+ OPERATOR_UNSPECIFIED = 0
156
+
157
+ # Test if a field is equal to NaN.
158
+ IS_NAN = 2
159
+
160
+ # Test if an exprestion evaluates to Null.
161
+ IS_NULL = 3
162
+ end
163
+ end
164
+
165
+ # An order on a field.
166
+ # @!attribute [rw] field
167
+ # @return [Google::Firestore::V1beta1::StructuredQuery::FieldReference]
168
+ # The field to order by.
169
+ # @!attribute [rw] direction
170
+ # @return [Google::Firestore::V1beta1::StructuredQuery::Direction]
171
+ # The direction to order by. Defaults to +ASCENDING+.
172
+ class Order; end
173
+
174
+ # A reference to a field, such as +max(messages.time) as max_time+.
175
+ # @!attribute [rw] field_path
176
+ # @return [String]
177
+ class FieldReference; end
178
+
179
+ # The projection of document's fields to return.
180
+ # @!attribute [rw] fields
181
+ # @return [Array<Google::Firestore::V1beta1::StructuredQuery::FieldReference>]
182
+ # The fields to return.
183
+ #
184
+ # If empty, all fields are returned. To only return the name
185
+ # of the document, use +['__name__']+.
186
+ class Projection; end
187
+
188
+ # A sort direction.
189
+ module Direction
190
+ # Unspecified.
191
+ DIRECTION_UNSPECIFIED = 0
192
+
193
+ # Ascending.
194
+ ASCENDING = 1
195
+
196
+ # Descending.
197
+ DESCENDING = 2
198
+ end
199
+ end
200
+
201
+ # A position in a query result set.
202
+ # @!attribute [rw] values
203
+ # @return [Array<Google::Firestore::V1beta1::Value>]
204
+ # The values that represent a position, in the order they appear in
205
+ # the order by clause of a query.
206
+ #
207
+ # Can contain fewer values than specified in the order by clause.
208
+ # @!attribute [rw] before
209
+ # @return [true, false]
210
+ # If the position is just before or just after the given values, relative
211
+ # to the sort order defined by the query.
212
+ class Cursor; end
213
+ end
214
+ end
215
+ end
@@ -0,0 +1,167 @@
1
+ # Copyright 2017 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
+ # https://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
+ module Google
16
+ module Firestore
17
+ module V1beta1
18
+ # A write on a document.
19
+ # @!attribute [rw] update
20
+ # @return [Google::Firestore::V1beta1::Document]
21
+ # A document to write.
22
+ # @!attribute [rw] delete
23
+ # @return [String]
24
+ # A document name to delete. In the format:
25
+ # +projects/{project_id}/databases/{database_id}/documents/{document_path}+.
26
+ # @!attribute [rw] transform
27
+ # @return [Google::Firestore::V1beta1::DocumentTransform]
28
+ # Applies a tranformation to a document.
29
+ # At most one +transform+ per document is allowed in a given request.
30
+ # An +update+ cannot follow a +transform+ on the same document in a given
31
+ # request.
32
+ # @!attribute [rw] update_mask
33
+ # @return [Google::Firestore::V1beta1::DocumentMask]
34
+ # The fields to update in this write.
35
+ #
36
+ # This field can be set only when the operation is +update+.
37
+ # None of the field paths in the mask may contain a reserved name.
38
+ # If the document exists on the server and has fields not referenced in the
39
+ # mask, they are left unchanged.
40
+ # Fields referenced in the mask, but not present in the input document, are
41
+ # deleted from the document on the server.
42
+ # The field paths in this mask must not contain a reserved field name.
43
+ # @!attribute [rw] current_document
44
+ # @return [Google::Firestore::V1beta1::Precondition]
45
+ # An optional precondition on the document.
46
+ #
47
+ # The write will fail if this is set and not met by the target document.
48
+ class Write; end
49
+
50
+ # A transformation of a document.
51
+ # @!attribute [rw] document
52
+ # @return [String]
53
+ # The name of the document to transform.
54
+ # @!attribute [rw] field_transforms
55
+ # @return [Array<Google::Firestore::V1beta1::DocumentTransform::FieldTransform>]
56
+ # The list of transformations to apply to the fields of the document, in
57
+ # order.
58
+ class DocumentTransform
59
+ # A transformation of a field of the document.
60
+ # @!attribute [rw] field_path
61
+ # @return [String]
62
+ # The path of the field. See {Google::Firestore::V1beta1::Document#fields Document#fields} for the field path syntax
63
+ # reference.
64
+ # @!attribute [rw] set_to_server_value
65
+ # @return [Google::Firestore::V1beta1::DocumentTransform::FieldTransform::ServerValue]
66
+ # Sets the field to the given server value.
67
+ class FieldTransform
68
+ # A value that is calculated by the server.
69
+ module ServerValue
70
+ # Unspecified. This value must not be used.
71
+ SERVER_VALUE_UNSPECIFIED = 0
72
+
73
+ # The time at which the server processed the request.
74
+ REQUEST_TIME = 1
75
+ end
76
+ end
77
+ end
78
+
79
+ # The result of applying a write.
80
+ # @!attribute [rw] update_time
81
+ # @return [Google::Protobuf::Timestamp]
82
+ # The last update time of the document after applying the write. Not set
83
+ # after a +delete+.
84
+ #
85
+ # If the write did not actually change the document, this will be the
86
+ # previous update_time.
87
+ # @!attribute [rw] transform_results
88
+ # @return [Array<Google::Firestore::V1beta1::Value>]
89
+ # The results of applying each {Google::Firestore::V1beta1::DocumentTransform::FieldTransform DocumentTransform::FieldTransform}, in the
90
+ # same order.
91
+ class WriteResult; end
92
+
93
+ # A {Google::Firestore::V1beta1::Document Document} has changed.
94
+ #
95
+ # May be the result of multiple {Google::Firestore::V1beta1::Write Writes}, including deletes, that
96
+ # ultimately resulted in a new value for the {Google::Firestore::V1beta1::Document Document}.
97
+ #
98
+ # Multiple {Google::Firestore::V1beta1::DocumentChange DocumentChange} messages may be returned for the same logical
99
+ # change, if multiple targets are affected.
100
+ # @!attribute [rw] document
101
+ # @return [Google::Firestore::V1beta1::Document]
102
+ # The new state of the {Google::Firestore::V1beta1::Document Document}.
103
+ #
104
+ # If +mask+ is set, contains only fields that were updated or added.
105
+ # @!attribute [rw] target_ids
106
+ # @return [Array<Integer>]
107
+ # A set of target IDs of targets that match this document.
108
+ # @!attribute [rw] removed_target_ids
109
+ # @return [Array<Integer>]
110
+ # A set of target IDs for targets that no longer match this document.
111
+ class DocumentChange; end
112
+
113
+ # A {Google::Firestore::V1beta1::Document Document} has been deleted.
114
+ #
115
+ # May be the result of multiple {Google::Firestore::V1beta1::Write Writes}, including updates, the
116
+ # last of which deleted the {Google::Firestore::V1beta1::Document Document}.
117
+ #
118
+ # Multiple {Google::Firestore::V1beta1::DocumentDelete DocumentDelete} messages may be returned for the same logical
119
+ # delete, if multiple targets are affected.
120
+ # @!attribute [rw] document
121
+ # @return [String]
122
+ # The resource name of the {Google::Firestore::V1beta1::Document Document} that was deleted.
123
+ # @!attribute [rw] removed_target_ids
124
+ # @return [Array<Integer>]
125
+ # A set of target IDs for targets that previously matched this entity.
126
+ # @!attribute [rw] read_time
127
+ # @return [Google::Protobuf::Timestamp]
128
+ # The read timestamp at which the delete was observed.
129
+ #
130
+ # Greater or equal to the +commit_time+ of the delete.
131
+ class DocumentDelete; end
132
+
133
+ # A {Google::Firestore::V1beta1::Document Document} has been removed from the view of the targets.
134
+ #
135
+ # Sent if the document is no longer relevant to a target and is out of view.
136
+ # Can be sent instead of a DocumentDelete or a DocumentChange if the server
137
+ # can not send the new value of the document.
138
+ #
139
+ # Multiple {Google::Firestore::V1beta1::DocumentRemove DocumentRemove} messages may be returned for the same logical
140
+ # write or delete, if multiple targets are affected.
141
+ # @!attribute [rw] document
142
+ # @return [String]
143
+ # The resource name of the {Google::Firestore::V1beta1::Document Document} that has gone out of view.
144
+ # @!attribute [rw] removed_target_ids
145
+ # @return [Array<Integer>]
146
+ # A set of target IDs for targets that previously matched this document.
147
+ # @!attribute [rw] read_time
148
+ # @return [Google::Protobuf::Timestamp]
149
+ # The read timestamp at which the remove was observed.
150
+ #
151
+ # Greater or equal to the +commit_time+ of the change/delete/remove.
152
+ class DocumentRemove; end
153
+
154
+ # A digest of all the documents that match a given target.
155
+ # @!attribute [rw] target_id
156
+ # @return [Integer]
157
+ # The target ID to which this filter applies.
158
+ # @!attribute [rw] count
159
+ # @return [Integer]
160
+ # The total count of documents that match {Google::Firestore::V1beta1::ExistenceFilter#target_id Target_id}.
161
+ #
162
+ # If different from the count of documents in the client that match, the
163
+ # client must manually determine which documents no longer match the target.
164
+ class ExistenceFilter; end
165
+ end
166
+ end
167
+ end
@@ -0,0 +1,124 @@
1
+ # Copyright 2017 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
+ # https://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
+ module Google
16
+ module Protobuf
17
+ # +Any+ contains an arbitrary serialized protocol buffer message along with a
18
+ # URL that describes the type of the serialized message.
19
+ #
20
+ # Protobuf library provides support to pack/unpack Any values in the form
21
+ # of utility functions or additional generated methods of the Any type.
22
+ #
23
+ # Example 1: Pack and unpack a message in C++.
24
+ #
25
+ # Foo foo = ...;
26
+ # Any any;
27
+ # any.PackFrom(foo);
28
+ # ...
29
+ # if (any.UnpackTo(&foo)) {
30
+ # ...
31
+ # }
32
+ #
33
+ # Example 2: Pack and unpack a message in Java.
34
+ #
35
+ # Foo foo = ...;
36
+ # Any any = Any.pack(foo);
37
+ # ...
38
+ # if (any.is(Foo.class)) {
39
+ # foo = any.unpack(Foo.class);
40
+ # }
41
+ #
42
+ # Example 3: Pack and unpack a message in Python.
43
+ #
44
+ # foo = Foo(...)
45
+ # any = Any()
46
+ # any.Pack(foo)
47
+ # ...
48
+ # if any.Is(Foo.DESCRIPTOR):
49
+ # any.Unpack(foo)
50
+ # ...
51
+ #
52
+ # Example 4: Pack and unpack a message in Go
53
+ #
54
+ # foo := &pb.Foo{...}
55
+ # any, err := ptypes.MarshalAny(foo)
56
+ # ...
57
+ # foo := &pb.Foo{}
58
+ # if err := ptypes.UnmarshalAny(any, foo); err != nil {
59
+ # ...
60
+ # }
61
+ #
62
+ # The pack methods provided by protobuf library will by default use
63
+ # 'type.googleapis.com/full.type.name' as the type URL and the unpack
64
+ # methods only use the fully qualified type name after the last '/'
65
+ # in the type URL, for example "foo.bar.com/x/y.z" will yield type
66
+ # name "y.z".
67
+ #
68
+ #
69
+ # = JSON
70
+ #
71
+ # The JSON representation of an +Any+ value uses the regular
72
+ # representation of the deserialized, embedded message, with an
73
+ # additional field +@type+ which contains the type URL. Example:
74
+ #
75
+ # package google.profile;
76
+ # message Person {
77
+ # string first_name = 1;
78
+ # string last_name = 2;
79
+ # }
80
+ #
81
+ # {
82
+ # "@type": "type.googleapis.com/google.profile.Person",
83
+ # "firstName": <string>,
84
+ # "lastName": <string>
85
+ # }
86
+ #
87
+ # If the embedded message type is well-known and has a custom JSON
88
+ # representation, that representation will be embedded adding a field
89
+ # +value+ which holds the custom JSON in addition to the +@type+
90
+ # field. Example (for message {Google::Protobuf::Duration}):
91
+ #
92
+ # {
93
+ # "@type": "type.googleapis.com/google.protobuf.Duration",
94
+ # "value": "1.212s"
95
+ # }
96
+ # @!attribute [rw] type_url
97
+ # @return [String]
98
+ # A URL/resource name whose content describes the type of the
99
+ # serialized protocol buffer message.
100
+ #
101
+ # For URLs which use the scheme +http+, +https+, or no scheme, the
102
+ # following restrictions and interpretations apply:
103
+ #
104
+ # * If no scheme is provided, +https+ is assumed.
105
+ # * The last segment of the URL's path must represent the fully
106
+ # qualified name of the type (as in +path/google.protobuf.Duration+).
107
+ # The name should be in a canonical form (e.g., leading "." is
108
+ # not accepted).
109
+ # * An HTTP GET on the URL must yield a {Google::Protobuf::Type}
110
+ # value in binary format, or produce an error.
111
+ # * Applications are allowed to cache lookup results based on the
112
+ # URL, or have them precompiled into a binary to avoid any
113
+ # lookup. Therefore, binary compatibility needs to be preserved
114
+ # on changes to types. (Use versioned type names to manage
115
+ # breaking changes.)
116
+ #
117
+ # Schemes other than +http+, +https+ (or the empty scheme) might be
118
+ # used with implementation specific semantics.
119
+ # @!attribute [rw] value
120
+ # @return [String]
121
+ # Must be a valid serialized protocol buffer of the above specified type.
122
+ class Any; end
123
+ end
124
+ end