This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch java
in repository https://gitbox.apache.org/repos/asf/rocketmq-apis.git

commit 14f74b0e3f977896b4dd60cc95464bfaf04f5440
Author: 凌楚 <[email protected]>
AuthorDate: Mon May 23 14:25:08 2022 +0800

    Apply IDL update
---
 pom.xml                                            |  30 +-
 src/main/java/apache/rocketmq/v2/MQDomain.java     | 121 +++---
 src/main/java/apache/rocketmq/v2/MQService.java    | 372 ++++++++---------
 .../apache/rocketmq/v2/SendMessageResponse.java    | 447 +++++++++++++--------
 .../rocketmq/v2/SendMessageResponseOrBuilder.java  |  49 ++-
 .../apache/rocketmq/v2/SendReceiptOrBuilder.java   |  39 --
 .../v2/{SendReceipt.java => SendResultEntry.java}  | 366 +++++++++++++----
 .../rocketmq/v2/SendResultEntryOrBuilder.java      |  54 +++
 .../proto/apache/rocketmq/v2/definition.proto      |   6 -
 .../proto/apache/rocketmq/v2/service.proto         |  12 +-
 10 files changed, 922 insertions(+), 574 deletions(-)

diff --git a/pom.xml b/pom.xml
index 1740c5d..556a464 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,23 +51,23 @@
     </dependencies>
 
     <distributionManagement>
-        <repository>
-            <id>releases</id>
-            <url>http://mvnrepo.alibaba-inc.com/mvn/releases</url>
-        </repository>
-        <snapshotRepository>
-            <id>snapshots</id>
-            <url>http://mvnrepo.alibaba-inc.com/mvn/snapshots</url>
-        </snapshotRepository>
-
-<!--        <snapshotRepository>-->
-<!--            <id>apache.snapshots.https</id>-->
-<!--            
<url>https://repository.apache.org/content/repositories/snapshots</url>-->
-<!--        </snapshotRepository>-->
 <!--        <repository>-->
-<!--            <id>apache.staging.https</id>-->
-<!--            
<url>https://repository.apache.org/service/local/staging/deploy/maven2/</url>-->
+<!--            <id>releases</id>-->
+<!--            <url>http://mvnrepo.alibaba-inc.com/mvn/releases</url>-->
 <!--        </repository>-->
+<!--        <snapshotRepository>-->
+<!--            <id>snapshots</id>-->
+<!--            <url>http://mvnrepo.alibaba-inc.com/mvn/snapshots</url>-->
+<!--        </snapshotRepository>-->
+
+        <snapshotRepository>
+            <id>apache.snapshots.https</id>
+            
<url>https://repository.apache.org/content/repositories/snapshots</url>
+        </snapshotRepository>
+        <repository>
+            <id>apache.staging.https</id>
+            
<url>https://repository.apache.org/service/local/staging/deploy/maven2/</url>
+        </repository>
     </distributionManagement>
 
     <profiles>
