The key used for routing messages to partitions or for compaction (e.g.,
keep the last N messages per key). If the key is empty, the message is
routed to an arbitrary partition.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Interface PubSubMessageOrBuilder (1.15.13)\n\nVersion latestkeyboard_arrow_down\n\n- [1.15.13 (latest)](/java/docs/reference/google-cloud-pubsublite/latest/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.15.12](/java/docs/reference/google-cloud-pubsublite/1.15.12/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.14.8](/java/docs/reference/google-cloud-pubsublite/1.14.8/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.13.8](/java/docs/reference/google-cloud-pubsublite/1.13.8/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.12.22](/java/docs/reference/google-cloud-pubsublite/1.12.22/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.11.2](/java/docs/reference/google-cloud-pubsublite/1.11.2/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.10.0](/java/docs/reference/google-cloud-pubsublite/1.10.0/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.9.4](/java/docs/reference/google-cloud-pubsublite/1.9.4/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.8.0](/java/docs/reference/google-cloud-pubsublite/1.8.0/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.7.1](/java/docs/reference/google-cloud-pubsublite/1.7.1/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.6.3](/java/docs/reference/google-cloud-pubsublite/1.6.3/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.5.5](/java/docs/reference/google-cloud-pubsublite/1.5.5/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder)\n- [1.4.12](/java/docs/reference/google-cloud-pubsublite/1.4.12/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder) \n\n public interface PubSubMessageOrBuilder extends MessageOrBuilder\n\nImplements\n----------\n\n[MessageOrBuilder](https://cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.MessageOrBuilder.html)\n\nMethods\n-------\n\n### containsAttributes(String key)\n\n public abstract boolean containsAttributes(String key)\n\nOptional attributes that can be used for message metadata/headers.\n\n`map\u003cstring, .google.cloud.pubsublite.v1.AttributeValues\u003e attributes = 3;`\n\n### getAttributes() (deprecated)\n\n public abstract Map\u003cString,AttributeValues\u003e getAttributes()\n\nUse [#getAttributesMap()](/java/docs/reference/google-cloud-pubsublite/latest/com.google.cloud.pubsublite.proto.PubSubMessageOrBuilder#com_google_cloud_pubsublite_proto_PubSubMessageOrBuilder_getAttributesMap__) instead.\n\n### getAttributesCount()\n\n public abstract int getAttributesCount()\n\nOptional attributes that can be used for message metadata/headers.\n\n`map\u003cstring, .google.cloud.pubsublite.v1.AttributeValues\u003e attributes = 3;`\n\n### getAttributesMap()\n\n public abstract Map\u003cString,AttributeValues\u003e getAttributesMap()\n\nOptional attributes that can be used for message metadata/headers.\n\n`map\u003cstring, .google.cloud.pubsublite.v1.AttributeValues\u003e attributes = 3;`\n\n### getAttributesOrDefault(String key, AttributeValues defaultValue)\n\n public abstract AttributeValues getAttributesOrDefault(String key, AttributeValues defaultValue)\n\nOptional attributes that can be used for message metadata/headers.\n\n`map\u003cstring, .google.cloud.pubsublite.v1.AttributeValues\u003e attributes = 3;`\n\n### getAttributesOrThrow(String key)\n\n public abstract AttributeValues getAttributesOrThrow(String key)\n\nOptional attributes that can be used for message metadata/headers.\n\n`map\u003cstring, .google.cloud.pubsublite.v1.AttributeValues\u003e attributes = 3;`\n\n### getData()\n\n public abstract ByteString getData()\n\nThe payload of the message.\n\n`bytes data = 2;`\n\n### getEventTime()\n\n public abstract Timestamp getEventTime()\n\nAn optional, user-specified event time.\n\n`.google.protobuf.Timestamp event_time = 4;`\n\n### getEventTimeOrBuilder()\n\n public abstract TimestampOrBuilder getEventTimeOrBuilder()\n\nAn optional, user-specified event time.\n\n`.google.protobuf.Timestamp event_time = 4;`\n\n### getKey()\n\n public abstract ByteString getKey()\n\nThe key used for routing messages to partitions or for compaction (e.g.,\nkeep the last N messages per key). If the key is empty, the message is\nrouted to an arbitrary partition.\n\n`bytes key = 1;`\n\n### hasEventTime()\n\n public abstract boolean hasEventTime()\n\nAn optional, user-specified event time.\n\n`.google.protobuf.Timestamp event_time = 4;`"]]