Any class

Any contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.

Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.

Example 1: Pack and unpack a message in C++.

 Foo foo = ...;
 Any any;
 any.PackFrom(foo);
 ...
 if (any.UnpackTo(&foo)) {
   ...
 }

Example 2: Pack and unpack a message in Java.

 Foo foo = ...;
 Any any = Any.pack(foo);
 ...
 if (any.is(Foo.class)) {
   foo = any.unpack(Foo.class);
 }
 // or ...
 if (any.isSameTypeAs(Foo.getDefaultInstance())) {
   foo = any.unpack(Foo.getDefaultInstance());
 }

Example 3: Pack and unpack a message in Python.

 foo = Foo(...)
 any = Any()
 any.Pack(foo)
 ...
 if any.Is(Foo.DESCRIPTOR):
   any.Unpack(foo)
   ...

Example 4: Pack and unpack a message in Go

  foo := &pb.Foo{...}
  any, err := anypb.New(foo)
  if err != nil {
    ...
  }
  ...
  foo := &pb.Foo{}
  if err := any.UnmarshalTo(foo); err != nil {
    ...
  }

The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".

JSON

The JSON representation of an Any value uses the regular representation of the deserialized, embedded message, with an additional field @type which contains the type URL. Example:

 package google.profile;
 message Person {
   string first_name = 1;
   string last_name = 2;
 }

 {
   "@type": "type.googleapis.com/google.profile.Person",
   "firstName": <string>,
   "lastName": <string>
 }

If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field value which holds the custom JSON in addition to the @type field. Example (for message google.protobuf.Duration):

 {
   "@type": "type.googleapis.com/google.protobuf.Duration",
   "value": "1.212s"
 }
Inheritance

Constructors

Any({String? typeUrl, List<int>? value})
factory
Any.fromBuffer(List<int> i, [ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
factory
Any.fromJson(String i, [ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
factory

Properties

eventPlugin → EventPlugin?
Subclasses can override this getter to be notified of changes to protobuf fields.
no setterinherited
hashCode → int
Calculates a hash code based on the contents of the protobuf.
no setterinherited
info_ → BuilderInfo
no setteroverride
isFrozen → bool
Returns true if this message is marked read-only. Otherwise false.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
typeUrl ↔ String
A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in path/google.protobuf.Duration). The name should be in a canonical form (e.g., leading "." is not accepted).
getter/setter pair
unknownFields → UnknownFieldSet
no setterinherited
value ↔ List<int>
Must be a valid serialized protocol buffer of the above specified type.
getter/setter pair

Methods

addExtension(Extension extension, Object? value) → void
Adds an extension field value to a repeated field.
inherited
canUnpackInto(GeneratedMessage instance) → bool
Returns true if the encoded message matches the type of instance.
inherited
check() → void
inherited
clear() → void
Clears all data that was set in this message.
inherited
clearExtension(Extension extension) → void
Clears an extension field and also removes the extension.
inherited
clearField(int tagNumber) → void
Clears the contents of a given field.
inherited
clearTypeUrl() → void
clearValue() → void
clone() → Any
Creates a deep copy of the fields in this message. (The generated code uses mergeFromMessage.)
override
copyWith(void updates(Any)) → Any
Apply updates to a copy of this message.
override
createEmptyInstance() → Any
Creates an empty instance of the same message type as this.
override
createMapField<K, V>(int tagNumber, MapFieldInfo<K, V> fi) → Map<K, V>
Creates a Map representing a map field.
inherited
createRepeatedField<T>(int tagNumber, FieldInfo<T> fi) → List<T>
Creates List implementing a mutable repeated field.
inherited
extensionsAreInitialized() → bool
inherited
freeze() → GeneratedMessage
Make this message read-only.
inherited
getDefaultForField(int tagNumber) → dynamic
Returns the default value for the given field.
inherited
getExtension(Extension extension) → dynamic
Returns the value of extension.
inherited
getField(int tagNumber) → dynamic
Returns the value of the field associated with tagNumber, or the default value if it is not set.
inherited
getFieldOrNull(int tagNumber) → dynamic
Returns the value of a field, ignoring any defaults.
inherited
getTagNumber(String fieldName) → int?
inherited
hasExtension(Extension extension) → bool
Returns true if a value of extension is present.
inherited
hasField(int tagNumber) → bool
Whether this message has a field associated with tagNumber.
inherited
hasRequiredFields() → bool
Whether the message has required fields.
inherited
hasTypeUrl() → bool
hasValue() → bool
isInitialized() → bool
Whether all required fields in the message and embedded messages are set.
inherited
mergeFromBuffer(List<int> input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges serialized protocol buffer data into this message.
inherited
mergeFromCodedBufferReader(CodedBufferReader input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
inherited
mergeFromJson(String data, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges field values from data, a JSON object, encoded as described by GeneratedMessage.writeToJson.
inherited
mergeFromJsonMap(Map<String, dynamic> json, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges field values from a JSON object represented as a Dart map.
inherited
mergeFromMessage(GeneratedMessage other) → void
Merges the contents of the other into this message.
inherited
mergeFromProto3Json(Object? json, {TypeRegistry typeRegistry = const TypeRegistry.empty(), bool ignoreUnknownFields = false, bool supportNamesWithUnderscores = true, bool permissiveEnums = false}) → void
Merges field values from json, a JSON object using proto3 encoding.
inherited
mergeUnknownFields(UnknownFieldSet unknownFieldSet) → void
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
setExtension(Extension extension, Object value) → void
Sets the value of a non-repeated extension field to value.
inherited
setField(int tagNumber, Object value) → void
Sets the value of a field by its tagNumber.
inherited
toBuilder() → GeneratedMessage
Creates a writable, shallow copy of this message.
inherited
toDebugString() → String
Returns a String representation of this message.
inherited
toProto3Json({TypeRegistry typeRegistry = const TypeRegistry.empty()}) → Object?
Returns an Object representing Proto3 JSON serialization of this.
inherited
toString() → String
Returns a String representation of this message.
inherited
unpackInto<T extends GeneratedMessage>(T instance, {ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY}) → T
Unpacks the message in value into instance.
inherited
writeToBuffer() → Uint8List
inherited
writeToCodedBufferWriter(CodedBufferWriter output) → void
inherited
writeToJson() → String
Returns a JSON string that encodes this message.
inherited
writeToJsonMap() → Map<String, dynamic>
Returns the JSON encoding of this message as a Dart Map.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

create() → Any
createRepeated() → PbList<Any>
getDefault() → Any
pack(GeneratedMessage message, {String typeUrlPrefix = 'type.googleapis.com'}) → Any
Creates a new Any encoding message.