diff --git a/src/main/java/apache/rocketmq/v2/MQDomain.java 
b/src/main/java/apache/rocketmq/v2/MQDomain.java
index 3810e13..ddac52b 100644
--- a/src/main/java/apache/rocketmq/v2/MQDomain.java
+++ b/src/main/java/apache/rocketmq/v2/MQDomain.java
@@ -89,11 +89,6 @@ public final class MQDomain {
   static final 
     com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_apache_rocketmq_v2_Assignment_fieldAccessorTable;
-  static final com.google.protobuf.Descriptors.Descriptor
-    internal_static_apache_rocketmq_v2_SendReceipt_descriptor;
-  static final 
-    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-      internal_static_apache_rocketmq_v2_SendReceipt_fieldAccessorTable;
   static final com.google.protobuf.Descriptors.Descriptor
     internal_static_apache_rocketmq_v2_Status_descriptor;
   static final 
@@ -177,60 +172,58 @@ public final class MQDomain {
       "ystemProperties\022\014\n\004body\030\004 \001(\014\0325\n\023UserPro" +
       "pertiesEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 
\001(\t" +
       ":\0028\001\"E\n\nAssignment\0227\n\rmessage_queue\030\001 \001(" +
-      "\0132 .apache.rocketmq.v2.MessageQueue\"I\n\013S" +
-      "endReceipt\022\022\n\nmessage_id\030\001 \001(\t\022\026\n\016transa" +
-      "ction_id\030\002 \001(\t\022\016\n\006offset\030\003 
\001(\003\"A\n\006Status" +
-      "\022&\n\004code\030\001 \001(\0162\030.apache.rocketmq.v2.Code" +
-      "\022\017\n\007message\030\002 
\001(\t\"i\n\002UA\022.\n\010language\030\001 \001(" +
-      "\0162\034.apache.rocketmq.v2.Language\022\017\n\007versi" +
-      "on\030\002 \001(\t\022\020\n\010platform\030\003 
\001(\t\022\020\n\010hostname\030\004" +
-      " \001(\t*Y\n\025TransactionResolution\022&\n\"TRANSAC" +
-      "TION_RESOLUTION_UNSPECIFIED\020\000\022\n\n\006COMMIT\020" +
-      
"\001\022\014\n\010ROLLBACK\020\002*W\n\021TransactionSource\022\026\n\022" +
-      "SOURCE_UNSPECIFIED\020\000\022\021\n\rSOURCE_CLIENT\020\001\022" +
-      "\027\n\023SOURCE_SERVER_CHECK\020\002*W\n\nPermission\022\032" +
-      
"\n\026PERMISSION_UNSPECIFIED\020\000\022\010\n\004NONE\020\001\022\010\n\004" +
-      
"READ\020\002\022\t\n\005WRITE\020\003\022\016\n\nREAD_WRITE\020\004*;\n\nFil" +
-      "terType\022\033\n\027FILTER_TYPE_UNSPECIFIED\020\000\022\007\n\003" +
-      
"TAG\020\001\022\007\n\003SQL\020\002*T\n\rAddressScheme\022\036\n\032ADDRE" +
-      
"SS_SCHEME_UNSPECIFIED\020\000\022\010\n\004IPv4\020\001\022\010\n\004IPv" +
-      
"6\020\002\022\017\n\013DOMAIN_NAME\020\003*]\n\013MessageType\022\034\n\030M" +
-      "ESSAGE_TYPE_UNSPECIFIED\020\000\022\n\n\006NORMAL\020\001\022\010\n" +
-      
"\004FIFO\020\002\022\t\n\005DELAY\020\003\022\017\n\013TRANSACTION\020\004*G\n\nD"
 +
-      "igestType\022\033\n\027DIGEST_TYPE_UNSPECIFIED\020\000\022\t" +
-      
"\n\005CRC32\020\001\022\007\n\003MD5\020\002\022\010\n\004SHA1\020\003*_\n\nClientTy"
 +
-      "pe\022\033\n\027CLIENT_TYPE_UNSPECIFIED\020\000\022\014\n\010PRODU" +
-      "CER\020\001\022\021\n\rPUSH_CONSUMER\020\002\022\023\n\017SIMPLE_CONSU" 
+
-      "MER\020\003*<\n\010Encoding\022\030\n\024ENCODING_UNSPECIFIE" +
-      
"D\020\000\022\014\n\010IDENTITY\020\001\022\010\n\004GZIP\020\002*\272\007\n\004Code\022\006\n\002"
 +
-      "OK\020\000\022\030\n\024ILLEGAL_ACCESS_POINT\020\001\022\021\n\rILLEGA" 
+
-      "L_TOPIC\020\002\022\032\n\026ILLEGAL_CONSUMER_GROUP\020\003\022\027\n" +
-      "\023ILLEGAL_MESSAGE_TAG\020\004\022\027\n\023ILLEGAL_MESSAG" +
-      
"E_KEY\020\005\022\032\n\026MESSAGE_KEYS_TOO_LARGE\020\006\022\031\n\025I" +
-      "LLEGAL_MESSAGE_GROUP\020\007\022 \n\034ILLEGAL_MESSAG" +
-      "E_PROPERTY_KEY\020\010\022 \n\034MESSAGE_PROPERTIES_T" +
-      "OO_LARGE\020\t\022\032\n\026MESSAGE_BODY_TOO_LARGE\020\n\022\016" +
-      
"\n\tFORBIDDEN\020\223\003\022\021\n\014UNAUTHORIZED\020\221\003\022\023\n\017TOP"
 +
-      "IC_NOT_FOUND\020\r\022\034\n\030CONSUMER_GROUP_NOT_FOU" +
-      
"ND\020\016\022\034\n\030VERIFY_MESSAGE_FORBIDDEN\020\017\022\035\n\031FA" +
-      "ILED_TO_CONSUME_MESSAGE\020\020\022\025\n\021MESSAGE_COR" +
-      
"RUPTED\020\021\022\025\n\021TOO_MANY_REQUESTS\020\022\022\032\n\026RECEI" +
-      "PT_HANDLE_EXPIRED\020\023\0220\n,MESSAGE_PROPERTY_" +
-      "DOES_NOT_MATCH_MESSAGE_TYPE\020\024\022\026\n\022ILLEGAL" +
-      "_MESSAGE_ID\020\025\022\032\n\026INVALID_TRANSACTION_ID\020" +
-      "\026\022\035\n\031ILLEGAL_FILTER_EXPRESSION\020\027\022\032\n\026INVA" +
-      "LID_RECEIPT_HANDLE\020\030\022\036\n\032MASTER_PERSISTEN" +
-      "CE_TIMEOUT\020\031\022\035\n\031SLAVE_PERSISTENCE_TIMEOU" +
-      
"T\020\032\022\024\n\020HA_NOT_AVAILABLE\020\033\022\027\n\023VERSION_UNS" +
-      
"UPPORTED\020\034\022\025\n\021MESSAGE_NOT_FOUND\020\035\022\032\n\026ILL" +
-      "EGAL_MESSAGE_OFFSET\020\036\022\023\n\017ILLEGAL_MESSAGE" +
-      "\020\037\022\034\n\030UNRECOGNIZED_CLIENT_TYPE\020 \022\032\n\025INTE" +
-      "RNAL_SERVER_ERROR\020\364\003\022\024\n\017NOT_IMPLEMENTED\020" +
-      
"\365\003\022\024\n\017GATEWAY_TIMEOUT\020\370\003*Z\n\010Language\022\030\n\024"
 +
-      
"LANGUAGE_UNSPECIFIED\020\000\022\010\n\004JAVA\020\001\022\007\n\003CPP\020" +
-      
"\002\022\013\n\007DOT_NET\020\003\022\n\n\006GOLANG\020\004\022\010\n\004RUST\020\005B;\n\022"
 +
-      
"apache.rocketmq.v2B\010MQDomainP\001\240\001\001\330\001\001\252\002\022A" +
-      "pache.Rocketmq.V2b\006proto3"
+      "\0132 .apache.rocketmq.v2.MessageQueue\"A\n\006S" +
+      "tatus\022&\n\004code\030\001 \001(\0162\030.apache.rocketmq.v2" +
+      ".Code\022\017\n\007message\030\002 
\001(\t\"i\n\002UA\022.\n\010language" +
+      "\030\001 \001(\0162\034.apache.rocketmq.v2.Language\022\017\n\007" +
+      "version\030\002 \001(\t\022\020\n\010platform\030\003 
\001(\t\022\020\n\010hostn" +
+      "ame\030\004 \001(\t*Y\n\025TransactionResolution\022&\n\"TR" +
+      "ANSACTION_RESOLUTION_UNSPECIFIED\020\000\022\n\n\006CO" +
+      "MMIT\020\001\022\014\n\010ROLLBACK\020\002*W\n\021TransactionSourc" +
+      "e\022\026\n\022SOURCE_UNSPECIFIED\020\000\022\021\n\rSOURCE_CLIE" +
+      "NT\020\001\022\027\n\023SOURCE_SERVER_CHECK\020\002*W\n\nPermiss" +
+      "ion\022\032\n\026PERMISSION_UNSPECIFIED\020\000\022\010\n\004NONE\020" +
+      
"\001\022\010\n\004READ\020\002\022\t\n\005WRITE\020\003\022\016\n\nREAD_WRITE\020\004*;"
 +
+      "\n\nFilterType\022\033\n\027FILTER_TYPE_UNSPECIFIED\020" +
+      
"\000\022\007\n\003TAG\020\001\022\007\n\003SQL\020\002*T\n\rAddressScheme\022\036\n\032"
 +
+      "ADDRESS_SCHEME_UNSPECIFIED\020\000\022\010\n\004IPv4\020\001\022\010" +
+      "\n\004IPv6\020\002\022\017\n\013DOMAIN_NAME\020\003*]\n\013MessageType" 
+
+      "\022\034\n\030MESSAGE_TYPE_UNSPECIFIED\020\000\022\n\n\006NORMAL" +
+      
"\020\001\022\010\n\004FIFO\020\002\022\t\n\005DELAY\020\003\022\017\n\013TRANSACTION\020\004"
 +
+      "*G\n\nDigestType\022\033\n\027DIGEST_TYPE_UNSPECIFIE" +
+      
"D\020\000\022\t\n\005CRC32\020\001\022\007\n\003MD5\020\002\022\010\n\004SHA1\020\003*_\n\nCli"
 +
+      "entType\022\033\n\027CLIENT_TYPE_UNSPECIFIED\020\000\022\014\n\010" +
+      "PRODUCER\020\001\022\021\n\rPUSH_CONSUMER\020\002\022\023\n\017SIMPLE_" 
+
+      "CONSUMER\020\003*<\n\010Encoding\022\030\n\024ENCODING_UNSPE" +
+      
"CIFIED\020\000\022\014\n\010IDENTITY\020\001\022\010\n\004GZIP\020\002*\272\007\n\004Cod"
 +
+      
"e\022\006\n\002OK\020\000\022\030\n\024ILLEGAL_ACCESS_POINT\020\001\022\021\n\rI"
 +
+      "LLEGAL_TOPIC\020\002\022\032\n\026ILLEGAL_CONSUMER_GROUP" +
+      
"\020\003\022\027\n\023ILLEGAL_MESSAGE_TAG\020\004\022\027\n\023ILLEGAL_M" +
+      "ESSAGE_KEY\020\005\022\032\n\026MESSAGE_KEYS_TOO_LARGE\020\006" +
+      "\022\031\n\025ILLEGAL_MESSAGE_GROUP\020\007\022 \n\034ILLEGAL_M" +
+      "ESSAGE_PROPERTY_KEY\020\010\022 \n\034MESSAGE_PROPERT" +
+      "IES_TOO_LARGE\020\t\022\032\n\026MESSAGE_BODY_TOO_LARG" +
+      
"E\020\n\022\016\n\tFORBIDDEN\020\223\003\022\021\n\014UNAUTHORIZED\020\221\003\022\023"
 +
+      "\n\017TOPIC_NOT_FOUND\020\r\022\034\n\030CONSUMER_GROUP_NO" +
+      "T_FOUND\020\016\022\034\n\030VERIFY_MESSAGE_FORBIDDEN\020\017\022" +
+      "\035\n\031FAILED_TO_CONSUME_MESSAGE\020\020\022\025\n\021MESSAG" +
+      
"E_CORRUPTED\020\021\022\025\n\021TOO_MANY_REQUESTS\020\022\022\032\n\026" +
+      "RECEIPT_HANDLE_EXPIRED\020\023\0220\n,MESSAGE_PROP" +
+      "ERTY_DOES_NOT_MATCH_MESSAGE_TYPE\020\024\022\026\n\022IL" +
+      "LEGAL_MESSAGE_ID\020\025\022\032\n\026INVALID_TRANSACTIO" +
+      "N_ID\020\026\022\035\n\031ILLEGAL_FILTER_EXPRESSION\020\027\022\032\n" +
+      "\026INVALID_RECEIPT_HANDLE\020\030\022\036\n\032MASTER_PERS" +
+      "ISTENCE_TIMEOUT\020\031\022\035\n\031SLAVE_PERSISTENCE_T" +
+      
"IMEOUT\020\032\022\024\n\020HA_NOT_AVAILABLE\020\033\022\027\n\023VERSIO" +
+      "N_UNSUPPORTED\020\034\022\025\n\021MESSAGE_NOT_FOUND\020\035\022\032" +
+      "\n\026ILLEGAL_MESSAGE_OFFSET\020\036\022\023\n\017ILLEGAL_ME" +
+      "SSAGE\020\037\022\034\n\030UNRECOGNIZED_CLIENT_TYPE\020 \022\032\n" +
+      "\025INTERNAL_SERVER_ERROR\020\364\003\022\024\n\017NOT_IMPLEME" +
+      
"NTED\020\365\003\022\024\n\017GATEWAY_TIMEOUT\020\370\003*Z\n\010Languag" +
+      
"e\022\030\n\024LANGUAGE_UNSPECIFIED\020\000\022\010\n\004JAVA\020\001\022\007\n"
 +
+      
"\003CPP\020\002\022\013\n\007DOT_NET\020\003\022\n\n\006GOLANG\020\004\022\010\n\004RUST\020"
 +
+      "\005B;\n\022apache.rocketmq.v2B\010MQDomainP\001\240\001\001\330\001" +
+      "\001\252\002\022Apache.Rocketmq.V2b\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -328,20 +321,14 @@ public final class MQDomain {
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_Assignment_descriptor,
         new java.lang.String[] { "MessageQueue", });
-    internal_static_apache_rocketmq_v2_SendReceipt_descriptor =
-      getDescriptor().getMessageTypes().get(14);
-    internal_static_apache_rocketmq_v2_SendReceipt_fieldAccessorTable = new
-      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
-        internal_static_apache_rocketmq_v2_SendReceipt_descriptor,
-        new java.lang.String[] { "MessageId", "TransactionId", "Offset", });
     internal_static_apache_rocketmq_v2_Status_descriptor =
-      getDescriptor().getMessageTypes().get(15);
+      getDescriptor().getMessageTypes().get(14);
     internal_static_apache_rocketmq_v2_Status_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_Status_descriptor,
         new java.lang.String[] { "Code", "Message", });
     internal_static_apache_rocketmq_v2_UA_descriptor =
-      getDescriptor().getMessageTypes().get(16);
+      getDescriptor().getMessageTypes().get(15);
     internal_static_apache_rocketmq_v2_UA_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_UA_descriptor,
diff --git a/src/main/java/apache/rocketmq/v2/MQService.java 
b/src/main/java/apache/rocketmq/v2/MQService.java
index 8834e6e..98d341f 100644
--- a/src/main/java/apache/rocketmq/v2/MQService.java
+++ b/src/main/java/apache/rocketmq/v2/MQService.java
@@ -29,6 +29,11 @@ public final class MQService {
   static final 
     com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_apache_rocketmq_v2_SendMessageRequest_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_apache_rocketmq_v2_SendResultEntry_descriptor;
+  static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_apache_rocketmq_v2_SendResultEntry_fieldAccessorTable;
   static final com.google.protobuf.Descriptors.Descriptor
     internal_static_apache_rocketmq_v2_SendMessageResponse_descriptor;
   static final 
@@ -188,157 +193,160 @@ public final class MQService {
       "apache.rocketmq.v2.Status\0228\n\016message_que" +
       "ues\030\002 \003(\0132 .apache.rocketmq.v2.MessageQu" +
       "eue\"C\n\022SendMessageRequest\022-\n\010messages\030\001 " +
-      "\003(\0132\033.apache.rocketmq.v2.Message\"t\n\023Send" +
-      "MessageResponse\022*\n\006status\030\001 \001(\0132\032.apache" +
-      ".rocketmq.v2.Status\0221\n\010receipts\030\002 \003(\0132\037." +
-      "apache.rocketmq.v2.SendReceipt\"\244\001\n\026Query" +
-      "AssignmentRequest\022+\n\005topic\030\001 \001(\0132\034.apach" +
-      "e.rocketmq.v2.Resource\022+\n\005group\030\002 \001(\0132\034." +
-      "apache.rocketmq.v2.Resource\0220\n\tendpoints" +
-      "\030\003 \001(\0132\035.apache.rocketmq.v2.Endpoints\"z\n" +
-      "\027QueryAssignmentResponse\022*\n\006status\030\001 \001(\013" +
-      "2\032.apache.rocketmq.v2.Status\0223\n\013assignme" +
-      "nts\030\002 \003(\0132\036.apache.rocketmq.v2.Assignmen" +
-      "t\"\271\002\n\025ReceiveMessageRequest\022+\n\005group\030\001 \001" +
-      "(\0132\034.apache.rocketmq.v2.Resource\0227\n\rmess" +
-      "age_queue\030\002 \001(\0132 .apache.rocketmq.v2.Mes" +
-      "sageQueue\022?\n\021filter_expression\030\003 \001(\0132$.a" +
-      "pache.rocketmq.v2.FilterExpression\022\022\n\nba" +
-      "tch_size\030\004 \001(\005\022:\n\022invisible_duration\030\005 \001" +
-      "(\0132\031.google.protobuf.DurationH\000\210\001\001\022\022\n\nau" +
-      "to_renew\030\006 \001(\010B\025\n\023_invisible_duration\"\201\001" +
-      "\n\026ReceiveMessageResponse\022,\n\006status\030\001 \001(\013" +
-      "2\032.apache.rocketmq.v2.StatusH\000\022.\n\007messag" +
-      "e\030\002 \001(\0132\033.apache.rocketmq.v2.MessageH\000B\t" +
-      "\n\007content\"=\n\017AckMessageEntry\022\022\n\nmessage_" +
-      "id\030\001 \001(\t\022\026\n\016receipt_handle\030\002 
\001(\t\"\243\001\n\021Ack" +
-      "MessageRequest\022+\n\005group\030\001 \001(\0132\034.apache.r" +
-      "ocketmq.v2.Resource\022+\n\005topic\030\002 \001(\0132\034.apa" +
-      "che.rocketmq.v2.Resource\0224\n\007entries\030\003 \003(" +
-      "\0132#.apache.rocketmq.v2.AckMessageEntry\"o" +
-      "\n\025AckMessageResultEntry\022\022\n\nmessage_id\030\001 " +
-      "\001(\t\022\026\n\016receipt_handle\030\002 
\001(\t\022*\n\006status\030\003 " +
-      "\001(\0132\032.apache.rocketmq.v2.Status\"|\n\022AckMe" +
-      "ssageResponse\022*\n\006status\030\001 \001(\0132\032.apache.r" +
-      "ocketmq.v2.Status\022:\n\007entries\030\002 \003(\0132).apa" +
-      "che.rocketmq.v2.AckMessageResultEntry\"\347\001" +
-      "\n&ForwardMessageToDeadLetterQueueRequest" +
-      "\022+\n\005group\030\001 \001(\0132\034.apache.rocketmq.v2.Res" +
-      "ource\022+\n\005topic\030\002 \001(\0132\034.apache.rocketmq.v" +
-      "2.Resource\022\026\n\016receipt_handle\030\003 \001(\t\022\022\n\nme" +
-      "ssage_id\030\004 \001(\t\022\030\n\020delivery_attempt\030\005 
\001(\005" +
-      "\022\035\n\025max_delivery_attempts\030\006 \001(\005\"U\n\'Forwa" +
-      "rdMessageToDeadLetterQueueResponse\022*\n\006st" +
-      "atus\030\001 \001(\0132\032.apache.rocketmq.v2.Status\"\203" +
-      "\001\n\020HeartbeatRequest\0220\n\005group\030\001 \001(\0132\034.apa" +
-      "che.rocketmq.v2.ResourceH\000\210\001\001\0223\n\013client_" +
-      "type\030\002 \001(\0162\036.apache.rocketmq.v2.ClientTy" +
-      "peB\010\n\006_group\"?\n\021HeartbeatResponse\022*\n\006sta" +
-      "tus\030\001 \001(\0132\032.apache.rocketmq.v2.Status\"\375\001" +
-      "\n\025EndTransactionRequest\022+\n\005topic\030\001 \001(\0132\034" +
-      ".apache.rocketmq.v2.Resource\022\022\n\nmessage_" +
-      "id\030\002 \001(\t\022\026\n\016transaction_id\030\003 
\001(\t\022=\n\nreso" +
-      "lution\030\004 \001(\0162).apache.rocketmq.v2.Transa" +
-      "ctionResolution\0225\n\006source\030\005 \001(\0162%.apache" +
-      ".rocketmq.v2.TransactionSource\022\025\n\rtrace_" +
-      "context\030\006 \001(\t\"D\n\026EndTransactionResponse\022" +
+      "\003(\0132\033.apache.rocketmq.v2.Message\"y\n\017Send" +
+      "ResultEntry\022*\n\006status\030\001 \001(\0132\032.apache.roc" +
+      "ketmq.v2.Status\022\022\n\nmessage_id\030\002 \001(\t\022\026\n\016t" +
+      "ransaction_id\030\003 \001(\t\022\016\n\006offset\030\004 
\001(\003\"w\n\023S" +
+      "endMessageResponse\022*\n\006status\030\001 \001(\0132\032.apa" +
+      "che.rocketmq.v2.Status\0224\n\007entries\030\002 \003(\0132" +
+      "#.apache.rocketmq.v2.SendResultEntry\"\244\001\n" +
+      "\026QueryAssignmentRequest\022+\n\005topic\030\001 \001(\0132\034" +
+      ".apache.rocketmq.v2.Resource\022+\n\005group\030\002 " +
+      "\001(\0132\034.apache.rocketmq.v2.Resource\0220\n\tend" +
+      "points\030\003 \001(\0132\035.apache.rocketmq.v2.Endpoi" +
+      "nts\"z\n\027QueryAssignmentResponse\022*\n\006status" +
+      "\030\001 \001(\0132\032.apache.rocketmq.v2.Status\0223\n\013as" +
+      "signments\030\002 \003(\0132\036.apache.rocketmq.v2.Ass" +
+      "ignment\"\271\002\n\025ReceiveMessageRequest\022+\n\005gro" +
+      "up\030\001 \001(\0132\034.apache.rocketmq.v2.Resource\0227" +
+      "\n\rmessage_queue\030\002 \001(\0132 .apache.rocketmq." +
+      "v2.MessageQueue\022?\n\021filter_expression\030\003 \001" +
+      "(\0132$.apache.rocketmq.v2.FilterExpression" +
+      "\022\022\n\nbatch_size\030\004 \001(\005\022:\n\022invisible_durati" +
+      "on\030\005 \001(\0132\031.google.protobuf.DurationH\000\210\001\001" +
+      "\022\022\n\nauto_renew\030\006 \001(\010B\025\n\023_invisible_durat" +
+      "ion\"\201\001\n\026ReceiveMessageResponse\022,\n\006status" +
+      "\030\001 \001(\0132\032.apache.rocketmq.v2.StatusH\000\022.\n\007" +
+      "message\030\002 \001(\0132\033.apache.rocketmq.v2.Messa" +
+      "geH\000B\t\n\007content\"=\n\017AckMessageEntry\022\022\n\nme" +
+      "ssage_id\030\001 \001(\t\022\026\n\016receipt_handle\030\002 
\001(\t\"\243" +
+      "\001\n\021AckMessageRequest\022+\n\005group\030\001 \001(\0132\034.ap" +
+      "ache.rocketmq.v2.Resource\022+\n\005topic\030\002 \001(\013" +
+      "2\034.apache.rocketmq.v2.Resource\0224\n\007entrie" +
+      "s\030\003 \003(\0132#.apache.rocketmq.v2.AckMessageE" +
+      "ntry\"o\n\025AckMessageResultEntry\022\022\n\nmessage" +
+      "_id\030\001 \001(\t\022\026\n\016receipt_handle\030\002 
\001(\t\022*\n\006sta" +
+      "tus\030\003 \001(\0132\032.apache.rocketmq.v2.Status\"|\n" +
+      "\022AckMessageResponse\022*\n\006status\030\001 \001(\0132\032.ap" +
+      "ache.rocketmq.v2.Status\022:\n\007entries\030\002 \003(\013" +
+      "2).apache.rocketmq.v2.AckMessageResultEn" +
+      "try\"\347\001\n&ForwardMessageToDeadLetterQueueR" +
+      "equest\022+\n\005group\030\001 \001(\0132\034.apache.rocketmq." +
+      "v2.Resource\022+\n\005topic\030\002 \001(\0132\034.apache.rock" +
+      "etmq.v2.Resource\022\026\n\016receipt_handle\030\003 \001(\t" +
+      "\022\022\n\nmessage_id\030\004 \001(\t\022\030\n\020delivery_attempt" +
+      "\030\005 \001(\005\022\035\n\025max_delivery_attempts\030\006 
\001(\005\"U\n" +
+      "\'ForwardMessageToDeadLetterQueueResponse" +
+      "\022*\n\006status\030\001 \001(\0132\032.apache.rocketmq.v2.St" +
+      "atus\"\203\001\n\020HeartbeatRequest\0220\n\005group\030\001 \001(\013" 
+
+      "2\034.apache.rocketmq.v2.ResourceH\000\210\001\001\0223\n\013c" +
+      "lient_type\030\002 \001(\0162\036.apache.rocketmq.v2.Cl" +
+      "ientTypeB\010\n\006_group\"?\n\021HeartbeatResponse\022" +
       "*\n\006status\030\001 \001(\0132\032.apache.rocketmq.v2.Sta" +
-      "tus\"-\n\034PrintThreadStackTraceCommand\022\r\n\005n" +
-      "once\030\001 \001(\t\"Y\n\020ThreadStackTrace\022\r\n\005nonce\030" +
-      "\001 \001(\t\022\037\n\022thread_stack_trace\030\002 
\001(\tH\000\210\001\001B\025" +
-      "\n\023_thread_stack_trace\"\214\001\n\024VerifyMessageC" +
-      "ommand\022\r\n\005nonce\030\001 \001(\t\0227\n\rmessage_queue\030\002" +
-      " \001(\0132 .apache.rocketmq.v2.MessageQueue\022," +
-      "\n\007message\030\003 \001(\0132\033.apache.rocketmq.v2.Mes" +
-      "sage\"$\n\023VerifyMessageResult\022\r\n\005nonce\030\001 \001" +
-      "(\t\"\271\001\n!RecoverOrphanedTransactionCommand" +
-      "\0227\n\rmessage_queue\030\001 \001(\0132 .apache.rocketm" +
-      "q.v2.MessageQueue\022C\n\036orphaned_transactio" +
-      "nal_message\030\002 \001(\0132\033.apache.rocketmq.v2.M" +
-      "essage\022\026\n\016transaction_id\030\003 \001(\t\"r\n\nPublis" +
-      "hing\022,\n\006topics\030\001 \003(\0132\034.apache.rocketmq.v" +
-      "2.Resource\022\037\n\027compress_body_threshold\030\002 " +
-      "\001(\005\022\025\n\rmax_body_size\030\003 
\001(\005\"\263\002\n\014Subscript" +
-      "ion\0220\n\005group\030\001 \001(\0132\034.apache.rocketmq.v2." +
-      "ResourceH\000\210\001\001\022<\n\rsubscriptions\030\002 \003(\0132%.a" +
-      "pache.rocketmq.v2.SubscriptionEntry\022\021\n\004f" +
-      "ifo\030\003 
\001(\010H\001\210\001\001\022\037\n\022receive_batch_size\030\004 \001" +
-      "(\005H\002\210\001\001\022<\n\024long_polling_timeout\030\005 
\001(\0132\031." +
-      "google.protobuf.DurationH\003\210\001\001B\010\n\006_groupB" +
-      "\007\n\005_fifoB\025\n\023_receive_batch_sizeB\027\n\025_long" +
-      "_polling_timeout\"\344\003\n\010Settings\0228\n\013client_" +
-      "type\030\001 \001(\0162\036.apache.rocketmq.v2.ClientTy" +
-      "peH\001\210\001\001\0228\n\014access_point\030\002 
\001(\0132\035.apache.r" +
-      "ocketmq.v2.EndpointsH\002\210\001\001\022<\n\016backoff_pol" +
-      "icy\030\003 \001(\0132\037.apache.rocketmq.v2.RetryPoli" +
-      "cyH\003\210\001\001\0227\n\017request_timeout\030\004 
\001(\0132\031.googl" +
-      "e.protobuf.DurationH\004\210\001\001\0224\n\npublishing\030\005" +
-      " \001(\0132\036.apache.rocketmq.v2.PublishingH\000\0228" +
-      "\n\014subscription\030\006 \001(\0132 .apache.rocketmq.v" +
-      "2.SubscriptionH\000\022*\n\nuser_agent\030\007 \001(\0132\026.a" +
-      "pache.rocketmq.v2.UAB\t\n\007pub_subB\016\n\014_clie" +
-      "nt_typeB\017\n\r_access_pointB\021\n\017_backoff_pol" +
-      "icyB\022\n\020_request_timeout\"\252\004\n\020TelemetryCom" +
-      "mand\022/\n\006status\030\001 \001(\0132\032.apache.rocketmq.v" +
-      "2.StatusH\001\210\001\001\0220\n\010settings\030\002 
\001(\0132\034.apache" +
-      ".rocketmq.v2.SettingsH\000\022B\n\022thread_stack_" +
-      "trace\030\003 \001(\0132$.apache.rocketmq.v2.ThreadS" +
-      "tackTraceH\000\022H\n\025verify_message_result\030\004 \001" +
-      "(\0132\'.apache.rocketmq.v2.VerifyMessageRes" +
-      "ultH\000\022e\n$recover_orphaned_transaction_co" +
-      "mmand\030\005 \001(\01325.apache.rocketmq.v2.Recover" +
-      "OrphanedTransactionCommandH\000\022\\\n print_th" +
-      "read_stack_trace_command\030\006 \001(\01320.apache." +
-      "rocketmq.v2.PrintThreadStackTraceCommand" +
-      "H\000\022J\n\026verify_message_command\030\007 \001(\0132(.apa" +
-      "che.rocketmq.v2.VerifyMessageCommandH\000B\t" +
-      "\n\007commandB\t\n\007_status\"\\\n\036NotifyClientTerm" +
-      "inationRequest\0220\n\005group\030\001 \001(\0132\034.apache.r" +
-      "ocketmq.v2.ResourceH\000\210\001\001B\010\n\006_group\"M\n\037No" +
-      "tifyClientTerminationResponse\022*\n\006status\030" +
-      "\001 \001(\0132\032.apache.rocketmq.v2.Status\"\335\001\n\036Ch" +
-      "angeInvisibleDurationRequest\022+\n\005group\030\001 " +
-      "\001(\0132\034.apache.rocketmq.v2.Resource\022+\n\005top" +
-      "ic\030\002 \001(\0132\034.apache.rocketmq.v2.Resource\022\026" +
-      "\n\016receipt_handle\030\003 \001(\t\0225\n\022invisible_dura" +
-      "tion\030\004 \001(\0132\031.google.protobuf.Duration\022\022\n" +
-      "\nmessage_id\030\005 \001(\t\"e\n\037ChangeInvisibleDura" +
-      "tionResponse\022*\n\006status\030\001 \001(\0132\032.apache.ro" +
-      "cketmq.v2.Status\022\026\n\016receipt_handle\030\002 \001(\t" +
-      "2\340\t\n\020MessagingService\022]\n\nQueryRoute\022%.ap" +
-      "ache.rocketmq.v2.QueryRouteRequest\032&.apa" +
-      "che.rocketmq.v2.QueryRouteResponse\"\000\022Z\n\t" +
-      "Heartbeat\022$.apache.rocketmq.v2.Heartbeat" +
-      "Request\032%.apache.rocketmq.v2.HeartbeatRe" +
-      "sponse\"\000\022`\n\013SendMessage\022&.apache.rocketm" +
-      "q.v2.SendMessageRequest\032\'.apache.rocketm" +
-      "q.v2.SendMessageResponse\"\000\022l\n\017QueryAssig" +
-      "nment\022*.apache.rocketmq.v2.QueryAssignme" +
-      "ntRequest\032+.apache.rocketmq.v2.QueryAssi" +
-      "gnmentResponse\"\000\022k\n\016ReceiveMessage\022).apa" +
-      "che.rocketmq.v2.ReceiveMessageRequest\032*." +
-      "apache.rocketmq.v2.ReceiveMessageRespons" +
-      "e\"\0000\001\022]\n\nAckMessage\022%.apache.rocketmq.v2" +
-      ".AckMessageRequest\032&.apache.rocketmq.v2." +
-      "AckMessageResponse\"\000\022\234\001\n\037ForwardMessageT" +
-      "oDeadLetterQueue\022:.apache.rocketmq.v2.Fo" +
-      "rwardMessageToDeadLetterQueueRequest\032;.a" +
-      "pache.rocketmq.v2.ForwardMessageToDeadLe" +
-      "tterQueueResponse\"\000\022i\n\016EndTransaction\022)." +
-      "apache.rocketmq.v2.EndTransactionRequest" +
-      "\032*.apache.rocketmq.v2.EndTransactionResp" +
-      "onse\"\000\022]\n\tTelemetry\022$.apache.rocketmq.v2" +
-      ".TelemetryCommand\032$.apache.rocketmq.v2.T" +
-      "elemetryCommand\"\000(\0010\001\022\204\001\n\027NotifyClientTe" +
-      "rmination\0222.apache.rocketmq.v2.NotifyCli" +
-      "entTerminationRequest\0323.apache.rocketmq." +
-      "v2.NotifyClientTerminationResponse\"\000\022\204\001\n" +
-      "\027ChangeInvisibleDuration\0222.apache.rocket" +
-      "mq.v2.ChangeInvisibleDurationRequest\0323.a" +
-      "pache.rocketmq.v2.ChangeInvisibleDuratio" +
-      "nResponse\"\000B<\n\022apache.rocketmq.v2B\tMQSer" +
-      
"viceP\001\240\001\001\330\001\001\252\002\022Apache.Rocketmq.V2b\006proto" +
-      "3"
+      "tus\"\375\001\n\025EndTransactionRequest\022+\n\005topic\030\001" +
+      " \001(\0132\034.apache.rocketmq.v2.Resource\022\022\n\nme" +
+      "ssage_id\030\002 \001(\t\022\026\n\016transaction_id\030\003 
\001(\t\022=" +
+      "\n\nresolution\030\004 \001(\0162).apache.rocketmq.v2." +
+      "TransactionResolution\0225\n\006source\030\005 \001(\0162%." +
+      "apache.rocketmq.v2.TransactionSource\022\025\n\r" +
+      "trace_context\030\006 \001(\t\"D\n\026EndTransactionRes" +
+      "ponse\022*\n\006status\030\001 \001(\0132\032.apache.rocketmq." +
+      "v2.Status\"-\n\034PrintThreadStackTraceComman" +
+      "d\022\r\n\005nonce\030\001 
\001(\t\"Y\n\020ThreadStackTrace\022\r\n\005" +
+      "nonce\030\001 \001(\t\022\037\n\022thread_stack_trace\030\002 \001(\tH" 
+
+      "\000\210\001\001B\025\n\023_thread_stack_trace\"\214\001\n\024VerifyMe" 
+
+      "ssageCommand\022\r\n\005nonce\030\001 \001(\t\0227\n\rmessage_q" +
+      "ueue\030\002 \001(\0132 .apache.rocketmq.v2.MessageQ" +
+      "ueue\022,\n\007message\030\003 \001(\0132\033.apache.rocketmq." +
+      "v2.Message\"$\n\023VerifyMessageResult\022\r\n\005non" +
+      "ce\030\001 \001(\t\"\271\001\n!RecoverOrphanedTransactionC" +
+      "ommand\0227\n\rmessage_queue\030\001 \001(\0132 .apache.r" +
+      "ocketmq.v2.MessageQueue\022C\n\036orphaned_tran" +
+      "sactional_message\030\002 \001(\0132\033.apache.rocketm" +
+      "q.v2.Message\022\026\n\016transaction_id\030\003 \001(\t\"r\n\n" +
+      "Publishing\022,\n\006topics\030\001 \003(\0132\034.apache.rock" +
+      "etmq.v2.Resource\022\037\n\027compress_body_thresh" +
+      "old\030\002 \001(\005\022\025\n\rmax_body_size\030\003 
\001(\005\"\263\002\n\014Sub" +
+      "scription\0220\n\005group\030\001 \001(\0132\034.apache.rocket" +
+      "mq.v2.ResourceH\000\210\001\001\022<\n\rsubscriptions\030\002 \003" +
+      "(\0132%.apache.rocketmq.v2.SubscriptionEntr" +
+      "y\022\021\n\004fifo\030\003 
\001(\010H\001\210\001\001\022\037\n\022receive_batch_si" +
+      "ze\030\004 
\001(\005H\002\210\001\001\022<\n\024long_polling_timeout\030\005 " +
+      "\001(\0132\031.google.protobuf.DurationH\003\210\001\001B\010\n\006_" +
+      "groupB\007\n\005_fifoB\025\n\023_receive_batch_sizeB\027\n" +
+      "\025_long_polling_timeout\"\344\003\n\010Settings\0228\n\013c" +
+      "lient_type\030\001 \001(\0162\036.apache.rocketmq.v2.Cl" +
+      "ientTypeH\001\210\001\001\0228\n\014access_point\030\002 
\001(\0132\035.ap" +
+      "ache.rocketmq.v2.EndpointsH\002\210\001\001\022<\n\016backo" +
+      "ff_policy\030\003 \001(\0132\037.apache.rocketmq.v2.Ret" +
+      "ryPolicyH\003\210\001\001\0227\n\017request_timeout\030\004 
\001(\0132\031" +
+      ".google.protobuf.DurationH\004\210\001\001\0224\n\npublis" +
+      "hing\030\005 \001(\0132\036.apache.rocketmq.v2.Publishi" +
+      "ngH\000\0228\n\014subscription\030\006 \001(\0132 .apache.rock" +
+      "etmq.v2.SubscriptionH\000\022*\n\nuser_agent\030\007 \001" +
+      "(\0132\026.apache.rocketmq.v2.UAB\t\n\007pub_subB\016\n" +
+      "\014_client_typeB\017\n\r_access_pointB\021\n\017_backo" +
+      "ff_policyB\022\n\020_request_timeout\"\252\004\n\020Teleme" +
+      "tryCommand\022/\n\006status\030\001 \001(\0132\032.apache.rock" +
+      "etmq.v2.StatusH\001\210\001\001\0220\n\010settings\030\002 
\001(\0132\034." +
+      "apache.rocketmq.v2.SettingsH\000\022B\n\022thread_" +
+      "stack_trace\030\003 \001(\0132$.apache.rocketmq.v2.T" +
+      "hreadStackTraceH\000\022H\n\025verify_message_resu" +
+      "lt\030\004 \001(\0132\'.apache.rocketmq.v2.VerifyMess" +
+      "ageResultH\000\022e\n$recover_orphaned_transact" +
+      "ion_command\030\005 \001(\01325.apache.rocketmq.v2.R" +
+      "ecoverOrphanedTransactionCommandH\000\022\\\n pr" +
+      "int_thread_stack_trace_command\030\006 \001(\01320.a" +
+      "pache.rocketmq.v2.PrintThreadStackTraceC" +
+      "ommandH\000\022J\n\026verify_message_command\030\007 \001(\013" +
+      "2(.apache.rocketmq.v2.VerifyMessageComma" +
+      "ndH\000B\t\n\007commandB\t\n\007_status\"\\\n\036NotifyClie" +
+      "ntTerminationRequest\0220\n\005group\030\001 \001(\0132\034.ap" +
+      "ache.rocketmq.v2.ResourceH\000\210\001\001B\010\n\006_group" +
+      "\"M\n\037NotifyClientTerminationResponse\022*\n\006s" +
+      "tatus\030\001 \001(\0132\032.apache.rocketmq.v2.Status\"" +
+      "\335\001\n\036ChangeInvisibleDurationRequest\022+\n\005gr" +
+      "oup\030\001 \001(\0132\034.apache.rocketmq.v2.Resource\022" +
+      "+\n\005topic\030\002 \001(\0132\034.apache.rocketmq.v2.Reso" +
+      "urce\022\026\n\016receipt_handle\030\003 \001(\t\0225\n\022invisibl" +
+      "e_duration\030\004 \001(\0132\031.google.protobuf.Durat" +
+      "ion\022\022\n\nmessage_id\030\005 \001(\t\"e\n\037ChangeInvisib" +
+      "leDurationResponse\022*\n\006status\030\001 \001(\0132\032.apa" +
+      "che.rocketmq.v2.Status\022\026\n\016receipt_handle" +
+      "\030\002 \001(\t2\340\t\n\020MessagingService\022]\n\nQueryRout" +
+      "e\022%.apache.rocketmq.v2.QueryRouteRequest" +
+      "\032&.apache.rocketmq.v2.QueryRouteResponse" +
+      "\"\000\022Z\n\tHeartbeat\022$.apache.rocketmq.v2.Hea" +
+      "rtbeatRequest\032%.apache.rocketmq.v2.Heart" +
+      "beatResponse\"\000\022`\n\013SendMessage\022&.apache.r" +
+      "ocketmq.v2.SendMessageRequest\032\'.apache.r" +
+      "ocketmq.v2.SendMessageResponse\"\000\022l\n\017Quer" +
+      "yAssignment\022*.apache.rocketmq.v2.QueryAs" +
+      "signmentRequest\032+.apache.rocketmq.v2.Que" +
+      "ryAssignmentResponse\"\000\022k\n\016ReceiveMessage" +
+      "\022).apache.rocketmq.v2.ReceiveMessageRequ" +
+      "est\032*.apache.rocketmq.v2.ReceiveMessageR" +
+      "esponse\"\0000\001\022]\n\nAckMessage\022%.apache.rocke" +
+      "tmq.v2.AckMessageRequest\032&.apache.rocket" +
+      "mq.v2.AckMessageResponse\"\000\022\234\001\n\037ForwardMe" +
+      "ssageToDeadLetterQueue\022:.apache.rocketmq" +
+      ".v2.ForwardMessageToDeadLetterQueueReque" +
+      "st\032;.apache.rocketmq.v2.ForwardMessageTo" +
+      "DeadLetterQueueResponse\"\000\022i\n\016EndTransact" +
+      "ion\022).apache.rocketmq.v2.EndTransactionR" +
+      "equest\032*.apache.rocketmq.v2.EndTransacti" +
+      "onResponse\"\000\022]\n\tTelemetry\022$.apache.rocke" +
+      "tmq.v2.TelemetryCommand\032$.apache.rocketm" +
+      "q.v2.TelemetryCommand\"\000(\0010\001\022\204\001\n\027NotifyCl" +
+      "ientTermination\0222.apache.rocketmq.v2.Not" +
+      "ifyClientTerminationRequest\0323.apache.roc" +
+      "ketmq.v2.NotifyClientTerminationResponse" +
+      "\"\000\022\204\001\n\027ChangeInvisibleDuration\0222.apache." +
+      "rocketmq.v2.ChangeInvisibleDurationReque" +
+      "st\0323.apache.rocketmq.v2.ChangeInvisibleD" +
+      "urationResponse\"\000B<\n\022apache.rocketmq.v2B" +
+      
"\tMQServiceP\001\240\001\001\330\001\001\252\002\022Apache.Rocketmq.V2b" +
+      "\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -364,170 +372,176 @@ public final class MQService {
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_SendMessageRequest_descriptor,
         new java.lang.String[] { "Messages", });
-    internal_static_apache_rocketmq_v2_SendMessageResponse_descriptor =
+    internal_static_apache_rocketmq_v2_SendResultEntry_descriptor =
       getDescriptor().getMessageTypes().get(3);
+    internal_static_apache_rocketmq_v2_SendResultEntry_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_apache_rocketmq_v2_SendResultEntry_descriptor,
+        new java.lang.String[] { "Status", "MessageId", "TransactionId", 
"Offset", });
+    internal_static_apache_rocketmq_v2_SendMessageResponse_descriptor =
+      getDescriptor().getMessageTypes().get(4);
     internal_static_apache_rocketmq_v2_SendMessageResponse_fieldAccessorTable 
= new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_SendMessageResponse_descriptor,
-        new java.lang.String[] { "Status", "Receipts", });
+        new java.lang.String[] { "Status", "Entries", });
     internal_static_apache_rocketmq_v2_QueryAssignmentRequest_descriptor =
-      getDescriptor().getMessageTypes().get(4);
+      getDescriptor().getMessageTypes().get(5);
     
internal_static_apache_rocketmq_v2_QueryAssignmentRequest_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_QueryAssignmentRequest_descriptor,
         new java.lang.String[] { "Topic", "Group", "Endpoints", });
     internal_static_apache_rocketmq_v2_QueryAssignmentResponse_descriptor =
-      getDescriptor().getMessageTypes().get(5);
+      getDescriptor().getMessageTypes().get(6);
     
internal_static_apache_rocketmq_v2_QueryAssignmentResponse_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_QueryAssignmentResponse_descriptor,
         new java.lang.String[] { "Status", "Assignments", });
     internal_static_apache_rocketmq_v2_ReceiveMessageRequest_descriptor =
-      getDescriptor().getMessageTypes().get(6);
+      getDescriptor().getMessageTypes().get(7);
     
internal_static_apache_rocketmq_v2_ReceiveMessageRequest_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_ReceiveMessageRequest_descriptor,
         new java.lang.String[] { "Group", "MessageQueue", "FilterExpression", 
"BatchSize", "InvisibleDuration", "AutoRenew", "InvisibleDuration", });
     internal_static_apache_rocketmq_v2_ReceiveMessageResponse_descriptor =
-      getDescriptor().getMessageTypes().get(7);
+      getDescriptor().getMessageTypes().get(8);
     
internal_static_apache_rocketmq_v2_ReceiveMessageResponse_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_ReceiveMessageResponse_descriptor,
         new java.lang.String[] { "Status", "Message", "Content", });
     internal_static_apache_rocketmq_v2_AckMessageEntry_descriptor =
-      getDescriptor().getMessageTypes().get(8);
+      getDescriptor().getMessageTypes().get(9);
     internal_static_apache_rocketmq_v2_AckMessageEntry_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_AckMessageEntry_descriptor,
         new java.lang.String[] { "MessageId", "ReceiptHandle", });
     internal_static_apache_rocketmq_v2_AckMessageRequest_descriptor =
-      getDescriptor().getMessageTypes().get(9);
+      getDescriptor().getMessageTypes().get(10);
     internal_static_apache_rocketmq_v2_AckMessageRequest_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_AckMessageRequest_descriptor,
         new java.lang.String[] { "Group", "Topic", "Entries", });
     internal_static_apache_rocketmq_v2_AckMessageResultEntry_descriptor =
-      getDescriptor().getMessageTypes().get(10);
+      getDescriptor().getMessageTypes().get(11);
     
internal_static_apache_rocketmq_v2_AckMessageResultEntry_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_AckMessageResultEntry_descriptor,
         new java.lang.String[] { "MessageId", "ReceiptHandle", "Status", });
     internal_static_apache_rocketmq_v2_AckMessageResponse_descriptor =
-      getDescriptor().getMessageTypes().get(11);
+      getDescriptor().getMessageTypes().get(12);
     internal_static_apache_rocketmq_v2_AckMessageResponse_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_AckMessageResponse_descriptor,
         new java.lang.String[] { "Status", "Entries", });
     
internal_static_apache_rocketmq_v2_ForwardMessageToDeadLetterQueueRequest_descriptor
 =
-      getDescriptor().getMessageTypes().get(12);
+      getDescriptor().getMessageTypes().get(13);
     
internal_static_apache_rocketmq_v2_ForwardMessageToDeadLetterQueueRequest_fieldAccessorTable
 = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         
internal_static_apache_rocketmq_v2_ForwardMessageToDeadLetterQueueRequest_descriptor,
         new java.lang.String[] { "Group", "Topic", "ReceiptHandle", 
"MessageId", "DeliveryAttempt", "MaxDeliveryAttempts", });
     
internal_static_apache_rocketmq_v2_ForwardMessageToDeadLetterQueueResponse_descriptor
 =
-      getDescriptor().getMessageTypes().get(13);
+      getDescriptor().getMessageTypes().get(14);
     
internal_static_apache_rocketmq_v2_ForwardMessageToDeadLetterQueueResponse_fieldAccessorTable
 = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         
internal_static_apache_rocketmq_v2_ForwardMessageToDeadLetterQueueResponse_descriptor,
         new java.lang.String[] { "Status", });
     internal_static_apache_rocketmq_v2_HeartbeatRequest_descriptor =
-      getDescriptor().getMessageTypes().get(14);
+      getDescriptor().getMessageTypes().get(15);
     internal_static_apache_rocketmq_v2_HeartbeatRequest_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_HeartbeatRequest_descriptor,
         new java.lang.String[] { "Group", "ClientType", "Group", });
     internal_static_apache_rocketmq_v2_HeartbeatResponse_descriptor =
-      getDescriptor().getMessageTypes().get(15);
+      getDescriptor().getMessageTypes().get(16);
     internal_static_apache_rocketmq_v2_HeartbeatResponse_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_HeartbeatResponse_descriptor,
         new java.lang.String[] { "Status", });
     internal_static_apache_rocketmq_v2_EndTransactionRequest_descriptor =
-      getDescriptor().getMessageTypes().get(16);
+      getDescriptor().getMessageTypes().get(17);
     
internal_static_apache_rocketmq_v2_EndTransactionRequest_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_EndTransactionRequest_descriptor,
         new java.lang.String[] { "Topic", "MessageId", "TransactionId", 
"Resolution", "Source", "TraceContext", });
     internal_static_apache_rocketmq_v2_EndTransactionResponse_descriptor =
-      getDescriptor().getMessageTypes().get(17);
+      getDescriptor().getMessageTypes().get(18);
     
internal_static_apache_rocketmq_v2_EndTransactionResponse_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_EndTransactionResponse_descriptor,
         new java.lang.String[] { "Status", });
     internal_static_apache_rocketmq_v2_PrintThreadStackTraceCommand_descriptor 
=
-      getDescriptor().getMessageTypes().get(18);
+      getDescriptor().getMessageTypes().get(19);
     
internal_static_apache_rocketmq_v2_PrintThreadStackTraceCommand_fieldAccessorTable
 = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         
internal_static_apache_rocketmq_v2_PrintThreadStackTraceCommand_descriptor,
         new java.lang.String[] { "Nonce", });
     internal_static_apache_rocketmq_v2_ThreadStackTrace_descriptor =
-      getDescriptor().getMessageTypes().get(19);
+      getDescriptor().getMessageTypes().get(20);
     internal_static_apache_rocketmq_v2_ThreadStackTrace_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_ThreadStackTrace_descriptor,
         new java.lang.String[] { "Nonce", "ThreadStackTrace", 
"ThreadStackTrace", });
     internal_static_apache_rocketmq_v2_VerifyMessageCommand_descriptor =
-      getDescriptor().getMessageTypes().get(20);
+      getDescriptor().getMessageTypes().get(21);
     internal_static_apache_rocketmq_v2_VerifyMessageCommand_fieldAccessorTable 
= new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_VerifyMessageCommand_descriptor,
         new java.lang.String[] { "Nonce", "MessageQueue", "Message", });
     internal_static_apache_rocketmq_v2_VerifyMessageResult_descriptor =
-      getDescriptor().getMessageTypes().get(21);
+      getDescriptor().getMessageTypes().get(22);
     internal_static_apache_rocketmq_v2_VerifyMessageResult_fieldAccessorTable 
= new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_VerifyMessageResult_descriptor,
         new java.lang.String[] { "Nonce", });
     
internal_static_apache_rocketmq_v2_RecoverOrphanedTransactionCommand_descriptor 
=
-      getDescriptor().getMessageTypes().get(22);
+      getDescriptor().getMessageTypes().get(23);
     
internal_static_apache_rocketmq_v2_RecoverOrphanedTransactionCommand_fieldAccessorTable
 = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         
internal_static_apache_rocketmq_v2_RecoverOrphanedTransactionCommand_descriptor,
         new java.lang.String[] { "MessageQueue", 
"OrphanedTransactionalMessage", "TransactionId", });
     internal_static_apache_rocketmq_v2_Publishing_descriptor =
-      getDescriptor().getMessageTypes().get(23);
+      getDescriptor().getMessageTypes().get(24);
     internal_static_apache_rocketmq_v2_Publishing_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_Publishing_descriptor,
         new java.lang.String[] { "Topics", "CompressBodyThreshold", 
"MaxBodySize", });
     internal_static_apache_rocketmq_v2_Subscription_descriptor =
-      getDescriptor().getMessageTypes().get(24);
+      getDescriptor().getMessageTypes().get(25);
     internal_static_apache_rocketmq_v2_Subscription_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_Subscription_descriptor,
         new java.lang.String[] { "Group", "Subscriptions", "Fifo", 
"ReceiveBatchSize", "LongPollingTimeout", "Group", "Fifo", "ReceiveBatchSize", 
"LongPollingTimeout", });
     internal_static_apache_rocketmq_v2_Settings_descriptor =
-      getDescriptor().getMessageTypes().get(25);
+      getDescriptor().getMessageTypes().get(26);
     internal_static_apache_rocketmq_v2_Settings_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_Settings_descriptor,
         new java.lang.String[] { "ClientType", "AccessPoint", "BackoffPolicy", 
"RequestTimeout", "Publishing", "Subscription", "UserAgent", "PubSub", 
"ClientType", "AccessPoint", "BackoffPolicy", "RequestTimeout", });
     internal_static_apache_rocketmq_v2_TelemetryCommand_descriptor =
-      getDescriptor().getMessageTypes().get(26);
+      getDescriptor().getMessageTypes().get(27);
     internal_static_apache_rocketmq_v2_TelemetryCommand_fieldAccessorTable = 
new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_TelemetryCommand_descriptor,
         new java.lang.String[] { "Status", "Settings", "ThreadStackTrace", 
"VerifyMessageResult", "RecoverOrphanedTransactionCommand", 
"PrintThreadStackTraceCommand", "VerifyMessageCommand", "Command", "Status", });
     
internal_static_apache_rocketmq_v2_NotifyClientTerminationRequest_descriptor =
-      getDescriptor().getMessageTypes().get(27);
+      getDescriptor().getMessageTypes().get(28);
     
internal_static_apache_rocketmq_v2_NotifyClientTerminationRequest_fieldAccessorTable
 = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         
internal_static_apache_rocketmq_v2_NotifyClientTerminationRequest_descriptor,
         new java.lang.String[] { "Group", "Group", });
     
internal_static_apache_rocketmq_v2_NotifyClientTerminationResponse_descriptor =
-      getDescriptor().getMessageTypes().get(28);
+      getDescriptor().getMessageTypes().get(29);
     
internal_static_apache_rocketmq_v2_NotifyClientTerminationResponse_fieldAccessorTable
 = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         
internal_static_apache_rocketmq_v2_NotifyClientTerminationResponse_descriptor,
         new java.lang.String[] { "Status", });
     
internal_static_apache_rocketmq_v2_ChangeInvisibleDurationRequest_descriptor =
-      getDescriptor().getMessageTypes().get(29);
+      getDescriptor().getMessageTypes().get(30);
     
internal_static_apache_rocketmq_v2_ChangeInvisibleDurationRequest_fieldAccessorTable
 = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         
internal_static_apache_rocketmq_v2_ChangeInvisibleDurationRequest_descriptor,
         new java.lang.String[] { "Group", "Topic", "ReceiptHandle", 
"InvisibleDuration", "MessageId", });
     
internal_static_apache_rocketmq_v2_ChangeInvisibleDurationResponse_descriptor =
-      getDescriptor().getMessageTypes().get(30);
+      getDescriptor().getMessageTypes().get(31);
     
internal_static_apache_rocketmq_v2_ChangeInvisibleDurationResponse_fieldAccessorTable
 = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         
internal_static_apache_rocketmq_v2_ChangeInvisibleDurationResponse_descriptor,
diff --git a/src/main/java/apache/rocketmq/v2/SendMessageResponse.java 
b/src/main/java/apache/rocketmq/v2/SendMessageResponse.java
index 5caa899..f6ac84f 100644
--- a/src/main/java/apache/rocketmq/v2/SendMessageResponse.java
+++ b/src/main/java/apache/rocketmq/v2/SendMessageResponse.java
@@ -16,7 +16,7 @@ private static final long serialVersionUID = 0L;
     super(builder);
   }
   private SendMessageResponse() {
-    receipts_ = java.util.Collections.emptyList();
+    entries_ = java.util.Collections.emptyList();
   }
 
   @java.lang.Override
@@ -65,11 +65,11 @@ private static final long serialVersionUID = 0L;
           }
           case 18: {
             if (!((mutable_bitField0_ & 0x00000001) != 0)) {
-              receipts_ = new 
java.util.ArrayList<apache.rocketmq.v2.SendReceipt>();
+              entries_ = new 
java.util.ArrayList<apache.rocketmq.v2.SendResultEntry>();
               mutable_bitField0_ |= 0x00000001;
             }
-            receipts_.add(
-                input.readMessage(apache.rocketmq.v2.SendReceipt.parser(), 
extensionRegistry));
+            entries_.add(
+                input.readMessage(apache.rocketmq.v2.SendResultEntry.parser(), 
extensionRegistry));
             break;
           }
           default: {
@@ -88,7 +88,7 @@ private static final long serialVersionUID = 0L;
           e).setUnfinishedMessage(this);
     } finally {
       if (((mutable_bitField0_ & 0x00000001) != 0)) {
-        receipts_ = java.util.Collections.unmodifiableList(receipts_);
+        entries_ = java.util.Collections.unmodifiableList(entries_);
       }
       this.unknownFields = unknownFields.build();
       makeExtensionsImmutable();
@@ -133,44 +133,69 @@ private static final long serialVersionUID = 0L;
     return getStatus();
   }
 
-  public static final int RECEIPTS_FIELD_NUMBER = 2;
-  private java.util.List<apache.rocketmq.v2.SendReceipt> receipts_;
+  public static final int ENTRIES_FIELD_NUMBER = 2;
+  private java.util.List<apache.rocketmq.v2.SendResultEntry> entries_;
   /**
-   * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+   * <pre>
+   * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+   * each entry for best certainty.
+   * </pre>
+   *
+   * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
    */
   @java.lang.Override
-  public java.util.List<apache.rocketmq.v2.SendReceipt> getReceiptsList() {
-    return receipts_;
+  public java.util.List<apache.rocketmq.v2.SendResultEntry> getEntriesList() {
+    return entries_;
   }
   /**
-   * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+   * <pre>
+   * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+   * each entry for best certainty.
+   * </pre>
+   *
+   * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
    */
   @java.lang.Override
-  public java.util.List<? extends apache.rocketmq.v2.SendReceiptOrBuilder> 
-      getReceiptsOrBuilderList() {
-    return receipts_;
+  public java.util.List<? extends apache.rocketmq.v2.SendResultEntryOrBuilder> 
+      getEntriesOrBuilderList() {
+    return entries_;
   }
   /**
-   * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+   * <pre>
+   * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+   * each entry for best certainty.
+   * </pre>
+   *
+   * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
    */
   @java.lang.Override
-  public int getReceiptsCount() {
-    return receipts_.size();
+  public int getEntriesCount() {
+    return entries_.size();
   }
   /**
-   * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+   * <pre>
+   * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+   * each entry for best certainty.
+   * </pre>
+   *
+   * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
    */
   @java.lang.Override
-  public apache.rocketmq.v2.SendReceipt getReceipts(int index) {
-    return receipts_.get(index);
+  public apache.rocketmq.v2.SendResultEntry getEntries(int index) {
+    return entries_.get(index);
   }
   /**
-   * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+   * <pre>
+   * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+   * each entry for best certainty.
+   * </pre>
+   *
+   * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
    */
   @java.lang.Override
-  public apache.rocketmq.v2.SendReceiptOrBuilder getReceiptsOrBuilder(
+  public apache.rocketmq.v2.SendResultEntryOrBuilder getEntriesOrBuilder(
       int index) {
-    return receipts_.get(index);
+    return entries_.get(index);
   }
 
   private byte memoizedIsInitialized = -1;
@@ -190,8 +215,8 @@ private static final long serialVersionUID = 0L;
     if (status_ != null) {
       output.writeMessage(1, getStatus());
     }
-    for (int i = 0; i < receipts_.size(); i++) {
-      output.writeMessage(2, receipts_.get(i));
+    for (int i = 0; i < entries_.size(); i++) {
+      output.writeMessage(2, entries_.get(i));
     }
     unknownFields.writeTo(output);
   }
@@ -206,9 +231,9 @@ private static final long serialVersionUID = 0L;
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(1, getStatus());
     }
-    for (int i = 0; i < receipts_.size(); i++) {
+    for (int i = 0; i < entries_.size(); i++) {
       size += com.google.protobuf.CodedOutputStream
-        .computeMessageSize(2, receipts_.get(i));
+        .computeMessageSize(2, entries_.get(i));
     }
     size += unknownFields.getSerializedSize();
     memoizedSize = size;
@@ -230,8 +255,8 @@ private static final long serialVersionUID = 0L;
       if (!getStatus()
           .equals(other.getStatus())) return false;
     }
-    if (!getReceiptsList()
-        .equals(other.getReceiptsList())) return false;
+    if (!getEntriesList()
+        .equals(other.getEntriesList())) return false;
     if (!unknownFields.equals(other.unknownFields)) return false;
     return true;
   }
@@ -247,9 +272,9 @@ private static final long serialVersionUID = 0L;
       hash = (37 * hash) + STATUS_FIELD_NUMBER;
       hash = (53 * hash) + getStatus().hashCode();
     }
-    if (getReceiptsCount() > 0) {
-      hash = (37 * hash) + RECEIPTS_FIELD_NUMBER;
-      hash = (53 * hash) + getReceiptsList().hashCode();
+    if (getEntriesCount() > 0) {
+      hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
+      hash = (53 * hash) + getEntriesList().hashCode();
     }
     hash = (29 * hash) + unknownFields.hashCode();
     memoizedHashCode = hash;
@@ -379,7 +404,7 @@ private static final long serialVersionUID = 0L;
     private void maybeForceBuilderInitialization() {
       if (com.google.protobuf.GeneratedMessageV3
               .alwaysUseFieldBuilders) {
-        getReceiptsFieldBuilder();
+        getEntriesFieldBuilder();
       }
     }
     @java.lang.Override
@@ -391,11 +416,11 @@ private static final long serialVersionUID = 0L;
         status_ = null;
         statusBuilder_ = null;
       }
-      if (receiptsBuilder_ == null) {
-        receipts_ = java.util.Collections.emptyList();
+      if (entriesBuilder_ == null) {
+        entries_ = java.util.Collections.emptyList();
         bitField0_ = (bitField0_ & ~0x00000001);
       } else {
-        receiptsBuilder_.clear();
+        entriesBuilder_.clear();
       }
       return this;
     }
@@ -429,14 +454,14 @@ private static final long serialVersionUID = 0L;
       } else {
         result.status_ = statusBuilder_.build();
       }
-      if (receiptsBuilder_ == null) {
+      if (entriesBuilder_ == null) {
         if (((bitField0_ & 0x00000001) != 0)) {
-          receipts_ = java.util.Collections.unmodifiableList(receipts_);
+          entries_ = java.util.Collections.unmodifiableList(entries_);
           bitField0_ = (bitField0_ & ~0x00000001);
         }
-        result.receipts_ = receipts_;
+        result.entries_ = entries_;
       } else {
-        result.receipts_ = receiptsBuilder_.build();
+        result.entries_ = entriesBuilder_.build();
       }
       onBuilt();
       return result;
@@ -489,29 +514,29 @@ private static final long serialVersionUID = 0L;
       if (other.hasStatus()) {
         mergeStatus(other.getStatus());
       }
-      if (receiptsBuilder_ == null) {
-        if (!other.receipts_.isEmpty()) {
-          if (receipts_.isEmpty()) {
-            receipts_ = other.receipts_;
+      if (entriesBuilder_ == null) {
+        if (!other.entries_.isEmpty()) {
+          if (entries_.isEmpty()) {
+            entries_ = other.entries_;
             bitField0_ = (bitField0_ & ~0x00000001);
           } else {
-            ensureReceiptsIsMutable();
-            receipts_.addAll(other.receipts_);
+            ensureEntriesIsMutable();
+            entries_.addAll(other.entries_);
           }
           onChanged();
         }
       } else {
-        if (!other.receipts_.isEmpty()) {
-          if (receiptsBuilder_.isEmpty()) {
-            receiptsBuilder_.dispose();
-            receiptsBuilder_ = null;
-            receipts_ = other.receipts_;
+        if (!other.entries_.isEmpty()) {
+          if (entriesBuilder_.isEmpty()) {
+            entriesBuilder_.dispose();
+            entriesBuilder_ = null;
+            entries_ = other.entries_;
             bitField0_ = (bitField0_ & ~0x00000001);
-            receiptsBuilder_ = 
+            entriesBuilder_ = 
               com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
-                 getReceiptsFieldBuilder() : null;
+                 getEntriesFieldBuilder() : null;
           } else {
-            receiptsBuilder_.addAllMessages(other.receipts_);
+            entriesBuilder_.addAllMessages(other.entries_);
           }
         }
       }
@@ -664,244 +689,334 @@ private static final long serialVersionUID = 0L;
       return statusBuilder_;
     }
 
-    private java.util.List<apache.rocketmq.v2.SendReceipt> receipts_ =
+    private java.util.List<apache.rocketmq.v2.SendResultEntry> entries_ =
       java.util.Collections.emptyList();
-    private void ensureReceiptsIsMutable() {
+    private void ensureEntriesIsMutable() {
       if (!((bitField0_ & 0x00000001) != 0)) {
-        receipts_ = new 
java.util.ArrayList<apache.rocketmq.v2.SendReceipt>(receipts_);
+        entries_ = new 
java.util.ArrayList<apache.rocketmq.v2.SendResultEntry>(entries_);
         bitField0_ |= 0x00000001;
        }
     }
 
     private com.google.protobuf.RepeatedFieldBuilderV3<
-        apache.rocketmq.v2.SendReceipt, 
apache.rocketmq.v2.SendReceipt.Builder, 
apache.rocketmq.v2.SendReceiptOrBuilder> receiptsBuilder_;
+        apache.rocketmq.v2.SendResultEntry, 
apache.rocketmq.v2.SendResultEntry.Builder, 
apache.rocketmq.v2.SendResultEntryOrBuilder> entriesBuilder_;
 
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public java.util.List<apache.rocketmq.v2.SendReceipt> getReceiptsList() {
-      if (receiptsBuilder_ == null) {
-        return java.util.Collections.unmodifiableList(receipts_);
+    public java.util.List<apache.rocketmq.v2.SendResultEntry> getEntriesList() 
{
+      if (entriesBuilder_ == null) {
+        return java.util.Collections.unmodifiableList(entries_);
       } else {
-        return receiptsBuilder_.getMessageList();
+        return entriesBuilder_.getMessageList();
       }
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public int getReceiptsCount() {
-      if (receiptsBuilder_ == null) {
-        return receipts_.size();
+    public int getEntriesCount() {
+      if (entriesBuilder_ == null) {
+        return entries_.size();
       } else {
-        return receiptsBuilder_.getCount();
+        return entriesBuilder_.getCount();
       }
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public apache.rocketmq.v2.SendReceipt getReceipts(int index) {
-      if (receiptsBuilder_ == null) {
-        return receipts_.get(index);
+    public apache.rocketmq.v2.SendResultEntry getEntries(int index) {
+      if (entriesBuilder_ == null) {
+        return entries_.get(index);
       } else {
-        return receiptsBuilder_.getMessage(index);
+        return entriesBuilder_.getMessage(index);
       }
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public Builder setReceipts(
-        int index, apache.rocketmq.v2.SendReceipt value) {
-      if (receiptsBuilder_ == null) {
+    public Builder setEntries(
+        int index, apache.rocketmq.v2.SendResultEntry value) {
+      if (entriesBuilder_ == null) {
         if (value == null) {
           throw new NullPointerException();
         }
-        ensureReceiptsIsMutable();
-        receipts_.set(index, value);
+        ensureEntriesIsMutable();
+        entries_.set(index, value);
         onChanged();
       } else {
-        receiptsBuilder_.setMessage(index, value);
+        entriesBuilder_.setMessage(index, value);
       }
       return this;
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public Builder setReceipts(
-        int index, apache.rocketmq.v2.SendReceipt.Builder builderForValue) {
-      if (receiptsBuilder_ == null) {
-        ensureReceiptsIsMutable();
-        receipts_.set(index, builderForValue.build());
+    public Builder setEntries(
+        int index, apache.rocketmq.v2.SendResultEntry.Builder builderForValue) 
{
+      if (entriesBuilder_ == null) {
+        ensureEntriesIsMutable();
+        entries_.set(index, builderForValue.build());
         onChanged();
       } else {
-        receiptsBuilder_.setMessage(index, builderForValue.build());
+        entriesBuilder_.setMessage(index, builderForValue.build());
       }
       return this;
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public Builder addReceipts(apache.rocketmq.v2.SendReceipt value) {
-      if (receiptsBuilder_ == null) {
+    public Builder addEntries(apache.rocketmq.v2.SendResultEntry value) {
+      if (entriesBuilder_ == null) {
         if (value == null) {
           throw new NullPointerException();
         }
-        ensureReceiptsIsMutable();
-        receipts_.add(value);
+        ensureEntriesIsMutable();
+        entries_.add(value);
         onChanged();
       } else {
-        receiptsBuilder_.addMessage(value);
+        entriesBuilder_.addMessage(value);
       }
       return this;
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public Builder addReceipts(
-        int index, apache.rocketmq.v2.SendReceipt value) {
-      if (receiptsBuilder_ == null) {
+    public Builder addEntries(
+        int index, apache.rocketmq.v2.SendResultEntry value) {
+      if (entriesBuilder_ == null) {
         if (value == null) {
           throw new NullPointerException();
         }
-        ensureReceiptsIsMutable();
-        receipts_.add(index, value);
+        ensureEntriesIsMutable();
+        entries_.add(index, value);
         onChanged();
       } else {
-        receiptsBuilder_.addMessage(index, value);
+        entriesBuilder_.addMessage(index, value);
       }
       return this;
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public Builder addReceipts(
-        apache.rocketmq.v2.SendReceipt.Builder builderForValue) {
-      if (receiptsBuilder_ == null) {
-        ensureReceiptsIsMutable();
-        receipts_.add(builderForValue.build());
+    public Builder addEntries(
+        apache.rocketmq.v2.SendResultEntry.Builder builderForValue) {
+      if (entriesBuilder_ == null) {
+        ensureEntriesIsMutable();
+        entries_.add(builderForValue.build());
         onChanged();
       } else {
-        receiptsBuilder_.addMessage(builderForValue.build());
+        entriesBuilder_.addMessage(builderForValue.build());
       }
       return this;
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public Builder addReceipts(
-        int index, apache.rocketmq.v2.SendReceipt.Builder builderForValue) {
-      if (receiptsBuilder_ == null) {
-        ensureReceiptsIsMutable();
-        receipts_.add(index, builderForValue.build());
+    public Builder addEntries(
+        int index, apache.rocketmq.v2.SendResultEntry.Builder builderForValue) 
{
+      if (entriesBuilder_ == null) {
+        ensureEntriesIsMutable();
+        entries_.add(index, builderForValue.build());
         onChanged();
       } else {
-        receiptsBuilder_.addMessage(index, builderForValue.build());
+        entriesBuilder_.addMessage(index, builderForValue.build());
       }
       return this;
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public Builder addAllReceipts(
-        java.lang.Iterable<? extends apache.rocketmq.v2.SendReceipt> values) {
-      if (receiptsBuilder_ == null) {
-        ensureReceiptsIsMutable();
+    public Builder addAllEntries(
+        java.lang.Iterable<? extends apache.rocketmq.v2.SendResultEntry> 
values) {
+      if (entriesBuilder_ == null) {
+        ensureEntriesIsMutable();
         com.google.protobuf.AbstractMessageLite.Builder.addAll(
-            values, receipts_);
+            values, entries_);
         onChanged();
       } else {
-        receiptsBuilder_.addAllMessages(values);
+        entriesBuilder_.addAllMessages(values);
       }
       return this;
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public Builder clearReceipts() {
-      if (receiptsBuilder_ == null) {
-        receipts_ = java.util.Collections.emptyList();
+    public Builder clearEntries() {
+      if (entriesBuilder_ == null) {
+        entries_ = java.util.Collections.emptyList();
         bitField0_ = (bitField0_ & ~0x00000001);
         onChanged();
       } else {
-        receiptsBuilder_.clear();
+        entriesBuilder_.clear();
       }
       return this;
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public Builder removeReceipts(int index) {
-      if (receiptsBuilder_ == null) {
-        ensureReceiptsIsMutable();
-        receipts_.remove(index);
+    public Builder removeEntries(int index) {
+      if (entriesBuilder_ == null) {
+        ensureEntriesIsMutable();
+        entries_.remove(index);
         onChanged();
       } else {
-        receiptsBuilder_.remove(index);
+        entriesBuilder_.remove(index);
       }
       return this;
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public apache.rocketmq.v2.SendReceipt.Builder getReceiptsBuilder(
+    public apache.rocketmq.v2.SendResultEntry.Builder getEntriesBuilder(
         int index) {
-      return getReceiptsFieldBuilder().getBuilder(index);
+      return getEntriesFieldBuilder().getBuilder(index);
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public apache.rocketmq.v2.SendReceiptOrBuilder getReceiptsOrBuilder(
+    public apache.rocketmq.v2.SendResultEntryOrBuilder getEntriesOrBuilder(
         int index) {
-      if (receiptsBuilder_ == null) {
-        return receipts_.get(index);  } else {
-        return receiptsBuilder_.getMessageOrBuilder(index);
+      if (entriesBuilder_ == null) {
+        return entries_.get(index);  } else {
+        return entriesBuilder_.getMessageOrBuilder(index);
       }
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public java.util.List<? extends apache.rocketmq.v2.SendReceiptOrBuilder> 
-         getReceiptsOrBuilderList() {
-      if (receiptsBuilder_ != null) {
-        return receiptsBuilder_.getMessageOrBuilderList();
+    public java.util.List<? extends 
apache.rocketmq.v2.SendResultEntryOrBuilder> 
+         getEntriesOrBuilderList() {
+      if (entriesBuilder_ != null) {
+        return entriesBuilder_.getMessageOrBuilderList();
       } else {
-        return java.util.Collections.unmodifiableList(receipts_);
+        return java.util.Collections.unmodifiableList(entries_);
       }
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public apache.rocketmq.v2.SendReceipt.Builder addReceiptsBuilder() {
-      return getReceiptsFieldBuilder().addBuilder(
-          apache.rocketmq.v2.SendReceipt.getDefaultInstance());
+    public apache.rocketmq.v2.SendResultEntry.Builder addEntriesBuilder() {
+      return getEntriesFieldBuilder().addBuilder(
+          apache.rocketmq.v2.SendResultEntry.getDefaultInstance());
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public apache.rocketmq.v2.SendReceipt.Builder addReceiptsBuilder(
+    public apache.rocketmq.v2.SendResultEntry.Builder addEntriesBuilder(
         int index) {
-      return getReceiptsFieldBuilder().addBuilder(
-          index, apache.rocketmq.v2.SendReceipt.getDefaultInstance());
+      return getEntriesFieldBuilder().addBuilder(
+          index, apache.rocketmq.v2.SendResultEntry.getDefaultInstance());
     }
     /**
-     * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+     * <pre>
+     * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+     * each entry for best certainty.
+     * </pre>
+     *
+     * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
      */
-    public java.util.List<apache.rocketmq.v2.SendReceipt.Builder> 
-         getReceiptsBuilderList() {
-      return getReceiptsFieldBuilder().getBuilderList();
+    public java.util.List<apache.rocketmq.v2.SendResultEntry.Builder> 
+         getEntriesBuilderList() {
+      return getEntriesFieldBuilder().getBuilderList();
     }
     private com.google.protobuf.RepeatedFieldBuilderV3<
-        apache.rocketmq.v2.SendReceipt, 
apache.rocketmq.v2.SendReceipt.Builder, 
apache.rocketmq.v2.SendReceiptOrBuilder> 
-        getReceiptsFieldBuilder() {
-      if (receiptsBuilder_ == null) {
-        receiptsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-            apache.rocketmq.v2.SendReceipt, 
apache.rocketmq.v2.SendReceipt.Builder, 
apache.rocketmq.v2.SendReceiptOrBuilder>(
-                receipts_,
+        apache.rocketmq.v2.SendResultEntry, 
apache.rocketmq.v2.SendResultEntry.Builder, 
apache.rocketmq.v2.SendResultEntryOrBuilder> 
+        getEntriesFieldBuilder() {
+      if (entriesBuilder_ == null) {
+        entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+            apache.rocketmq.v2.SendResultEntry, 
apache.rocketmq.v2.SendResultEntry.Builder, 
apache.rocketmq.v2.SendResultEntryOrBuilder>(
+                entries_,
                 ((bitField0_ & 0x00000001) != 0),
                 getParentForChildren(),
                 isClean());
-        receipts_ = null;
+        entries_ = null;
       }
-      return receiptsBuilder_;
+      return entriesBuilder_;
     }
     @java.lang.Override
     public final Builder setUnknownFields(
diff --git a/src/main/java/apache/rocketmq/v2/SendMessageResponseOrBuilder.java 
b/src/main/java/apache/rocketmq/v2/SendMessageResponseOrBuilder.java
index 31201ec..a4ac25f 100644
--- a/src/main/java/apache/rocketmq/v2/SendMessageResponseOrBuilder.java
+++ b/src/main/java/apache/rocketmq/v2/SendMessageResponseOrBuilder.java
@@ -23,26 +23,51 @@ public interface SendMessageResponseOrBuilder extends
   apache.rocketmq.v2.StatusOrBuilder getStatusOrBuilder();
 
   /**
-   * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+   * <pre>
+   * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+   * each entry for best certainty.
+   * </pre>
+   *
+   * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
    */
-  java.util.List<apache.rocketmq.v2.SendReceipt> 
-      getReceiptsList();
+  java.util.List<apache.rocketmq.v2.SendResultEntry> 
+      getEntriesList();
   /**
-   * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+   * <pre>
+   * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+   * each entry for best certainty.
+   * </pre>
+   *
+   * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
    */
-  apache.rocketmq.v2.SendReceipt getReceipts(int index);
+  apache.rocketmq.v2.SendResultEntry getEntries(int index);
   /**
-   * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+   * <pre>
+   * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+   * each entry for best certainty.
+   * </pre>
+   *
+   * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
    */
-  int getReceiptsCount();
+  int getEntriesCount();
   /**
-   * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+   * <pre>
+   * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+   * each entry for best certainty.
+   * </pre>
+   *
+   * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
    */
-  java.util.List<? extends apache.rocketmq.v2.SendReceiptOrBuilder> 
-      getReceiptsOrBuilderList();
+  java.util.List<? extends apache.rocketmq.v2.SendResultEntryOrBuilder> 
+      getEntriesOrBuilderList();
   /**
-   * <code>repeated .apache.rocketmq.v2.SendReceipt receipts = 2;</code>
+   * <pre>
+   * Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+   * each entry for best certainty.
+   * </pre>
+   *
+   * <code>repeated .apache.rocketmq.v2.SendResultEntry entries = 2;</code>
    */
-  apache.rocketmq.v2.SendReceiptOrBuilder getReceiptsOrBuilder(
+  apache.rocketmq.v2.SendResultEntryOrBuilder getEntriesOrBuilder(
       int index);
 }
diff --git a/src/main/java/apache/rocketmq/v2/SendReceiptOrBuilder.java 
b/src/main/java/apache/rocketmq/v2/SendReceiptOrBuilder.java
deleted file mode 100644
index 1323fa1..0000000
--- a/src/main/java/apache/rocketmq/v2/SendReceiptOrBuilder.java
+++ /dev/null
@@ -1,39 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: apache/rocketmq/v2/definition.proto
-
-package apache.rocketmq.v2;
-
-public interface SendReceiptOrBuilder extends
-    // 
@@protoc_insertion_point(interface_extends:apache.rocketmq.v2.SendReceipt)
-    com.google.protobuf.MessageOrBuilder {
-
-  /**
-   * <code>string message_id = 1;</code>
-   * @return The messageId.
-   */
-  java.lang.String getMessageId();
-  /**
-   * <code>string message_id = 1;</code>
-   * @return The bytes for messageId.
-   */
-  com.google.protobuf.ByteString
-      getMessageIdBytes();
-
-  /**
-   * <code>string transaction_id = 2;</code>
-   * @return The transactionId.
-   */
-  java.lang.String getTransactionId();
-  /**
-   * <code>string transaction_id = 2;</code>
-   * @return The bytes for transactionId.
-   */
-  com.google.protobuf.ByteString
-      getTransactionIdBytes();
-
-  /**
-   * <code>int64 offset = 3;</code>
-   * @return The offset.
-   */
-  long getOffset();
-}
diff --git a/src/main/java/apache/rocketmq/v2/SendReceipt.java 
b/src/main/java/apache/rocketmq/v2/SendResultEntry.java
similarity index 63%
rename from src/main/java/apache/rocketmq/v2/SendReceipt.java
rename to src/main/java/apache/rocketmq/v2/SendResultEntry.java
index d1e143d..d9de7e1 100644
--- a/src/main/java/apache/rocketmq/v2/SendReceipt.java
+++ b/src/main/java/apache/rocketmq/v2/SendResultEntry.java
@@ -1,21 +1,21 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: apache/rocketmq/v2/definition.proto
+// source: apache/rocketmq/v2/service.proto
 
 package apache.rocketmq.v2;
 
 /**
- * Protobuf type {@code apache.rocketmq.v2.SendReceipt}
+ * Protobuf type {@code apache.rocketmq.v2.SendResultEntry}
  */
-public final class SendReceipt extends
+public final class SendResultEntry extends
     com.google.protobuf.GeneratedMessageV3 implements
-    // 
@@protoc_insertion_point(message_implements:apache.rocketmq.v2.SendReceipt)
-    SendReceiptOrBuilder {
+    // 
@@protoc_insertion_point(message_implements:apache.rocketmq.v2.SendResultEntry)
+    SendResultEntryOrBuilder {
 private static final long serialVersionUID = 0L;
-  // Use SendReceipt.newBuilder() to construct.
-  private SendReceipt(com.google.protobuf.GeneratedMessageV3.Builder<?> 
builder) {
+  // Use SendResultEntry.newBuilder() to construct.
+  private SendResultEntry(com.google.protobuf.GeneratedMessageV3.Builder<?> 
builder) {
     super(builder);
   }
-  private SendReceipt() {
+  private SendResultEntry() {
     messageId_ = "";
     transactionId_ = "";
   }
@@ -24,7 +24,7 @@ private static final long serialVersionUID = 0L;
   @SuppressWarnings({"unused"})
   protected java.lang.Object newInstance(
       UnusedPrivateParameter unused) {
-    return new SendReceipt();
+    return new SendResultEntry();
   }
 
   @java.lang.Override
@@ -32,7 +32,7 @@ private static final long serialVersionUID = 0L;
   getUnknownFields() {
     return this.unknownFields;
   }
-  private SendReceipt(
+  private SendResultEntry(
       com.google.protobuf.CodedInputStream input,
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
@@ -51,18 +51,31 @@ private static final long serialVersionUID = 0L;
             done = true;
             break;
           case 10: {
+            apache.rocketmq.v2.Status.Builder subBuilder = null;
+            if (status_ != null) {
+              subBuilder = status_.toBuilder();
+            }
+            status_ = input.readMessage(apache.rocketmq.v2.Status.parser(), 
extensionRegistry);
+            if (subBuilder != null) {
+              subBuilder.mergeFrom(status_);
+              status_ = subBuilder.buildPartial();
+            }
+
+            break;
+          }
+          case 18: {
             java.lang.String s = input.readStringRequireUtf8();
 
             messageId_ = s;
             break;
           }
-          case 18: {
+          case 26: {
             java.lang.String s = input.readStringRequireUtf8();
 
             transactionId_ = s;
             break;
           }
-          case 24: {
+          case 32: {
 
             offset_ = input.readInt64();
             break;
@@ -88,21 +101,47 @@ private static final long serialVersionUID = 0L;
   }
   public static final com.google.protobuf.Descriptors.Descriptor
       getDescriptor() {
-    return 
apache.rocketmq.v2.MQDomain.internal_static_apache_rocketmq_v2_SendReceipt_descriptor;
+    return 
apache.rocketmq.v2.MQService.internal_static_apache_rocketmq_v2_SendResultEntry_descriptor;
   }
 
   @java.lang.Override
   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internalGetFieldAccessorTable() {
-    return 
apache.rocketmq.v2.MQDomain.internal_static_apache_rocketmq_v2_SendReceipt_fieldAccessorTable
+    return 
apache.rocketmq.v2.MQService.internal_static_apache_rocketmq_v2_SendResultEntry_fieldAccessorTable
         .ensureFieldAccessorsInitialized(
-            apache.rocketmq.v2.SendReceipt.class, 
apache.rocketmq.v2.SendReceipt.Builder.class);
+            apache.rocketmq.v2.SendResultEntry.class, 
apache.rocketmq.v2.SendResultEntry.Builder.class);
+  }
+
+  public static final int STATUS_FIELD_NUMBER = 1;
+  private apache.rocketmq.v2.Status status_;
+  /**
+   * <code>.apache.rocketmq.v2.Status status = 1;</code>
+   * @return Whether the status field is set.
+   */
+  @java.lang.Override
+  public boolean hasStatus() {
+    return status_ != null;
+  }
+  /**
+   * <code>.apache.rocketmq.v2.Status status = 1;</code>
+   * @return The status.
+   */
+  @java.lang.Override
+  public apache.rocketmq.v2.Status getStatus() {
+    return status_ == null ? apache.rocketmq.v2.Status.getDefaultInstance() : 
status_;
+  }
+  /**
+   * <code>.apache.rocketmq.v2.Status status = 1;</code>
+   */
+  @java.lang.Override
+  public apache.rocketmq.v2.StatusOrBuilder getStatusOrBuilder() {
+    return getStatus();
   }
 
-  public static final int MESSAGE_ID_FIELD_NUMBER = 1;
+  public static final int MESSAGE_ID_FIELD_NUMBER = 2;
   private volatile java.lang.Object messageId_;
   /**
-   * <code>string message_id = 1;</code>
+   * <code>string message_id = 2;</code>
    * @return The messageId.
    */
   @java.lang.Override
@@ -119,7 +158,7 @@ private static final long serialVersionUID = 0L;
     }
   }
   /**
-   * <code>string message_id = 1;</code>
+   * <code>string message_id = 2;</code>
    * @return The bytes for messageId.
    */
   @java.lang.Override
@@ -137,10 +176,10 @@ private static final long serialVersionUID = 0L;
     }
   }
 
-  public static final int TRANSACTION_ID_FIELD_NUMBER = 2;
+  public static final int TRANSACTION_ID_FIELD_NUMBER = 3;
   private volatile java.lang.Object transactionId_;
   /**
-   * <code>string transaction_id = 2;</code>
+   * <code>string transaction_id = 3;</code>
    * @return The transactionId.
    */
   @java.lang.Override
@@ -157,7 +196,7 @@ private static final long serialVersionUID = 0L;
     }
   }
   /**
-   * <code>string transaction_id = 2;</code>
+   * <code>string transaction_id = 3;</code>
    * @return The bytes for transactionId.
    */
   @java.lang.Override
@@ -175,10 +214,10 @@ private static final long serialVersionUID = 0L;
     }
   }
 
-  public static final int OFFSET_FIELD_NUMBER = 3;
+  public static final int OFFSET_FIELD_NUMBER = 4;
   private long offset_;
   /**
-   * <code>int64 offset = 3;</code>
+   * <code>int64 offset = 4;</code>
    * @return The offset.
    */
   @java.lang.Override
@@ -200,14 +239,17 @@ private static final long serialVersionUID = 0L;
   @java.lang.Override
   public void writeTo(com.google.protobuf.CodedOutputStream output)
                       throws java.io.IOException {
+    if (status_ != null) {
+      output.writeMessage(1, getStatus());
+    }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(messageId_)) {
-      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, 
messageId_);
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, 
messageId_);
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(transactionId_)) 
{
-      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, 
transactionId_);
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, 
transactionId_);
     }
     if (offset_ != 0L) {
-      output.writeInt64(3, offset_);
+      output.writeInt64(4, offset_);
     }
     unknownFields.writeTo(output);
   }
@@ -218,15 +260,19 @@ private static final long serialVersionUID = 0L;
     if (size != -1) return size;
 
     size = 0;
+    if (status_ != null) {
+      size += com.google.protobuf.CodedOutputStream
+        .computeMessageSize(1, getStatus());
+    }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(messageId_)) {
-      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, 
messageId_);
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, 
messageId_);
     }
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(transactionId_)) 
{
-      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, 
transactionId_);
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, 
transactionId_);
     }
     if (offset_ != 0L) {
       size += com.google.protobuf.CodedOutputStream
-        .computeInt64Size(3, offset_);
+        .computeInt64Size(4, offset_);
     }
     size += unknownFields.getSerializedSize();
     memoizedSize = size;
@@ -238,11 +284,16 @@ private static final long serialVersionUID = 0L;
     if (obj == this) {
      return true;
     }
-    if (!(obj instanceof apache.rocketmq.v2.SendReceipt)) {
+    if (!(obj instanceof apache.rocketmq.v2.SendResultEntry)) {
       return super.equals(obj);
     }
-    apache.rocketmq.v2.SendReceipt other = (apache.rocketmq.v2.SendReceipt) 
obj;
+    apache.rocketmq.v2.SendResultEntry other = 
(apache.rocketmq.v2.SendResultEntry) obj;
 
+    if (hasStatus() != other.hasStatus()) return false;
+    if (hasStatus()) {
+      if (!getStatus()
+          .equals(other.getStatus())) return false;
+    }
     if (!getMessageId()
         .equals(other.getMessageId())) return false;
     if (!getTransactionId()
@@ -260,6 +311,10 @@ private static final long serialVersionUID = 0L;
     }
     int hash = 41;
     hash = (19 * hash) + getDescriptor().hashCode();
+    if (hasStatus()) {
+      hash = (37 * hash) + STATUS_FIELD_NUMBER;
+      hash = (53 * hash) + getStatus().hashCode();
+    }
     hash = (37 * hash) + MESSAGE_ID_FIELD_NUMBER;
     hash = (53 * hash) + getMessageId().hashCode();
     hash = (37 * hash) + TRANSACTION_ID_FIELD_NUMBER;
@@ -272,69 +327,69 @@ private static final long serialVersionUID = 0L;
     return hash;
   }
 
-  public static apache.rocketmq.v2.SendReceipt parseFrom(
+  public static apache.rocketmq.v2.SendResultEntry parseFrom(
       java.nio.ByteBuffer data)
       throws com.google.protobuf.InvalidProtocolBufferException {
     return PARSER.parseFrom(data);
   }
-  public static apache.rocketmq.v2.SendReceipt parseFrom(
+  public static apache.rocketmq.v2.SendResultEntry parseFrom(
       java.nio.ByteBuffer data,
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     return PARSER.parseFrom(data, extensionRegistry);
   }
-  public static apache.rocketmq.v2.SendReceipt parseFrom(
+  public static apache.rocketmq.v2.SendResultEntry parseFrom(
       com.google.protobuf.ByteString data)
       throws com.google.protobuf.InvalidProtocolBufferException {
     return PARSER.parseFrom(data);
   }
-  public static apache.rocketmq.v2.SendReceipt parseFrom(
+  public static apache.rocketmq.v2.SendResultEntry parseFrom(
       com.google.protobuf.ByteString data,
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     return PARSER.parseFrom(data, extensionRegistry);
   }
-  public static apache.rocketmq.v2.SendReceipt parseFrom(byte[] data)
+  public static apache.rocketmq.v2.SendResultEntry parseFrom(byte[] data)
       throws com.google.protobuf.InvalidProtocolBufferException {
     return PARSER.parseFrom(data);
   }
-  public static apache.rocketmq.v2.SendReceipt parseFrom(
+  public static apache.rocketmq.v2.SendResultEntry parseFrom(
       byte[] data,
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     return PARSER.parseFrom(data, extensionRegistry);
   }
-  public static apache.rocketmq.v2.SendReceipt parseFrom(java.io.InputStream 
input)
+  public static apache.rocketmq.v2.SendResultEntry 
parseFrom(java.io.InputStream input)
       throws java.io.IOException {
     return com.google.protobuf.GeneratedMessageV3
         .parseWithIOException(PARSER, input);
   }
-  public static apache.rocketmq.v2.SendReceipt parseFrom(
+  public static apache.rocketmq.v2.SendResultEntry parseFrom(
       java.io.InputStream input,
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws java.io.IOException {
     return com.google.protobuf.GeneratedMessageV3
         .parseWithIOException(PARSER, input, extensionRegistry);
   }
-  public static apache.rocketmq.v2.SendReceipt 
parseDelimitedFrom(java.io.InputStream input)
+  public static apache.rocketmq.v2.SendResultEntry 
parseDelimitedFrom(java.io.InputStream input)
       throws java.io.IOException {
     return com.google.protobuf.GeneratedMessageV3
         .parseDelimitedWithIOException(PARSER, input);
   }
-  public static apache.rocketmq.v2.SendReceipt parseDelimitedFrom(
+  public static apache.rocketmq.v2.SendResultEntry parseDelimitedFrom(
       java.io.InputStream input,
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws java.io.IOException {
     return com.google.protobuf.GeneratedMessageV3
         .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
   }
-  public static apache.rocketmq.v2.SendReceipt parseFrom(
+  public static apache.rocketmq.v2.SendResultEntry parseFrom(
       com.google.protobuf.CodedInputStream input)
       throws java.io.IOException {
     return com.google.protobuf.GeneratedMessageV3
         .parseWithIOException(PARSER, input);
   }
-  public static apache.rocketmq.v2.SendReceipt parseFrom(
+  public static apache.rocketmq.v2.SendResultEntry parseFrom(
       com.google.protobuf.CodedInputStream input,
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws java.io.IOException {
@@ -347,7 +402,7 @@ private static final long serialVersionUID = 0L;
   public static Builder newBuilder() {
     return DEFAULT_INSTANCE.toBuilder();
   }
-  public static Builder newBuilder(apache.rocketmq.v2.SendReceipt prototype) {
+  public static Builder newBuilder(apache.rocketmq.v2.SendResultEntry 
prototype) {
     return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
   }
   @java.lang.Override
@@ -363,26 +418,26 @@ private static final long serialVersionUID = 0L;
     return builder;
   }
   /**
-   * Protobuf type {@code apache.rocketmq.v2.SendReceipt}
+   * Protobuf type {@code apache.rocketmq.v2.SendResultEntry}
    */
   public static final class Builder extends
       com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-      // 
@@protoc_insertion_point(builder_implements:apache.rocketmq.v2.SendReceipt)
-      apache.rocketmq.v2.SendReceiptOrBuilder {
+      // 
@@protoc_insertion_point(builder_implements:apache.rocketmq.v2.SendResultEntry)
+      apache.rocketmq.v2.SendResultEntryOrBuilder {
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return 
apache.rocketmq.v2.MQDomain.internal_static_apache_rocketmq_v2_SendReceipt_descriptor;
+      return 
apache.rocketmq.v2.MQService.internal_static_apache_rocketmq_v2_SendResultEntry_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return 
apache.rocketmq.v2.MQDomain.internal_static_apache_rocketmq_v2_SendReceipt_fieldAccessorTable
+      return 
apache.rocketmq.v2.MQService.internal_static_apache_rocketmq_v2_SendResultEntry_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              apache.rocketmq.v2.SendReceipt.class, 
apache.rocketmq.v2.SendReceipt.Builder.class);
+              apache.rocketmq.v2.SendResultEntry.class, 
apache.rocketmq.v2.SendResultEntry.Builder.class);
     }
 
-    // Construct using apache.rocketmq.v2.SendReceipt.newBuilder()
+    // Construct using apache.rocketmq.v2.SendResultEntry.newBuilder()
     private Builder() {
       maybeForceBuilderInitialization();
     }
@@ -400,6 +455,12 @@ private static final long serialVersionUID = 0L;
     @java.lang.Override
     public Builder clear() {
       super.clear();
+      if (statusBuilder_ == null) {
+        status_ = null;
+      } else {
+        status_ = null;
+        statusBuilder_ = null;
+      }
       messageId_ = "";
 
       transactionId_ = "";
@@ -412,17 +473,17 @@ private static final long serialVersionUID = 0L;
     @java.lang.Override
     public com.google.protobuf.Descriptors.Descriptor
         getDescriptorForType() {
-      return 
apache.rocketmq.v2.MQDomain.internal_static_apache_rocketmq_v2_SendReceipt_descriptor;
+      return 
apache.rocketmq.v2.MQService.internal_static_apache_rocketmq_v2_SendResultEntry_descriptor;
     }
 
     @java.lang.Override
-    public apache.rocketmq.v2.SendReceipt getDefaultInstanceForType() {
-      return apache.rocketmq.v2.SendReceipt.getDefaultInstance();
+    public apache.rocketmq.v2.SendResultEntry getDefaultInstanceForType() {
+      return apache.rocketmq.v2.SendResultEntry.getDefaultInstance();
     }
 
     @java.lang.Override
-    public apache.rocketmq.v2.SendReceipt build() {
-      apache.rocketmq.v2.SendReceipt result = buildPartial();
+    public apache.rocketmq.v2.SendResultEntry build() {
+      apache.rocketmq.v2.SendResultEntry result = buildPartial();
       if (!result.isInitialized()) {
         throw newUninitializedMessageException(result);
       }
@@ -430,8 +491,13 @@ private static final long serialVersionUID = 0L;
     }
 
     @java.lang.Override
-    public apache.rocketmq.v2.SendReceipt buildPartial() {
-      apache.rocketmq.v2.SendReceipt result = new 
apache.rocketmq.v2.SendReceipt(this);
+    public apache.rocketmq.v2.SendResultEntry buildPartial() {
+      apache.rocketmq.v2.SendResultEntry result = new 
apache.rocketmq.v2.SendResultEntry(this);
+      if (statusBuilder_ == null) {
+        result.status_ = status_;
+      } else {
+        result.status_ = statusBuilder_.build();
+      }
       result.messageId_ = messageId_;
       result.transactionId_ = transactionId_;
       result.offset_ = offset_;
@@ -473,16 +539,19 @@ private static final long serialVersionUID = 0L;
     }
     @java.lang.Override
     public Builder mergeFrom(com.google.protobuf.Message other) {
-      if (other instanceof apache.rocketmq.v2.SendReceipt) {
-        return mergeFrom((apache.rocketmq.v2.SendReceipt)other);
+      if (other instanceof apache.rocketmq.v2.SendResultEntry) {
+        return mergeFrom((apache.rocketmq.v2.SendResultEntry)other);
       } else {
         super.mergeFrom(other);
         return this;
       }
     }
 
-    public Builder mergeFrom(apache.rocketmq.v2.SendReceipt other) {
-      if (other == apache.rocketmq.v2.SendReceipt.getDefaultInstance()) return 
this;
+    public Builder mergeFrom(apache.rocketmq.v2.SendResultEntry other) {
+      if (other == apache.rocketmq.v2.SendResultEntry.getDefaultInstance()) 
return this;
+      if (other.hasStatus()) {
+        mergeStatus(other.getStatus());
+      }
       if (!other.getMessageId().isEmpty()) {
         messageId_ = other.messageId_;
         onChanged();
@@ -509,11 +578,11 @@ private static final long serialVersionUID = 0L;
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      apache.rocketmq.v2.SendReceipt parsedMessage = null;
+      apache.rocketmq.v2.SendResultEntry parsedMessage = null;
       try {
         parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        parsedMessage = (apache.rocketmq.v2.SendReceipt) 
e.getUnfinishedMessage();
+        parsedMessage = (apache.rocketmq.v2.SendResultEntry) 
e.getUnfinishedMessage();
         throw e.unwrapIOException();
       } finally {
         if (parsedMessage != null) {
@@ -523,9 +592,128 @@ private static final long serialVersionUID = 0L;
       return this;
     }
 
+    private apache.rocketmq.v2.Status status_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+        apache.rocketmq.v2.Status, apache.rocketmq.v2.Status.Builder, 
apache.rocketmq.v2.StatusOrBuilder> statusBuilder_;
+    /**
+     * <code>.apache.rocketmq.v2.Status status = 1;</code>
+     * @return Whether the status field is set.
+     */
+    public boolean hasStatus() {
+      return statusBuilder_ != null || status_ != null;
+    }
+    /**
+     * <code>.apache.rocketmq.v2.Status status = 1;</code>
+     * @return The status.
+     */
+    public apache.rocketmq.v2.Status getStatus() {
+      if (statusBuilder_ == null) {
+        return status_ == null ? 
apache.rocketmq.v2.Status.getDefaultInstance() : status_;
+      } else {
+        return statusBuilder_.getMessage();
+      }
+    }
+    /**
+     * <code>.apache.rocketmq.v2.Status status = 1;</code>
+     */
+    public Builder setStatus(apache.rocketmq.v2.Status value) {
+      if (statusBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        status_ = value;
+        onChanged();
+      } else {
+        statusBuilder_.setMessage(value);
+      }
+
+      return this;
+    }
+    /**
+     * <code>.apache.rocketmq.v2.Status status = 1;</code>
+     */
+    public Builder setStatus(
+        apache.rocketmq.v2.Status.Builder builderForValue) {
+      if (statusBuilder_ == null) {
+        status_ = builderForValue.build();
+        onChanged();
+      } else {
+        statusBuilder_.setMessage(builderForValue.build());
+      }
+
+      return this;
+    }
+    /**
+     * <code>.apache.rocketmq.v2.Status status = 1;</code>
+     */
+    public Builder mergeStatus(apache.rocketmq.v2.Status value) {
+      if (statusBuilder_ == null) {
+        if (status_ != null) {
+          status_ =
+            
apache.rocketmq.v2.Status.newBuilder(status_).mergeFrom(value).buildPartial();
+        } else {
+          status_ = value;
+        }
+        onChanged();
+      } else {
+        statusBuilder_.mergeFrom(value);
+      }
+
+      return this;
+    }
+    /**
+     * <code>.apache.rocketmq.v2.Status status = 1;</code>
+     */
+    public Builder clearStatus() {
+      if (statusBuilder_ == null) {
+        status_ = null;
+        onChanged();
+      } else {
+        status_ = null;
+        statusBuilder_ = null;
+      }
+
+      return this;
+    }
+    /**
+     * <code>.apache.rocketmq.v2.Status status = 1;</code>
+     */
+    public apache.rocketmq.v2.Status.Builder getStatusBuilder() {
+      
+      onChanged();
+      return getStatusFieldBuilder().getBuilder();
+    }
+    /**
+     * <code>.apache.rocketmq.v2.Status status = 1;</code>
+     */
+    public apache.rocketmq.v2.StatusOrBuilder getStatusOrBuilder() {
+      if (statusBuilder_ != null) {
+        return statusBuilder_.getMessageOrBuilder();
+      } else {
+        return status_ == null ?
+            apache.rocketmq.v2.Status.getDefaultInstance() : status_;
+      }
+    }
+    /**
+     * <code>.apache.rocketmq.v2.Status status = 1;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+        apache.rocketmq.v2.Status, apache.rocketmq.v2.Status.Builder, 
apache.rocketmq.v2.StatusOrBuilder> 
+        getStatusFieldBuilder() {
+      if (statusBuilder_ == null) {
+        statusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+            apache.rocketmq.v2.Status, apache.rocketmq.v2.Status.Builder, 
apache.rocketmq.v2.StatusOrBuilder>(
+                getStatus(),
+                getParentForChildren(),
+                isClean());
+        status_ = null;
+      }
+      return statusBuilder_;
+    }
+
     private java.lang.Object messageId_ = "";
     /**
-     * <code>string message_id = 1;</code>
+     * <code>string message_id = 2;</code>
      * @return The messageId.
      */
     public java.lang.String getMessageId() {
@@ -541,7 +729,7 @@ private static final long serialVersionUID = 0L;
       }
     }
     /**
-     * <code>string message_id = 1;</code>
+     * <code>string message_id = 2;</code>
      * @return The bytes for messageId.
      */
     public com.google.protobuf.ByteString
@@ -558,7 +746,7 @@ private static final long serialVersionUID = 0L;
       }
     }
     /**
-     * <code>string message_id = 1;</code>
+     * <code>string message_id = 2;</code>
      * @param value The messageId to set.
      * @return This builder for chaining.
      */
@@ -573,7 +761,7 @@ private static final long serialVersionUID = 0L;
       return this;
     }
     /**
-     * <code>string message_id = 1;</code>
+     * <code>string message_id = 2;</code>
      * @return This builder for chaining.
      */
     public Builder clearMessageId() {
@@ -583,7 +771,7 @@ private static final long serialVersionUID = 0L;
       return this;
     }
     /**
-     * <code>string message_id = 1;</code>
+     * <code>string message_id = 2;</code>
      * @param value The bytes for messageId to set.
      * @return This builder for chaining.
      */
@@ -601,7 +789,7 @@ private static final long serialVersionUID = 0L;
 
     private java.lang.Object transactionId_ = "";
     /**
-     * <code>string transaction_id = 2;</code>
+     * <code>string transaction_id = 3;</code>
      * @return The transactionId.
      */
     public java.lang.String getTransactionId() {
@@ -617,7 +805,7 @@ private static final long serialVersionUID = 0L;
       }
     }
     /**
-     * <code>string transaction_id = 2;</code>
+     * <code>string transaction_id = 3;</code>
      * @return The bytes for transactionId.
      */
     public com.google.protobuf.ByteString
@@ -634,7 +822,7 @@ private static final long serialVersionUID = 0L;
       }
     }
     /**
-     * <code>string transaction_id = 2;</code>
+     * <code>string transaction_id = 3;</code>
      * @param value The transactionId to set.
      * @return This builder for chaining.
      */
@@ -649,7 +837,7 @@ private static final long serialVersionUID = 0L;
       return this;
     }
     /**
-     * <code>string transaction_id = 2;</code>
+     * <code>string transaction_id = 3;</code>
      * @return This builder for chaining.
      */
     public Builder clearTransactionId() {
@@ -659,7 +847,7 @@ private static final long serialVersionUID = 0L;
       return this;
     }
     /**
-     * <code>string transaction_id = 2;</code>
+     * <code>string transaction_id = 3;</code>
      * @param value The bytes for transactionId to set.
      * @return This builder for chaining.
      */
@@ -677,7 +865,7 @@ private static final long serialVersionUID = 0L;
 
     private long offset_ ;
     /**
-     * <code>int64 offset = 3;</code>
+     * <code>int64 offset = 4;</code>
      * @return The offset.
      */
     @java.lang.Override
@@ -685,7 +873,7 @@ private static final long serialVersionUID = 0L;
       return offset_;
     }
     /**
-     * <code>int64 offset = 3;</code>
+     * <code>int64 offset = 4;</code>
      * @param value The offset to set.
      * @return This builder for chaining.
      */
@@ -696,7 +884,7 @@ private static final long serialVersionUID = 0L;
       return this;
     }
     /**
-     * <code>int64 offset = 3;</code>
+     * <code>int64 offset = 4;</code>
      * @return This builder for chaining.
      */
     public Builder clearOffset() {
@@ -718,41 +906,41 @@ private static final long serialVersionUID = 0L;
     }
 
 
-    // @@protoc_insertion_point(builder_scope:apache.rocketmq.v2.SendReceipt)
+    // 
@@protoc_insertion_point(builder_scope:apache.rocketmq.v2.SendResultEntry)
   }
 
-  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.SendReceipt)
-  private static final apache.rocketmq.v2.SendReceipt DEFAULT_INSTANCE;
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.SendResultEntry)
+  private static final apache.rocketmq.v2.SendResultEntry DEFAULT_INSTANCE;
   static {
-    DEFAULT_INSTANCE = new apache.rocketmq.v2.SendReceipt();
+    DEFAULT_INSTANCE = new apache.rocketmq.v2.SendResultEntry();
   }
 
-  public static apache.rocketmq.v2.SendReceipt getDefaultInstance() {
+  public static apache.rocketmq.v2.SendResultEntry getDefaultInstance() {
     return DEFAULT_INSTANCE;
   }
 
-  private static final com.google.protobuf.Parser<SendReceipt>
-      PARSER = new com.google.protobuf.AbstractParser<SendReceipt>() {
+  private static final com.google.protobuf.Parser<SendResultEntry>
+      PARSER = new com.google.protobuf.AbstractParser<SendResultEntry>() {
     @java.lang.Override
-    public SendReceipt parsePartialFrom(
+    public SendResultEntry parsePartialFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-      return new SendReceipt(input, extensionRegistry);
+      return new SendResultEntry(input, extensionRegistry);
     }
   };
 
-  public static com.google.protobuf.Parser<SendReceipt> parser() {
+  public static com.google.protobuf.Parser<SendResultEntry> parser() {
     return PARSER;
   }
 
   @java.lang.Override
-  public com.google.protobuf.Parser<SendReceipt> getParserForType() {
+  public com.google.protobuf.Parser<SendResultEntry> getParserForType() {
     return PARSER;
   }
 
   @java.lang.Override
-  public apache.rocketmq.v2.SendReceipt getDefaultInstanceForType() {
+  public apache.rocketmq.v2.SendResultEntry getDefaultInstanceForType() {
     return DEFAULT_INSTANCE;
   }
 
diff --git a/src/main/java/apache/rocketmq/v2/SendResultEntryOrBuilder.java 
b/src/main/java/apache/rocketmq/v2/SendResultEntryOrBuilder.java
new file mode 100644
index 0000000..0681d00
--- /dev/null
+++ b/src/main/java/apache/rocketmq/v2/SendResultEntryOrBuilder.java
@@ -0,0 +1,54 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: apache/rocketmq/v2/service.proto
+
+package apache.rocketmq.v2;
+
+public interface SendResultEntryOrBuilder extends
+    // 
@@protoc_insertion_point(interface_extends:apache.rocketmq.v2.SendResultEntry)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   * <code>.apache.rocketmq.v2.Status status = 1;</code>
+   * @return Whether the status field is set.
+   */
+  boolean hasStatus();
+  /**
+   * <code>.apache.rocketmq.v2.Status status = 1;</code>
+   * @return The status.
+   */
+  apache.rocketmq.v2.Status getStatus();
+  /**
+   * <code>.apache.rocketmq.v2.Status status = 1;</code>
+   */
+  apache.rocketmq.v2.StatusOrBuilder getStatusOrBuilder();
+
+  /**
+   * <code>string message_id = 2;</code>
+   * @return The messageId.
+   */
+  java.lang.String getMessageId();
+  /**
+   * <code>string message_id = 2;</code>
+   * @return The bytes for messageId.
+   */
+  com.google.protobuf.ByteString
+      getMessageIdBytes();
+
+  /**
+   * <code>string transaction_id = 3;</code>
+   * @return The transactionId.
+   */
+  java.lang.String getTransactionId();
+  /**
+   * <code>string transaction_id = 3;</code>
+   * @return The bytes for transactionId.
+   */
+  com.google.protobuf.ByteString
+      getTransactionIdBytes();
+
+  /**
+   * <code>int64 offset = 4;</code>
+   * @return The offset.
+   */
+  long getOffset();
+}
diff --git a/src/main/resources/proto/apache/rocketmq/v2/definition.proto 
b/src/main/resources/proto/apache/rocketmq/v2/definition.proto
index f8ea444..3153638 100644
--- a/src/main/resources/proto/apache/rocketmq/v2/definition.proto
+++ b/src/main/resources/proto/apache/rocketmq/v2/definition.proto
@@ -290,12 +290,6 @@ message Message {
 
 message Assignment { MessageQueue message_queue = 1; }
 
-message SendReceipt {
-  string message_id = 1;
-  string transaction_id = 2;
-  int64 offset = 3;
-}
-
 enum Code {
   // Success.
   OK = 0;
diff --git a/src/main/resources/proto/apache/rocketmq/v2/service.proto 
b/src/main/resources/proto/apache/rocketmq/v2/service.proto
index 0486047..35cf3a1 100644
--- a/src/main/resources/proto/apache/rocketmq/v2/service.proto
+++ b/src/main/resources/proto/apache/rocketmq/v2/service.proto
@@ -60,9 +60,19 @@ message SendMessageRequest {
   repeated Message messages = 1;
 }
 
+message SendResultEntry {
+  Status status = 1;
+  string message_id = 2;
+  string transaction_id = 3;
+  int64 offset = 4;
+}
+
 message SendMessageResponse {
   Status status = 1;
-  repeated SendReceipt receipts = 2;
+
+  // Some implementation may have partial failure issues. Client SDK 
developers are expected to inspect
+  // each entry for best certainty.
+  repeated SendResultEntry entries = 2;
 }
 
 message QueryAssignmentRequest {

Reply via email to