You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2022/07/27 04:42:36 UTC

[rocketmq-clients] branch cpp_cmake created (now 6b20b1e)

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

lizhanhui pushed a change to branch cpp_cmake
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git


      at 6b20b1e  Include generated grpc files

This branch includes the following new commits:

     new 6b20b1e  Include generated grpc files

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[rocketmq-clients] 01/01: Include generated grpc files

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lizhanhui pushed a commit to branch cpp_cmake
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git

commit 6b20b1e6c16cae5c0f0e77ca021223ae259755ae
Author: Li Zhanhui <li...@gmail.com>
AuthorDate: Wed Jul 27 12:42:13 2022 +0800

    Include generated grpc files
---
 cpp/generate/apache/rocketmq/v2/admin.grpc.pb.cc   |    90 +
 cpp/generate/apache/rocketmq/v2/admin.grpc.pb.h    |   244 +
 cpp/generate/apache/rocketmq/v2/admin.pb.cc        |   529 +
 cpp/generate/apache/rocketmq/v2/admin.pb.h         |   533 +
 .../apache/rocketmq/v2/admin_mock.grpc.pb.h        |    25 +
 .../apache/rocketmq/v2/definition.grpc.pb.cc       |    29 +
 .../apache/rocketmq/v2/definition.grpc.pb.h        |    37 +
 cpp/generate/apache/rocketmq/v2/definition.pb.cc   |  5776 +++++++++
 cpp/generate/apache/rocketmq/v2/definition.pb.h    |  6872 ++++++++++
 .../apache/rocketmq/v2/definition_mock.grpc.pb.h   |    18 +
 cpp/generate/apache/rocketmq/v2/service.grpc.pb.cc |   495 +
 cpp/generate/apache/rocketmq/v2/service.grpc.pb.h  |  1787 +++
 cpp/generate/apache/rocketmq/v2/service.pb.cc      | 10544 ++++++++++++++++
 cpp/generate/apache/rocketmq/v2/service.pb.h       | 12485 +++++++++++++++++++
 .../apache/rocketmq/v2/service_mock.grpc.pb.h      |    55 +
 .../generated/apache/rocketmq/v2/admin.grpc.pb.cc  |    90 +
 .../generated/apache/rocketmq/v2/admin.grpc.pb.h   |   244 +
 cpp/proto/generated/apache/rocketmq/v2/admin.pb.cc |   529 +
 cpp/proto/generated/apache/rocketmq/v2/admin.pb.h  |   533 +
 .../apache/rocketmq/v2/admin_mock.grpc.pb.h        |    25 +
 .../apache/rocketmq/v2/definition.grpc.pb.cc       |    29 +
 .../apache/rocketmq/v2/definition.grpc.pb.h        |    37 +
 .../generated/apache/rocketmq/v2/definition.pb.cc  |  5776 +++++++++
 .../generated/apache/rocketmq/v2/definition.pb.h   |  6872 ++++++++++
 .../apache/rocketmq/v2/definition_mock.grpc.pb.h   |    18 +
 .../apache/rocketmq/v2/service.grpc.pb.cc          |   495 +
 .../generated/apache/rocketmq/v2/service.grpc.pb.h |  1787 +++
 .../generated/apache/rocketmq/v2/service.pb.cc     | 10544 ++++++++++++++++
 .../generated/apache/rocketmq/v2/service.pb.h      | 12485 +++++++++++++++++++
 .../apache/rocketmq/v2/service_mock.grpc.pb.h      |    55 +
 30 files changed, 79038 insertions(+)

diff --git a/cpp/generate/apache/rocketmq/v2/admin.grpc.pb.cc b/cpp/generate/apache/rocketmq/v2/admin.grpc.pb.cc
new file mode 100755
index 0000000..576ece3
--- /dev/null
+++ b/cpp/generate/apache/rocketmq/v2/admin.grpc.pb.cc
@@ -0,0 +1,90 @@
+// Generated by the gRPC C++ plugin.
+// If you make any local change, they will be lost.
+// source: apache/rocketmq/v2/admin.proto
+
+#include "apache/rocketmq/v2/admin.pb.h"
+#include "apache/rocketmq/v2/admin.grpc.pb.h"
+
+#include <functional>
+#include <grpcpp/impl/codegen/async_stream.h>
+#include <grpcpp/impl/codegen/async_unary_call.h>
+#include <grpcpp/impl/codegen/channel_interface.h>
+#include <grpcpp/impl/codegen/client_unary_call.h>
+#include <grpcpp/impl/codegen/client_callback.h>
+#include <grpcpp/impl/codegen/message_allocator.h>
+#include <grpcpp/impl/codegen/method_handler.h>
+#include <grpcpp/impl/codegen/rpc_service_method.h>
+#include <grpcpp/impl/codegen/server_callback.h>
+#include <grpcpp/impl/codegen/server_callback_handlers.h>
+#include <grpcpp/impl/codegen/server_context.h>
+#include <grpcpp/impl/codegen/service_type.h>
+#include <grpcpp/impl/codegen/sync_stream.h>
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+
+static const char* Admin_method_names[] = {
+  "/apache.rocketmq.v2.Admin/ChangeLogLevel",
+};
+
+std::unique_ptr< Admin::Stub> Admin::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
+  (void)options;
+  std::unique_ptr< Admin::Stub> stub(new Admin::Stub(channel, options));
+  return stub;
+}
+
+Admin::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options)
+  : channel_(channel), rpcmethod_ChangeLogLevel_(Admin_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  {}
+
+::grpc::Status Admin::Stub::ChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall< ::apache::rocketmq::v2::ChangeLogLevelRequest, ::apache::rocketmq::v2::ChangeLogLevelResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ChangeLogLevel_, context, request, response);
+}
+
+void Admin::Stub::async::ChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest* request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response, std::function<void(::grpc::Status)> f) {
+  ::grpc::internal::CallbackUnaryCall< ::apache::rocketmq::v2::ChangeLogLevelRequest, ::apache::rocketmq::v2::ChangeLogLevelResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ChangeLogLevel_, context, request, response, std::move(f));
+}
+
+void Admin::Stub::async::ChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest* request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response, ::grpc::ClientUnaryReactor* reactor) {
+  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ChangeLogLevel_, context, request, response, reactor);
+}
+
+::grpc::ClientAsyncResponseReader< ::apache::rocketmq::v2::ChangeLogLevelResponse>* Admin::Stub::PrepareAsyncChangeLogLevelRaw(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::apache::rocketmq::v2::ChangeLogLevelResponse, ::apache::rocketmq::v2::ChangeLogLevelRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ChangeLogLevel_, context, request);
+}
+
+::grpc::ClientAsyncResponseReader< ::apache::rocketmq::v2::ChangeLogLevelResponse>* Admin::Stub::AsyncChangeLogLevelRaw(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq) {
+  auto* result =
+    this->PrepareAsyncChangeLogLevelRaw(context, request, cq);
+  result->StartCall();
+  return result;
+}
+
+Admin::Service::Service() {
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      Admin_method_names[0],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< Admin::Service, ::apache::rocketmq::v2::ChangeLogLevelRequest, ::apache::rocketmq::v2::ChangeLogLevelResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
+          [](Admin::Service* service,
+             ::grpc::ServerContext* ctx,
+             const ::apache::rocketmq::v2::ChangeLogLevelRequest* req,
+             ::apache::rocketmq::v2::ChangeLogLevelResponse* resp) {
+               return service->ChangeLogLevel(ctx, req, resp);
+             }, this)));
+}
+
+Admin::Service::~Service() {
+}
+
+::grpc::Status Admin::Service::ChangeLogLevel(::grpc::ServerContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest* request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+
+}  // namespace apache
+}  // namespace rocketmq
+}  // namespace v2
+
diff --git a/cpp/generate/apache/rocketmq/v2/admin.grpc.pb.h b/cpp/generate/apache/rocketmq/v2/admin.grpc.pb.h
new file mode 100755
index 0000000..88c66db
--- /dev/null
+++ b/cpp/generate/apache/rocketmq/v2/admin.grpc.pb.h
@@ -0,0 +1,244 @@
+// Generated by the gRPC C++ plugin.
+// If you make any local change, they will be lost.
+// source: apache/rocketmq/v2/admin.proto
+#ifndef GRPC_apache_2frocketmq_2fv2_2fadmin_2eproto__INCLUDED
+#define GRPC_apache_2frocketmq_2fv2_2fadmin_2eproto__INCLUDED
+
+#include "apache/rocketmq/v2/admin.pb.h"
+
+#include <functional>
+#include <grpcpp/impl/codegen/async_generic_service.h>
+#include <grpcpp/impl/codegen/async_stream.h>
+#include <grpcpp/impl/codegen/async_unary_call.h>
+#include <grpcpp/impl/codegen/client_callback.h>
+#include <grpcpp/impl/codegen/client_context.h>
+#include <grpcpp/impl/codegen/completion_queue.h>
+#include <grpcpp/impl/codegen/message_allocator.h>
+#include <grpcpp/impl/codegen/method_handler.h>
+#include <grpcpp/impl/codegen/proto_utils.h>
+#include <grpcpp/impl/codegen/rpc_method.h>
+#include <grpcpp/impl/codegen/server_callback.h>
+#include <grpcpp/impl/codegen/server_callback_handlers.h>
+#include <grpcpp/impl/codegen/server_context.h>
+#include <grpcpp/impl/codegen/service_type.h>
+#include <grpcpp/impl/codegen/status.h>
+#include <grpcpp/impl/codegen/stub_options.h>
+#include <grpcpp/impl/codegen/sync_stream.h>
+
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+
+class Admin final {
+ public:
+  static constexpr char const* service_full_name() {
+    return "apache.rocketmq.v2.Admin";
+  }
+  class StubInterface {
+   public:
+    virtual ~StubInterface() {}
+    virtual ::grpc::Status ChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apache::rocketmq::v2::ChangeLogLevelResponse>> AsyncChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apache::rocketmq::v2::ChangeLogLevelResponse>>(AsyncChangeLogLevelRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apache::rocketmq::v2::ChangeLogLevelResponse>> PrepareAsyncChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::apache::rocketmq::v2::ChangeLogLevelResponse>>(PrepareAsyncChangeLogLevelRaw(context, request, cq));
+    }
+    class async_interface {
+     public:
+      virtual ~async_interface() {}
+      virtual void ChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest* request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response, std::function<void(::grpc::Status)>) = 0;
+      virtual void ChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest* request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
+    };
+    typedef class async_interface experimental_async_interface;
+    virtual class async_interface* async() { return nullptr; }
+    class async_interface* experimental_async() { return async(); }
+   private:
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apache::rocketmq::v2::ChangeLogLevelResponse>* AsyncChangeLogLevelRaw(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::apache::rocketmq::v2::ChangeLogLevelResponse>* PrepareAsyncChangeLogLevelRaw(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq) = 0;
+  };
+  class Stub final : public StubInterface {
+   public:
+    Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
+    ::grpc::Status ChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apache::rocketmq::v2::ChangeLogLevelResponse>> AsyncChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apache::rocketmq::v2::ChangeLogLevelResponse>>(AsyncChangeLogLevelRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apache::rocketmq::v2::ChangeLogLevelResponse>> PrepareAsyncChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::apache::rocketmq::v2::ChangeLogLevelResponse>>(PrepareAsyncChangeLogLevelRaw(context, request, cq));
+    }
+    class async final :
+      public StubInterface::async_interface {
+     public:
+      void ChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest* request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response, std::function<void(::grpc::Status)>) override;
+      void ChangeLogLevel(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest* request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
+     private:
+      friend class Stub;
+      explicit async(Stub* stub): stub_(stub) { }
+      Stub* stub() { return stub_; }
+      Stub* stub_;
+    };
+    class async* async() override { return &async_stub_; }
+
+   private:
+    std::shared_ptr< ::grpc::ChannelInterface> channel_;
+    class async async_stub_{this};
+    ::grpc::ClientAsyncResponseReader< ::apache::rocketmq::v2::ChangeLogLevelResponse>* AsyncChangeLogLevelRaw(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::apache::rocketmq::v2::ChangeLogLevelResponse>* PrepareAsyncChangeLogLevelRaw(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq) override;
+    const ::grpc::internal::RpcMethod rpcmethod_ChangeLogLevel_;
+  };
+  static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
+
+  class Service : public ::grpc::Service {
+   public:
+    Service();
+    virtual ~Service();
+    virtual ::grpc::Status ChangeLogLevel(::grpc::ServerContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest* request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response);
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_ChangeLogLevel : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithAsyncMethod_ChangeLogLevel() {
+      ::grpc::Service::MarkMethodAsync(0);
+    }
+    ~WithAsyncMethod_ChangeLogLevel() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeLogLevel(::grpc::ServerContext* /*context*/, const ::apache::rocketmq::v2::ChangeLogLevelRequest* /*request*/, ::apache::rocketmq::v2::ChangeLogLevelResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestChangeLogLevel(::grpc::ServerContext* context, ::apache::rocketmq::v2::ChangeLogLevelRequest* request, ::grpc::ServerAsyncResponseWriter< ::apache::rocketmq::v2::ChangeLogLevelResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  typedef WithAsyncMethod_ChangeLogLevel<Service > AsyncService;
+  template <class BaseClass>
+  class WithCallbackMethod_ChangeLogLevel : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithCallbackMethod_ChangeLogLevel() {
+      ::grpc::Service::MarkMethodCallback(0,
+          new ::grpc::internal::CallbackUnaryHandler< ::apache::rocketmq::v2::ChangeLogLevelRequest, ::apache::rocketmq::v2::ChangeLogLevelResponse>(
+            [this](
+                   ::grpc::CallbackServerContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest* request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response) { return this->ChangeLogLevel(context, request, response); }));}
+    void SetMessageAllocatorFor_ChangeLogLevel(
+        ::grpc::MessageAllocator< ::apache::rocketmq::v2::ChangeLogLevelRequest, ::apache::rocketmq::v2::ChangeLogLevelResponse>* allocator) {
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0);
+      static_cast<::grpc::internal::CallbackUnaryHandler< ::apache::rocketmq::v2::ChangeLogLevelRequest, ::apache::rocketmq::v2::ChangeLogLevelResponse>*>(handler)
+              ->SetMessageAllocator(allocator);
+    }
+    ~WithCallbackMethod_ChangeLogLevel() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeLogLevel(::grpc::ServerContext* /*context*/, const ::apache::rocketmq::v2::ChangeLogLevelRequest* /*request*/, ::apache::rocketmq::v2::ChangeLogLevelResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    virtual ::grpc::ServerUnaryReactor* ChangeLogLevel(
+      ::grpc::CallbackServerContext* /*context*/, const ::apache::rocketmq::v2::ChangeLogLevelRequest* /*request*/, ::apache::rocketmq::v2::ChangeLogLevelResponse* /*response*/)  { return nullptr; }
+  };
+  typedef WithCallbackMethod_ChangeLogLevel<Service > CallbackService;
+  typedef CallbackService ExperimentalCallbackService;
+  template <class BaseClass>
+  class WithGenericMethod_ChangeLogLevel : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithGenericMethod_ChangeLogLevel() {
+      ::grpc::Service::MarkMethodGeneric(0);
+    }
+    ~WithGenericMethod_ChangeLogLevel() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeLogLevel(::grpc::ServerContext* /*context*/, const ::apache::rocketmq::v2::ChangeLogLevelRequest* /*request*/, ::apache::rocketmq::v2::ChangeLogLevelResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithRawMethod_ChangeLogLevel : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawMethod_ChangeLogLevel() {
+      ::grpc::Service::MarkMethodRaw(0);
+    }
+    ~WithRawMethod_ChangeLogLevel() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeLogLevel(::grpc::ServerContext* /*context*/, const ::apache::rocketmq::v2::ChangeLogLevelRequest* /*request*/, ::apache::rocketmq::v2::ChangeLogLevelResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestChangeLogLevel(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithRawCallbackMethod_ChangeLogLevel : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawCallbackMethod_ChangeLogLevel() {
+      ::grpc::Service::MarkMethodRawCallback(0,
+          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
+            [this](
+                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ChangeLogLevel(context, request, response); }));
+    }
+    ~WithRawCallbackMethod_ChangeLogLevel() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeLogLevel(::grpc::ServerContext* /*context*/, const ::apache::rocketmq::v2::ChangeLogLevelRequest* /*request*/, ::apache::rocketmq::v2::ChangeLogLevelResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    virtual ::grpc::ServerUnaryReactor* ChangeLogLevel(
+      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_ChangeLogLevel : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithStreamedUnaryMethod_ChangeLogLevel() {
+      ::grpc::Service::MarkMethodStreamed(0,
+        new ::grpc::internal::StreamedUnaryHandler<
+          ::apache::rocketmq::v2::ChangeLogLevelRequest, ::apache::rocketmq::v2::ChangeLogLevelResponse>(
+            [this](::grpc::ServerContext* context,
+                   ::grpc::ServerUnaryStreamer<
+                     ::apache::rocketmq::v2::ChangeLogLevelRequest, ::apache::rocketmq::v2::ChangeLogLevelResponse>* streamer) {
+                       return this->StreamedChangeLogLevel(context,
+                         streamer);
+                  }));
+    }
+    ~WithStreamedUnaryMethod_ChangeLogLevel() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status ChangeLogLevel(::grpc::ServerContext* /*context*/, const ::apache::rocketmq::v2::ChangeLogLevelRequest* /*request*/, ::apache::rocketmq::v2::ChangeLogLevelResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedChangeLogLevel(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::apache::rocketmq::v2::ChangeLogLevelRequest,::apache::rocketmq::v2::ChangeLogLevelResponse>* server_unary_streamer) = 0;
+  };
+  typedef WithStreamedUnaryMethod_ChangeLogLevel<Service > StreamedUnaryService;
+  typedef Service SplitStreamedService;
+  typedef WithStreamedUnaryMethod_ChangeLogLevel<Service > StreamedService;
+};
+
+}  // namespace v2
+}  // namespace rocketmq
+}  // namespace apache
+
+
+#endif  // GRPC_apache_2frocketmq_2fv2_2fadmin_2eproto__INCLUDED
diff --git a/cpp/generate/apache/rocketmq/v2/admin.pb.cc b/cpp/generate/apache/rocketmq/v2/admin.pb.cc
new file mode 100644
index 0000000..3475d4b
--- /dev/null
+++ b/cpp/generate/apache/rocketmq/v2/admin.pb.cc
@@ -0,0 +1,529 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: apache/rocketmq/v2/admin.proto
+
+#include "apache/rocketmq/v2/admin.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/wire_format_lite.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+#include <google/protobuf/port_def.inc>
+
+PROTOBUF_PRAGMA_INIT_SEG
+
+namespace _pb = ::PROTOBUF_NAMESPACE_ID;
+namespace _pbi = _pb::internal;
+
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+PROTOBUF_CONSTEXPR ChangeLogLevelRequest::ChangeLogLevelRequest(
+    ::_pbi::ConstantInitialized)
+  : level_(0)
+{}
+struct ChangeLogLevelRequestDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR ChangeLogLevelRequestDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~ChangeLogLevelRequestDefaultTypeInternal() {}
+  union {
+    ChangeLogLevelRequest _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ChangeLogLevelRequestDefaultTypeInternal _ChangeLogLevelRequest_default_instance_;
+PROTOBUF_CONSTEXPR ChangeLogLevelResponse::ChangeLogLevelResponse(
+    ::_pbi::ConstantInitialized)
+  : remark_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
+struct ChangeLogLevelResponseDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR ChangeLogLevelResponseDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~ChangeLogLevelResponseDefaultTypeInternal() {}
+  union {
+    ChangeLogLevelResponse _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ChangeLogLevelResponseDefaultTypeInternal _ChangeLogLevelResponse_default_instance_;
+}  // namespace v2
+}  // namespace rocketmq
+}  // namespace apache
+static ::_pb::Metadata file_level_metadata_apache_2frocketmq_2fv2_2fadmin_2eproto[2];
+static const ::_pb::EnumDescriptor* file_level_enum_descriptors_apache_2frocketmq_2fv2_2fadmin_2eproto[1];
+static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_apache_2frocketmq_2fv2_2fadmin_2eproto = nullptr;
+
+const uint32_t TableStruct_apache_2frocketmq_2fv2_2fadmin_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::ChangeLogLevelRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::ChangeLogLevelRequest, level_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::ChangeLogLevelResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::ChangeLogLevelResponse, remark_),
+};
+static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+  { 0, -1, -1, sizeof(::apache::rocketmq::v2::ChangeLogLevelRequest)},
+  { 7, -1, -1, sizeof(::apache::rocketmq::v2::ChangeLogLevelResponse)},
+};
+
+static const ::_pb::Message* const file_default_instances[] = {
+  &::apache::rocketmq::v2::_ChangeLogLevelRequest_default_instance_._instance,
+  &::apache::rocketmq::v2::_ChangeLogLevelResponse_default_instance_._instance,
+};
+
+const char descriptor_table_protodef_apache_2frocketmq_2fv2_2fadmin_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
+  "\n\036apache/rocketmq/v2/admin.proto\022\022apache"
+  ".rocketmq.v2\"\234\001\n\025ChangeLogLevelRequest\022E"
+  "\n\005level\030\001 \001(\0162/.apache.rocketmq.v2.Chang"
+  "eLogLevelRequest.LevelR\005level\"<\n\005Level\022\t"
+  "\n\005TRACE\020\000\022\t\n\005DEBUG\020\001\022\010\n\004INFO\020\002\022\010\n\004WARN\020\003"
+  "\022\t\n\005ERROR\020\004\"0\n\026ChangeLogLevelResponse\022\026\n"
+  "\006remark\030\001 \001(\tR\006remark2r\n\005Admin\022i\n\016Change"
+  "LogLevel\022).apache.rocketmq.v2.ChangeLogL"
+  "evelRequest\032*.apache.rocketmq.v2.ChangeL"
+  "ogLevelResponse\"\000B=\n\022apache.rocketmq.v2B"
+  "\007MQAdminP\001\240\001\001\330\001\001\370\001\001\252\002\022Apache.Rocketmq.V2"
+  "b\006proto3"
+  ;
+static ::_pbi::once_flag descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto = {
+    false, false, 448, descriptor_table_protodef_apache_2frocketmq_2fv2_2fadmin_2eproto,
+    "apache/rocketmq/v2/admin.proto",
+    &descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto_once, nullptr, 0, 2,
+    schemas, file_default_instances, TableStruct_apache_2frocketmq_2fv2_2fadmin_2eproto::offsets,
+    file_level_metadata_apache_2frocketmq_2fv2_2fadmin_2eproto, file_level_enum_descriptors_apache_2frocketmq_2fv2_2fadmin_2eproto,
+    file_level_service_descriptors_apache_2frocketmq_2fv2_2fadmin_2eproto,
+};
+PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto_getter() {
+  return &descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto;
+}
+
+// Force running AddDescriptors() at dynamic initialization time.
+PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_apache_2frocketmq_2fv2_2fadmin_2eproto(&descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto);
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ChangeLogLevelRequest_Level_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fadmin_2eproto[0];
+}
+bool ChangeLogLevelRequest_Level_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+      return true;
+    default:
+      return false;
+  }
+}
+
+#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
+constexpr ChangeLogLevelRequest_Level ChangeLogLevelRequest::TRACE;
+constexpr ChangeLogLevelRequest_Level ChangeLogLevelRequest::DEBUG;
+constexpr ChangeLogLevelRequest_Level ChangeLogLevelRequest::INFO;
+constexpr ChangeLogLevelRequest_Level ChangeLogLevelRequest::WARN;
+constexpr ChangeLogLevelRequest_Level ChangeLogLevelRequest::ERROR;
+constexpr ChangeLogLevelRequest_Level ChangeLogLevelRequest::Level_MIN;
+constexpr ChangeLogLevelRequest_Level ChangeLogLevelRequest::Level_MAX;
+constexpr int ChangeLogLevelRequest::Level_ARRAYSIZE;
+#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
+
+// ===================================================================
+
+class ChangeLogLevelRequest::_Internal {
+ public:
+};
+
+ChangeLogLevelRequest::ChangeLogLevelRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.ChangeLogLevelRequest)
+}
+ChangeLogLevelRequest::ChangeLogLevelRequest(const ChangeLogLevelRequest& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  level_ = from.level_;
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.ChangeLogLevelRequest)
+}
+
+inline void ChangeLogLevelRequest::SharedCtor() {
+level_ = 0;
+}
+
+ChangeLogLevelRequest::~ChangeLogLevelRequest() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.ChangeLogLevelRequest)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void ChangeLogLevelRequest::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+}
+
+void ChangeLogLevelRequest::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void ChangeLogLevelRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.ChangeLogLevelRequest)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  level_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* ChangeLogLevelRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .apache.rocketmq.v2.ChangeLogLevelRequest.Level level = 1 [json_name = "level"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
+          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+          _internal_set_level(static_cast<::apache::rocketmq::v2::ChangeLogLevelRequest_Level>(val));
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* ChangeLogLevelRequest::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.ChangeLogLevelRequest)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.ChangeLogLevelRequest.Level level = 1 [json_name = "level"];
+  if (this->_internal_level() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteEnumToArray(
+      1, this->_internal_level(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.ChangeLogLevelRequest)
+  return target;
+}
+
+size_t ChangeLogLevelRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.ChangeLogLevelRequest)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.ChangeLogLevelRequest.Level level = 1 [json_name = "level"];
+  if (this->_internal_level() != 0) {
+    total_size += 1 +
+      ::_pbi::WireFormatLite::EnumSize(this->_internal_level());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ChangeLogLevelRequest::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    ChangeLogLevelRequest::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangeLogLevelRequest::GetClassData() const { return &_class_data_; }
+
+void ChangeLogLevelRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<ChangeLogLevelRequest *>(to)->MergeFrom(
+      static_cast<const ChangeLogLevelRequest &>(from));
+}
+
+
+void ChangeLogLevelRequest::MergeFrom(const ChangeLogLevelRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.ChangeLogLevelRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from._internal_level() != 0) {
+    _internal_set_level(from._internal_level());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void ChangeLogLevelRequest::CopyFrom(const ChangeLogLevelRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.ChangeLogLevelRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ChangeLogLevelRequest::IsInitialized() const {
+  return true;
+}
+
+void ChangeLogLevelRequest::InternalSwap(ChangeLogLevelRequest* other) {
+  using std::swap;
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  swap(level_, other->level_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata ChangeLogLevelRequest::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fadmin_2eproto[0]);
+}
+
+// ===================================================================
+
+class ChangeLogLevelResponse::_Internal {
+ public:
+};
+
+ChangeLogLevelResponse::ChangeLogLevelResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.ChangeLogLevelResponse)
+}
+ChangeLogLevelResponse::ChangeLogLevelResponse(const ChangeLogLevelResponse& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  remark_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    remark_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_remark().empty()) {
+    remark_.Set(from._internal_remark(), 
+      GetArenaForAllocation());
+  }
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.ChangeLogLevelResponse)
+}
+
+inline void ChangeLogLevelResponse::SharedCtor() {
+remark_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  remark_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+}
+
+ChangeLogLevelResponse::~ChangeLogLevelResponse() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.ChangeLogLevelResponse)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void ChangeLogLevelResponse::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  remark_.Destroy();
+}
+
+void ChangeLogLevelResponse::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void ChangeLogLevelResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.ChangeLogLevelResponse)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  remark_.ClearToEmpty();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* ChangeLogLevelResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // string remark = 1 [json_name = "remark"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          auto str = _internal_mutable_remark();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.ChangeLogLevelResponse.remark"));
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* ChangeLogLevelResponse::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.ChangeLogLevelResponse)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string remark = 1 [json_name = "remark"];
+  if (!this->_internal_remark().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_remark().data(), static_cast<int>(this->_internal_remark().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.ChangeLogLevelResponse.remark");
+    target = stream->WriteStringMaybeAliased(
+        1, this->_internal_remark(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.ChangeLogLevelResponse)
+  return target;
+}
+
+size_t ChangeLogLevelResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.ChangeLogLevelResponse)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string remark = 1 [json_name = "remark"];
+  if (!this->_internal_remark().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_remark());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ChangeLogLevelResponse::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    ChangeLogLevelResponse::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangeLogLevelResponse::GetClassData() const { return &_class_data_; }
+
+void ChangeLogLevelResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<ChangeLogLevelResponse *>(to)->MergeFrom(
+      static_cast<const ChangeLogLevelResponse &>(from));
+}
+
+
+void ChangeLogLevelResponse::MergeFrom(const ChangeLogLevelResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.ChangeLogLevelResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_remark().empty()) {
+    _internal_set_remark(from._internal_remark());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void ChangeLogLevelResponse::CopyFrom(const ChangeLogLevelResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.ChangeLogLevelResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ChangeLogLevelResponse::IsInitialized() const {
+  return true;
+}
+
+void ChangeLogLevelResponse::InternalSwap(ChangeLogLevelResponse* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &remark_, lhs_arena,
+      &other->remark_, rhs_arena
+  );
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata ChangeLogLevelResponse::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fadmin_2eproto[1]);
+}
+
+// @@protoc_insertion_point(namespace_scope)
+}  // namespace v2
+}  // namespace rocketmq
+}  // namespace apache
+PROTOBUF_NAMESPACE_OPEN
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::ChangeLogLevelRequest*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::ChangeLogLevelRequest >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::ChangeLogLevelRequest >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::ChangeLogLevelResponse*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::ChangeLogLevelResponse >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::ChangeLogLevelResponse >(arena);
+}
+PROTOBUF_NAMESPACE_CLOSE
+
+// @@protoc_insertion_point(global_scope)
+#include <google/protobuf/port_undef.inc>
diff --git a/cpp/generate/apache/rocketmq/v2/admin.pb.h b/cpp/generate/apache/rocketmq/v2/admin.pb.h
new file mode 100644
index 0000000..02973d2
--- /dev/null
+++ b/cpp/generate/apache/rocketmq/v2/admin.pb.h
@@ -0,0 +1,533 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: apache/rocketmq/v2/admin.proto
+
+#ifndef GOOGLE_PROTOBUF_INCLUDED_apache_2frocketmq_2fv2_2fadmin_2eproto
+#define GOOGLE_PROTOBUF_INCLUDED_apache_2frocketmq_2fv2_2fadmin_2eproto
+
+#include <limits>
+#include <string>
+
+#include <google/protobuf/port_def.inc>
+#if PROTOBUF_VERSION < 3020000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3020001 < PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/port_undef.inc>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata_lite.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
+#include <google/protobuf/extension_set.h>  // IWYU pragma: export
+#include <google/protobuf/generated_enum_reflection.h>
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+#include <google/protobuf/port_def.inc>
+#define PROTOBUF_INTERNAL_EXPORT_apache_2frocketmq_2fv2_2fadmin_2eproto
+PROTOBUF_NAMESPACE_OPEN
+namespace internal {
+class AnyMetadata;
+}  // namespace internal
+PROTOBUF_NAMESPACE_CLOSE
+
+// Internal implementation detail -- do not use these members.
+struct TableStruct_apache_2frocketmq_2fv2_2fadmin_2eproto {
+  static const uint32_t offsets[];
+};
+extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_apache_2frocketmq_2fv2_2fadmin_2eproto;
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+class ChangeLogLevelRequest;
+struct ChangeLogLevelRequestDefaultTypeInternal;
+extern ChangeLogLevelRequestDefaultTypeInternal _ChangeLogLevelRequest_default_instance_;
+class ChangeLogLevelResponse;
+struct ChangeLogLevelResponseDefaultTypeInternal;
+extern ChangeLogLevelResponseDefaultTypeInternal _ChangeLogLevelResponse_default_instance_;
+}  // namespace v2
+}  // namespace rocketmq
+}  // namespace apache
+PROTOBUF_NAMESPACE_OPEN
+template<> ::apache::rocketmq::v2::ChangeLogLevelRequest* Arena::CreateMaybeMessage<::apache::rocketmq::v2::ChangeLogLevelRequest>(Arena*);
+template<> ::apache::rocketmq::v2::ChangeLogLevelResponse* Arena::CreateMaybeMessage<::apache::rocketmq::v2::ChangeLogLevelResponse>(Arena*);
+PROTOBUF_NAMESPACE_CLOSE
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+
+enum ChangeLogLevelRequest_Level : int {
+  ChangeLogLevelRequest_Level_TRACE = 0,
+  ChangeLogLevelRequest_Level_DEBUG = 1,
+  ChangeLogLevelRequest_Level_INFO = 2,
+  ChangeLogLevelRequest_Level_WARN = 3,
+  ChangeLogLevelRequest_Level_ERROR = 4,
+  ChangeLogLevelRequest_Level_ChangeLogLevelRequest_Level_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  ChangeLogLevelRequest_Level_ChangeLogLevelRequest_Level_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool ChangeLogLevelRequest_Level_IsValid(int value);
+constexpr ChangeLogLevelRequest_Level ChangeLogLevelRequest_Level_Level_MIN = ChangeLogLevelRequest_Level_TRACE;
+constexpr ChangeLogLevelRequest_Level ChangeLogLevelRequest_Level_Level_MAX = ChangeLogLevelRequest_Level_ERROR;
+constexpr int ChangeLogLevelRequest_Level_Level_ARRAYSIZE = ChangeLogLevelRequest_Level_Level_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ChangeLogLevelRequest_Level_descriptor();
+template<typename T>
+inline const std::string& ChangeLogLevelRequest_Level_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, ChangeLogLevelRequest_Level>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function ChangeLogLevelRequest_Level_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    ChangeLogLevelRequest_Level_descriptor(), enum_t_value);
+}
+inline bool ChangeLogLevelRequest_Level_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, ChangeLogLevelRequest_Level* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ChangeLogLevelRequest_Level>(
+    ChangeLogLevelRequest_Level_descriptor(), name, value);
+}
+// ===================================================================
+
+class ChangeLogLevelRequest final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.ChangeLogLevelRequest) */ {
+ public:
+  inline ChangeLogLevelRequest() : ChangeLogLevelRequest(nullptr) {}
+  ~ChangeLogLevelRequest() override;
+  explicit PROTOBUF_CONSTEXPR ChangeLogLevelRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  ChangeLogLevelRequest(const ChangeLogLevelRequest& from);
+  ChangeLogLevelRequest(ChangeLogLevelRequest&& from) noexcept
+    : ChangeLogLevelRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline ChangeLogLevelRequest& operator=(const ChangeLogLevelRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline ChangeLogLevelRequest& operator=(ChangeLogLevelRequest&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const ChangeLogLevelRequest& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const ChangeLogLevelRequest* internal_default_instance() {
+    return reinterpret_cast<const ChangeLogLevelRequest*>(
+               &_ChangeLogLevelRequest_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    0;
+
+  friend void swap(ChangeLogLevelRequest& a, ChangeLogLevelRequest& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(ChangeLogLevelRequest* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(ChangeLogLevelRequest* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  ChangeLogLevelRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ChangeLogLevelRequest>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const ChangeLogLevelRequest& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const ChangeLogLevelRequest& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(ChangeLogLevelRequest* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.ChangeLogLevelRequest";
+  }
+  protected:
+  explicit ChangeLogLevelRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  typedef ChangeLogLevelRequest_Level Level;
+  static constexpr Level TRACE =
+    ChangeLogLevelRequest_Level_TRACE;
+  static constexpr Level DEBUG =
+    ChangeLogLevelRequest_Level_DEBUG;
+  static constexpr Level INFO =
+    ChangeLogLevelRequest_Level_INFO;
+  static constexpr Level WARN =
+    ChangeLogLevelRequest_Level_WARN;
+  static constexpr Level ERROR =
+    ChangeLogLevelRequest_Level_ERROR;
+  static inline bool Level_IsValid(int value) {
+    return ChangeLogLevelRequest_Level_IsValid(value);
+  }
+  static constexpr Level Level_MIN =
+    ChangeLogLevelRequest_Level_Level_MIN;
+  static constexpr Level Level_MAX =
+    ChangeLogLevelRequest_Level_Level_MAX;
+  static constexpr int Level_ARRAYSIZE =
+    ChangeLogLevelRequest_Level_Level_ARRAYSIZE;
+  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
+  Level_descriptor() {
+    return ChangeLogLevelRequest_Level_descriptor();
+  }
+  template<typename T>
+  static inline const std::string& Level_Name(T enum_t_value) {
+    static_assert(::std::is_same<T, Level>::value ||
+      ::std::is_integral<T>::value,
+      "Incorrect type passed to function Level_Name.");
+    return ChangeLogLevelRequest_Level_Name(enum_t_value);
+  }
+  static inline bool Level_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
+      Level* value) {
+    return ChangeLogLevelRequest_Level_Parse(name, value);
+  }
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kLevelFieldNumber = 1,
+  };
+  // .apache.rocketmq.v2.ChangeLogLevelRequest.Level level = 1 [json_name = "level"];
+  void clear_level();
+  ::apache::rocketmq::v2::ChangeLogLevelRequest_Level level() const;
+  void set_level(::apache::rocketmq::v2::ChangeLogLevelRequest_Level value);
+  private:
+  ::apache::rocketmq::v2::ChangeLogLevelRequest_Level _internal_level() const;
+  void _internal_set_level(::apache::rocketmq::v2::ChangeLogLevelRequest_Level value);
+  public:
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.ChangeLogLevelRequest)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  int level_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fadmin_2eproto;
+};
+// -------------------------------------------------------------------
+
+class ChangeLogLevelResponse final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.ChangeLogLevelResponse) */ {
+ public:
+  inline ChangeLogLevelResponse() : ChangeLogLevelResponse(nullptr) {}
+  ~ChangeLogLevelResponse() override;
+  explicit PROTOBUF_CONSTEXPR ChangeLogLevelResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  ChangeLogLevelResponse(const ChangeLogLevelResponse& from);
+  ChangeLogLevelResponse(ChangeLogLevelResponse&& from) noexcept
+    : ChangeLogLevelResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline ChangeLogLevelResponse& operator=(const ChangeLogLevelResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline ChangeLogLevelResponse& operator=(ChangeLogLevelResponse&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const ChangeLogLevelResponse& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const ChangeLogLevelResponse* internal_default_instance() {
+    return reinterpret_cast<const ChangeLogLevelResponse*>(
+               &_ChangeLogLevelResponse_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    1;
+
+  friend void swap(ChangeLogLevelResponse& a, ChangeLogLevelResponse& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(ChangeLogLevelResponse* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(ChangeLogLevelResponse* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  ChangeLogLevelResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ChangeLogLevelResponse>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const ChangeLogLevelResponse& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const ChangeLogLevelResponse& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(ChangeLogLevelResponse* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.ChangeLogLevelResponse";
+  }
+  protected:
+  explicit ChangeLogLevelResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kRemarkFieldNumber = 1,
+  };
+  // string remark = 1 [json_name = "remark"];
+  void clear_remark();
+  const std::string& remark() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_remark(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_remark();
+  PROTOBUF_NODISCARD std::string* release_remark();
+  void set_allocated_remark(std::string* remark);
+  private:
+  const std::string& _internal_remark() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_remark(const std::string& value);
+  std::string* _internal_mutable_remark();
+  public:
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.ChangeLogLevelResponse)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr remark_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fadmin_2eproto;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#ifdef __GNUC__
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif  // __GNUC__
+// ChangeLogLevelRequest
+
+// .apache.rocketmq.v2.ChangeLogLevelRequest.Level level = 1 [json_name = "level"];
+inline void ChangeLogLevelRequest::clear_level() {
+  level_ = 0;
+}
+inline ::apache::rocketmq::v2::ChangeLogLevelRequest_Level ChangeLogLevelRequest::_internal_level() const {
+  return static_cast< ::apache::rocketmq::v2::ChangeLogLevelRequest_Level >(level_);
+}
+inline ::apache::rocketmq::v2::ChangeLogLevelRequest_Level ChangeLogLevelRequest::level() const {
+  // @@protoc_insertion_point(field_get:apache.rocketmq.v2.ChangeLogLevelRequest.level)
+  return _internal_level();
+}
+inline void ChangeLogLevelRequest::_internal_set_level(::apache::rocketmq::v2::ChangeLogLevelRequest_Level value) {
+  
+  level_ = value;
+}
+inline void ChangeLogLevelRequest::set_level(::apache::rocketmq::v2::ChangeLogLevelRequest_Level value) {
+  _internal_set_level(value);
+  // @@protoc_insertion_point(field_set:apache.rocketmq.v2.ChangeLogLevelRequest.level)
+}
+
+// -------------------------------------------------------------------
+
+// ChangeLogLevelResponse
+
+// string remark = 1 [json_name = "remark"];
+inline void ChangeLogLevelResponse::clear_remark() {
+  remark_.ClearToEmpty();
+}
+inline const std::string& ChangeLogLevelResponse::remark() const {
+  // @@protoc_insertion_point(field_get:apache.rocketmq.v2.ChangeLogLevelResponse.remark)
+  return _internal_remark();
+}
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void ChangeLogLevelResponse::set_remark(ArgT0&& arg0, ArgT... args) {
+ 
+ remark_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
+  // @@protoc_insertion_point(field_set:apache.rocketmq.v2.ChangeLogLevelResponse.remark)
+}
+inline std::string* ChangeLogLevelResponse::mutable_remark() {
+  std::string* _s = _internal_mutable_remark();
+  // @@protoc_insertion_point(field_mutable:apache.rocketmq.v2.ChangeLogLevelResponse.remark)
+  return _s;
+}
+inline const std::string& ChangeLogLevelResponse::_internal_remark() const {
+  return remark_.Get();
+}
+inline void ChangeLogLevelResponse::_internal_set_remark(const std::string& value) {
+  
+  remark_.Set(value, GetArenaForAllocation());
+}
+inline std::string* ChangeLogLevelResponse::_internal_mutable_remark() {
+  
+  return remark_.Mutable(GetArenaForAllocation());
+}
+inline std::string* ChangeLogLevelResponse::release_remark() {
+  // @@protoc_insertion_point(field_release:apache.rocketmq.v2.ChangeLogLevelResponse.remark)
+  return remark_.Release();
+}
+inline void ChangeLogLevelResponse::set_allocated_remark(std::string* remark) {
+  if (remark != nullptr) {
+    
+  } else {
+    
+  }
+  remark_.SetAllocated(remark, GetArenaForAllocation());
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (remark_.IsDefault()) {
+    remark_.Set("", GetArenaForAllocation());
+  }
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  // @@protoc_insertion_point(field_set_allocated:apache.rocketmq.v2.ChangeLogLevelResponse.remark)
+}
+
+#ifdef __GNUC__
+  #pragma GCC diagnostic pop
+#endif  // __GNUC__
+// -------------------------------------------------------------------
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+}  // namespace v2
+}  // namespace rocketmq
+}  // namespace apache
+
+PROTOBUF_NAMESPACE_OPEN
+
+template <> struct is_proto_enum< ::apache::rocketmq::v2::ChangeLogLevelRequest_Level> : ::std::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::apache::rocketmq::v2::ChangeLogLevelRequest_Level>() {
+  return ::apache::rocketmq::v2::ChangeLogLevelRequest_Level_descriptor();
+}
+
+PROTOBUF_NAMESPACE_CLOSE
+
+// @@protoc_insertion_point(global_scope)
+
+#include <google/protobuf/port_undef.inc>
+#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_apache_2frocketmq_2fv2_2fadmin_2eproto
diff --git a/cpp/generate/apache/rocketmq/v2/admin_mock.grpc.pb.h b/cpp/generate/apache/rocketmq/v2/admin_mock.grpc.pb.h
new file mode 100755
index 0000000..a6787fa
--- /dev/null
+++ b/cpp/generate/apache/rocketmq/v2/admin_mock.grpc.pb.h
@@ -0,0 +1,25 @@
+// Generated by the gRPC C++ plugin.
+// If you make any local change, they will be lost.
+// source: apache/rocketmq/v2/admin.proto
+
+#include "apache/rocketmq/v2/admin.pb.h"
+#include "apache/rocketmq/v2/admin.grpc.pb.h"
+
+#include <grpcpp/impl/codegen/async_stream.h>
+#include <grpcpp/impl/codegen/sync_stream.h>
+#include <gmock/gmock.h>
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+
+class MockAdminStub : public Admin::StubInterface {
+ public:
+  MOCK_METHOD3(ChangeLogLevel, ::grpc::Status(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::apache::rocketmq::v2::ChangeLogLevelResponse* response));
+  MOCK_METHOD3(AsyncChangeLogLevelRaw, ::grpc::ClientAsyncResponseReaderInterface< ::apache::rocketmq::v2::ChangeLogLevelResponse>*(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq));
+  MOCK_METHOD3(PrepareAsyncChangeLogLevelRaw, ::grpc::ClientAsyncResponseReaderInterface< ::apache::rocketmq::v2::ChangeLogLevelResponse>*(::grpc::ClientContext* context, const ::apache::rocketmq::v2::ChangeLogLevelRequest& request, ::grpc::CompletionQueue* cq));
+};
+
+} // namespace apache
+} // namespace rocketmq
+} // namespace v2
+
diff --git a/cpp/generate/apache/rocketmq/v2/definition.grpc.pb.cc b/cpp/generate/apache/rocketmq/v2/definition.grpc.pb.cc
new file mode 100755
index 0000000..87e7896
--- /dev/null
+++ b/cpp/generate/apache/rocketmq/v2/definition.grpc.pb.cc
@@ -0,0 +1,29 @@
+// Generated by the gRPC C++ plugin.
+// If you make any local change, they will be lost.
+// source: apache/rocketmq/v2/definition.proto
+
+#include "apache/rocketmq/v2/definition.pb.h"
+#include "apache/rocketmq/v2/definition.grpc.pb.h"
+
+#include <functional>
+#include <grpcpp/impl/codegen/async_stream.h>
+#include <grpcpp/impl/codegen/async_unary_call.h>
+#include <grpcpp/impl/codegen/channel_interface.h>
+#include <grpcpp/impl/codegen/client_unary_call.h>
+#include <grpcpp/impl/codegen/client_callback.h>
+#include <grpcpp/impl/codegen/message_allocator.h>
+#include <grpcpp/impl/codegen/method_handler.h>
+#include <grpcpp/impl/codegen/rpc_service_method.h>
+#include <grpcpp/impl/codegen/server_callback.h>
+#include <grpcpp/impl/codegen/server_callback_handlers.h>
+#include <grpcpp/impl/codegen/server_context.h>
+#include <grpcpp/impl/codegen/service_type.h>
+#include <grpcpp/impl/codegen/sync_stream.h>
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+
+}  // namespace apache
+}  // namespace rocketmq
+}  // namespace v2
+
diff --git a/cpp/generate/apache/rocketmq/v2/definition.grpc.pb.h b/cpp/generate/apache/rocketmq/v2/definition.grpc.pb.h
new file mode 100755
index 0000000..4a71d67
--- /dev/null
+++ b/cpp/generate/apache/rocketmq/v2/definition.grpc.pb.h
@@ -0,0 +1,37 @@
+// Generated by the gRPC C++ plugin.
+// If you make any local change, they will be lost.
+// source: apache/rocketmq/v2/definition.proto
+#ifndef GRPC_apache_2frocketmq_2fv2_2fdefinition_2eproto__INCLUDED
+#define GRPC_apache_2frocketmq_2fv2_2fdefinition_2eproto__INCLUDED
+
+#include "apache/rocketmq/v2/definition.pb.h"
+
+#include <functional>
+#include <grpcpp/impl/codegen/async_generic_service.h>
+#include <grpcpp/impl/codegen/async_stream.h>
+#include <grpcpp/impl/codegen/async_unary_call.h>
+#include <grpcpp/impl/codegen/client_callback.h>
+#include <grpcpp/impl/codegen/client_context.h>
+#include <grpcpp/impl/codegen/completion_queue.h>
+#include <grpcpp/impl/codegen/message_allocator.h>
+#include <grpcpp/impl/codegen/method_handler.h>
+#include <grpcpp/impl/codegen/proto_utils.h>
+#include <grpcpp/impl/codegen/rpc_method.h>
+#include <grpcpp/impl/codegen/server_callback.h>
+#include <grpcpp/impl/codegen/server_callback_handlers.h>
+#include <grpcpp/impl/codegen/server_context.h>
+#include <grpcpp/impl/codegen/service_type.h>
+#include <grpcpp/impl/codegen/status.h>
+#include <grpcpp/impl/codegen/stub_options.h>
+#include <grpcpp/impl/codegen/sync_stream.h>
+
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+
+}  // namespace v2
+}  // namespace rocketmq
+}  // namespace apache
+
+
+#endif  // GRPC_apache_2frocketmq_2fv2_2fdefinition_2eproto__INCLUDED
diff --git a/cpp/generate/apache/rocketmq/v2/definition.pb.cc b/cpp/generate/apache/rocketmq/v2/definition.pb.cc
new file mode 100755
index 0000000..dbec111
--- /dev/null
+++ b/cpp/generate/apache/rocketmq/v2/definition.pb.cc
@@ -0,0 +1,5776 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: apache/rocketmq/v2/definition.proto
+
+#include "apache/rocketmq/v2/definition.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/wire_format_lite.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+#include <google/protobuf/port_def.inc>
+
+PROTOBUF_PRAGMA_INIT_SEG
+
+namespace _pb = ::PROTOBUF_NAMESPACE_ID;
+namespace _pbi = _pb::internal;
+
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+PROTOBUF_CONSTEXPR FilterExpression::FilterExpression(
+    ::_pbi::ConstantInitialized)
+  : expression_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , type_(0)
+{}
+struct FilterExpressionDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR FilterExpressionDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~FilterExpressionDefaultTypeInternal() {}
+  union {
+    FilterExpression _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FilterExpressionDefaultTypeInternal _FilterExpression_default_instance_;
+PROTOBUF_CONSTEXPR RetryPolicy::RetryPolicy(
+    ::_pbi::ConstantInitialized)
+  : max_attempts_(0)
+  , _oneof_case_{}{}
+struct RetryPolicyDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR RetryPolicyDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~RetryPolicyDefaultTypeInternal() {}
+  union {
+    RetryPolicy _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RetryPolicyDefaultTypeInternal _RetryPolicy_default_instance_;
+PROTOBUF_CONSTEXPR ExponentialBackoff::ExponentialBackoff(
+    ::_pbi::ConstantInitialized)
+  : initial_(nullptr)
+  , max_(nullptr)
+  , multiplier_(0){}
+struct ExponentialBackoffDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR ExponentialBackoffDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~ExponentialBackoffDefaultTypeInternal() {}
+  union {
+    ExponentialBackoff _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExponentialBackoffDefaultTypeInternal _ExponentialBackoff_default_instance_;
+PROTOBUF_CONSTEXPR CustomizedBackoff::CustomizedBackoff(
+    ::_pbi::ConstantInitialized)
+  : next_(){}
+struct CustomizedBackoffDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR CustomizedBackoffDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~CustomizedBackoffDefaultTypeInternal() {}
+  union {
+    CustomizedBackoff _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CustomizedBackoffDefaultTypeInternal _CustomizedBackoff_default_instance_;
+PROTOBUF_CONSTEXPR Resource::Resource(
+    ::_pbi::ConstantInitialized)
+  : resource_namespace_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , name_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
+struct ResourceDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR ResourceDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~ResourceDefaultTypeInternal() {}
+  union {
+    Resource _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ResourceDefaultTypeInternal _Resource_default_instance_;
+PROTOBUF_CONSTEXPR SubscriptionEntry::SubscriptionEntry(
+    ::_pbi::ConstantInitialized)
+  : topic_(nullptr)
+  , expression_(nullptr){}
+struct SubscriptionEntryDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR SubscriptionEntryDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~SubscriptionEntryDefaultTypeInternal() {}
+  union {
+    SubscriptionEntry _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubscriptionEntryDefaultTypeInternal _SubscriptionEntry_default_instance_;
+PROTOBUF_CONSTEXPR Address::Address(
+    ::_pbi::ConstantInitialized)
+  : host_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , port_(0){}
+struct AddressDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR AddressDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~AddressDefaultTypeInternal() {}
+  union {
+    Address _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AddressDefaultTypeInternal _Address_default_instance_;
+PROTOBUF_CONSTEXPR Endpoints::Endpoints(
+    ::_pbi::ConstantInitialized)
+  : addresses_()
+  , scheme_(0)
+{}
+struct EndpointsDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR EndpointsDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~EndpointsDefaultTypeInternal() {}
+  union {
+    Endpoints _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 EndpointsDefaultTypeInternal _Endpoints_default_instance_;
+PROTOBUF_CONSTEXPR Broker::Broker(
+    ::_pbi::ConstantInitialized)
+  : name_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , endpoints_(nullptr)
+  , id_(0){}
+struct BrokerDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR BrokerDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~BrokerDefaultTypeInternal() {}
+  union {
+    Broker _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BrokerDefaultTypeInternal _Broker_default_instance_;
+PROTOBUF_CONSTEXPR MessageQueue::MessageQueue(
+    ::_pbi::ConstantInitialized)
+  : accept_message_types_()
+  , _accept_message_types_cached_byte_size_(0)
+  , topic_(nullptr)
+  , broker_(nullptr)
+  , id_(0)
+  , permission_(0)
+{}
+struct MessageQueueDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR MessageQueueDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~MessageQueueDefaultTypeInternal() {}
+  union {
+    MessageQueue _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MessageQueueDefaultTypeInternal _MessageQueue_default_instance_;
+PROTOBUF_CONSTEXPR Digest::Digest(
+    ::_pbi::ConstantInitialized)
+  : checksum_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , type_(0)
+{}
+struct DigestDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR DigestDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~DigestDefaultTypeInternal() {}
+  union {
+    Digest _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DigestDefaultTypeInternal _Digest_default_instance_;
+PROTOBUF_CONSTEXPR SystemProperties::SystemProperties(
+    ::_pbi::ConstantInitialized)
+  : keys_()
+  , tag_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , message_id_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , born_host_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , store_host_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , receipt_handle_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , message_group_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , trace_context_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , body_digest_(nullptr)
+  , born_timestamp_(nullptr)
+  , store_timestamp_(nullptr)
+  , delivery_timestamp_(nullptr)
+  , invisible_duration_(nullptr)
+  , orphaned_transaction_recovery_duration_(nullptr)
+  , body_encoding_(0)
+
+  , message_type_(0)
+
+  , queue_offset_(int64_t{0})
+  , queue_id_(0)
+  , delivery_attempt_(0){}
+struct SystemPropertiesDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR SystemPropertiesDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~SystemPropertiesDefaultTypeInternal() {}
+  union {
+    SystemProperties _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SystemPropertiesDefaultTypeInternal _SystemProperties_default_instance_;
+PROTOBUF_CONSTEXPR Message_UserPropertiesEntry_DoNotUse::Message_UserPropertiesEntry_DoNotUse(
+    ::_pbi::ConstantInitialized){}
+struct Message_UserPropertiesEntry_DoNotUseDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR Message_UserPropertiesEntry_DoNotUseDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~Message_UserPropertiesEntry_DoNotUseDefaultTypeInternal() {}
+  union {
+    Message_UserPropertiesEntry_DoNotUse _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 Message_UserPropertiesEntry_DoNotUseDefaultTypeInternal _Message_UserPropertiesEntry_DoNotUse_default_instance_;
+PROTOBUF_CONSTEXPR Message::Message(
+    ::_pbi::ConstantInitialized)
+  : user_properties_(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{})
+  , body_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , topic_(nullptr)
+  , system_properties_(nullptr){}
+struct MessageDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR MessageDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~MessageDefaultTypeInternal() {}
+  union {
+    Message _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MessageDefaultTypeInternal _Message_default_instance_;
+PROTOBUF_CONSTEXPR Assignment::Assignment(
+    ::_pbi::ConstantInitialized)
+  : message_queue_(nullptr){}
+struct AssignmentDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR AssignmentDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~AssignmentDefaultTypeInternal() {}
+  union {
+    Assignment _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AssignmentDefaultTypeInternal _Assignment_default_instance_;
+PROTOBUF_CONSTEXPR Status::Status(
+    ::_pbi::ConstantInitialized)
+  : message_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , code_(0)
+{}
+struct StatusDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR StatusDefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~StatusDefaultTypeInternal() {}
+  union {
+    Status _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 StatusDefaultTypeInternal _Status_default_instance_;
+PROTOBUF_CONSTEXPR UA::UA(
+    ::_pbi::ConstantInitialized)
+  : version_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , platform_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , hostname_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
+  , language_(0)
+{}
+struct UADefaultTypeInternal {
+  PROTOBUF_CONSTEXPR UADefaultTypeInternal()
+      : _instance(::_pbi::ConstantInitialized{}) {}
+  ~UADefaultTypeInternal() {}
+  union {
+    UA _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UADefaultTypeInternal _UA_default_instance_;
+}  // namespace v2
+}  // namespace rocketmq
+}  // namespace apache
+static ::_pb::Metadata file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[17];
+static const ::_pb::EnumDescriptor* file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[11];
+static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto = nullptr;
+
+const uint32_t TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::FilterExpression, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::FilterExpression, type_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::FilterExpression, expression_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::RetryPolicy, _internal_metadata_),
+  ~0u,  // no _extensions_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::RetryPolicy, _oneof_case_[0]),
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::RetryPolicy, max_attempts_),
+  ::_pbi::kInvalidFieldOffsetTag,
+  ::_pbi::kInvalidFieldOffsetTag,
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::RetryPolicy, strategy_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::ExponentialBackoff, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::ExponentialBackoff, initial_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::ExponentialBackoff, max_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::ExponentialBackoff, multiplier_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::CustomizedBackoff, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::CustomizedBackoff, next_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Resource, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Resource, resource_namespace_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Resource, name_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SubscriptionEntry, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SubscriptionEntry, topic_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SubscriptionEntry, expression_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Address, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Address, host_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Address, port_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Endpoints, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Endpoints, scheme_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Endpoints, addresses_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Broker, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Broker, name_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Broker, id_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Broker, endpoints_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::MessageQueue, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::MessageQueue, topic_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::MessageQueue, id_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::MessageQueue, permission_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::MessageQueue, broker_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::MessageQueue, accept_message_types_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Digest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Digest, type_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Digest, checksum_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, _has_bits_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, tag_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, keys_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, message_id_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, body_digest_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, body_encoding_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, message_type_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, born_timestamp_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, born_host_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, store_timestamp_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, store_host_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, delivery_timestamp_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, receipt_handle_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, queue_id_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, queue_offset_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, invisible_duration_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, delivery_attempt_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, message_group_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, trace_context_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::SystemProperties, orphaned_transaction_recovery_duration_),
+  0,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  4,
+  ~0u,
+  5,
+  1,
+  ~0u,
+  8,
+  6,
+  9,
+  2,
+  3,
+  7,
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Message_UserPropertiesEntry_DoNotUse, _has_bits_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Message_UserPropertiesEntry_DoNotUse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Message_UserPropertiesEntry_DoNotUse, key_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Message_UserPropertiesEntry_DoNotUse, value_),
+  0,
+  1,
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Message, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Message, topic_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Message, user_properties_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Message, system_properties_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Message, body_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Assignment, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Assignment, message_queue_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Status, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Status, code_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::Status, message_),
+  ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::UA, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _inlined_string_donated_
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::UA, language_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::UA, version_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::UA, platform_),
+  PROTOBUF_FIELD_OFFSET(::apache::rocketmq::v2::UA, hostname_),
+};
+static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+  { 0, -1, -1, sizeof(::apache::rocketmq::v2::FilterExpression)},
+  { 8, -1, -1, sizeof(::apache::rocketmq::v2::RetryPolicy)},
+  { 18, -1, -1, sizeof(::apache::rocketmq::v2::ExponentialBackoff)},
+  { 27, -1, -1, sizeof(::apache::rocketmq::v2::CustomizedBackoff)},
+  { 34, -1, -1, sizeof(::apache::rocketmq::v2::Resource)},
+  { 42, -1, -1, sizeof(::apache::rocketmq::v2::SubscriptionEntry)},
+  { 50, -1, -1, sizeof(::apache::rocketmq::v2::Address)},
+  { 58, -1, -1, sizeof(::apache::rocketmq::v2::Endpoints)},
+  { 66, -1, -1, sizeof(::apache::rocketmq::v2::Broker)},
+  { 75, -1, -1, sizeof(::apache::rocketmq::v2::MessageQueue)},
+  { 86, -1, -1, sizeof(::apache::rocketmq::v2::Digest)},
+  { 94, 119, -1, sizeof(::apache::rocketmq::v2::SystemProperties)},
+  { 138, 146, -1, sizeof(::apache::rocketmq::v2::Message_UserPropertiesEntry_DoNotUse)},
+  { 148, -1, -1, sizeof(::apache::rocketmq::v2::Message)},
+  { 158, -1, -1, sizeof(::apache::rocketmq::v2::Assignment)},
+  { 165, -1, -1, sizeof(::apache::rocketmq::v2::Status)},
+  { 173, -1, -1, sizeof(::apache::rocketmq::v2::UA)},
+};
+
+static const ::_pb::Message* const file_default_instances[] = {
+  &::apache::rocketmq::v2::_FilterExpression_default_instance_._instance,
+  &::apache::rocketmq::v2::_RetryPolicy_default_instance_._instance,
+  &::apache::rocketmq::v2::_ExponentialBackoff_default_instance_._instance,
+  &::apache::rocketmq::v2::_CustomizedBackoff_default_instance_._instance,
+  &::apache::rocketmq::v2::_Resource_default_instance_._instance,
+  &::apache::rocketmq::v2::_SubscriptionEntry_default_instance_._instance,
+  &::apache::rocketmq::v2::_Address_default_instance_._instance,
+  &::apache::rocketmq::v2::_Endpoints_default_instance_._instance,
+  &::apache::rocketmq::v2::_Broker_default_instance_._instance,
+  &::apache::rocketmq::v2::_MessageQueue_default_instance_._instance,
+  &::apache::rocketmq::v2::_Digest_default_instance_._instance,
+  &::apache::rocketmq::v2::_SystemProperties_default_instance_._instance,
+  &::apache::rocketmq::v2::_Message_UserPropertiesEntry_DoNotUse_default_instance_._instance,
+  &::apache::rocketmq::v2::_Message_default_instance_._instance,
+  &::apache::rocketmq::v2::_Assignment_default_instance_._instance,
+  &::apache::rocketmq::v2::_Status_default_instance_._instance,
+  &::apache::rocketmq::v2::_UA_default_instance_._instance,
+};
+
+const char descriptor_table_protodef_apache_2frocketmq_2fv2_2fdefinition_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
+  "\n#apache/rocketmq/v2/definition.proto\022\022a"
+  "pache.rocketmq.v2\032\037google/protobuf/times"
+  "tamp.proto\032\036google/protobuf/duration.pro"
+  "to\"f\n\020FilterExpression\0222\n\004type\030\001 \001(\0162\036.a"
+  "pache.rocketmq.v2.FilterTypeR\004type\022\036\n\nex"
+  "pression\030\002 \001(\tR\nexpression\"\357\001\n\013RetryPoli"
+  "cy\022!\n\014max_attempts\030\001 \001(\005R\013maxAttempts\022Y\n"
+  "\023exponential_backoff\030\002 \001(\0132&.apache.rock"
+  "etmq.v2.ExponentialBackoffH\000R\022exponentia"
+  "lBackoff\022V\n\022customized_backoff\030\003 \001(\0132%.a"
+  "pache.rocketmq.v2.CustomizedBackoffH\000R\021c"
+  "ustomizedBackoffB\n\n\010strategy\"\226\001\n\022Exponen"
+  "tialBackoff\0223\n\007initial\030\001 \001(\0132\031.google.pr"
+  "otobuf.DurationR\007initial\022+\n\003max\030\002 \001(\0132\031."
+  "google.protobuf.DurationR\003max\022\036\n\nmultipl"
+  "ier\030\003 \001(\002R\nmultiplier\"B\n\021CustomizedBacko"
+  "ff\022-\n\004next\030\001 \003(\0132\031.google.protobuf.Durat"
+  "ionR\004next\"M\n\010Resource\022-\n\022resource_namesp"
+  "ace\030\001 \001(\tR\021resourceNamespace\022\022\n\004name\030\002 \001"
+  "(\tR\004name\"\215\001\n\021SubscriptionEntry\0222\n\005topic\030"
+  "\001 \001(\0132\034.apache.rocketmq.v2.ResourceR\005top"
+  "ic\022D\n\nexpression\030\002 \001(\0132$.apache.rocketmq"
+  ".v2.FilterExpressionR\nexpression\"1\n\007Addr"
+  "ess\022\022\n\004host\030\001 \001(\tR\004host\022\022\n\004port\030\002 \001(\005R\004p"
+  "ort\"\201\001\n\tEndpoints\0229\n\006scheme\030\001 \001(\0162!.apac"
+  "he.rocketmq.v2.AddressSchemeR\006scheme\0229\n\t"
+  "addresses\030\002 \003(\0132\033.apache.rocketmq.v2.Add"
+  "ressR\taddresses\"i\n\006Broker\022\022\n\004name\030\001 \001(\tR"
+  "\004name\022\016\n\002id\030\002 \001(\005R\002id\022;\n\tendpoints\030\003 \001(\013"
+  "2\035.apache.rocketmq.v2.EndpointsR\tendpoin"
+  "ts\"\231\002\n\014MessageQueue\0222\n\005topic\030\001 \001(\0132\034.apa"
+  "che.rocketmq.v2.ResourceR\005topic\022\016\n\002id\030\002 "
+  "\001(\005R\002id\022>\n\npermission\030\003 \001(\0162\036.apache.roc"
+  "ketmq.v2.PermissionR\npermission\0222\n\006broke"
+  "r\030\004 \001(\0132\032.apache.rocketmq.v2.BrokerR\006bro"
+  "ker\022Q\n\024accept_message_types\030\005 \003(\0162\037.apac"
+  "he.rocketmq.v2.MessageTypeR\022acceptMessag"
+  "eTypes\"X\n\006Digest\0222\n\004type\030\001 \001(\0162\036.apache."
+  "rocketmq.v2.DigestTypeR\004type\022\032\n\010checksum"
+  "\030\002 \001(\tR\010checksum\"\302\t\n\020SystemProperties\022\025\n"
+  "\003tag\030\001 \001(\tH\000R\003tag\210\001\001\022\022\n\004keys\030\002 \003(\tR\004keys"
+  "\022\035\n\nmessage_id\030\003 \001(\tR\tmessageId\022;\n\013body_"
+  "digest\030\004 \001(\0132\032.apache.rocketmq.v2.Digest"
+  "R\nbodyDigest\022A\n\rbody_encoding\030\005 \001(\0162\034.ap"
+  "ache.rocketmq.v2.EncodingR\014bodyEncoding\022"
+  "B\n\014message_type\030\006 \001(\0162\037.apache.rocketmq."
+  "v2.MessageTypeR\013messageType\022A\n\016born_time"
+  "stamp\030\007 \001(\0132\032.google.protobuf.TimestampR"
+  "\rbornTimestamp\022\033\n\tborn_host\030\010 \001(\tR\010bornH"
+  "ost\022H\n\017store_timestamp\030\t \001(\0132\032.google.pr"
+  "otobuf.TimestampH\001R\016storeTimestamp\210\001\001\022\035\n"
+  "\nstore_host\030\n \001(\tR\tstoreHost\022N\n\022delivery"
+  "_timestamp\030\013 \001(\0132\032.google.protobuf.Times"
+  "tampH\002R\021deliveryTimestamp\210\001\001\022*\n\016receipt_"
+  "handle\030\014 \001(\tH\003R\rreceiptHandle\210\001\001\022\031\n\010queu"
+  "e_id\030\r \001(\005R\007queueId\022&\n\014queue_offset\030\016 \001("
+  "\003H\004R\013queueOffset\210\001\001\022M\n\022invisible_duratio"
+  "n\030\017 \001(\0132\031.google.protobuf.DurationH\005R\021in"
+  "visibleDuration\210\001\001\022.\n\020delivery_attempt\030\020"
+  " \001(\005H\006R\017deliveryAttempt\210\001\001\022(\n\rmessage_gr"
+  "oup\030\021 \001(\tH\007R\014messageGroup\210\001\001\022(\n\rtrace_co"
+  "ntext\030\022 \001(\tH\010R\014traceContext\210\001\001\022s\n&orphan"
+  "ed_transaction_recovery_duration\030\023 \001(\0132\031"
+  ".google.protobuf.DurationH\tR#orphanedTra"
+  "nsactionRecoveryDuration\210\001\001B\006\n\004_tagB\022\n\020_"
+  "store_timestampB\025\n\023_delivery_timestampB\021"
+  "\n\017_receipt_handleB\017\n\r_queue_offsetB\025\n\023_i"
+  "nvisible_durationB\023\n\021_delivery_attemptB\020"
+  "\n\016_message_groupB\020\n\016_trace_contextB)\n\'_o"
+  "rphaned_transaction_recovery_duration\"\301\002"
+  "\n\007Message\0222\n\005topic\030\001 \001(\0132\034.apache.rocket"
+  "mq.v2.ResourceR\005topic\022X\n\017user_properties"
+  "\030\002 \003(\0132/.apache.rocketmq.v2.Message.User"
+  "PropertiesEntryR\016userProperties\022Q\n\021syste"
+  "m_properties\030\003 \001(\0132$.apache.rocketmq.v2."
+  "SystemPropertiesR\020systemProperties\022\022\n\004bo"
+  "dy\030\004 \001(\014R\004body\032A\n\023UserPropertiesEntry\022\020\n"
+  "\003key\030\001 \001(\tR\003key\022\024\n\005value\030\002 \001(\tR\005value:\0028"
+  "\001\"S\n\nAssignment\022E\n\rmessage_queue\030\001 \001(\0132 "
+  ".apache.rocketmq.v2.MessageQueueR\014messag"
+  "eQueue\"P\n\006Status\022,\n\004code\030\001 \001(\0162\030.apache."
+  "rocketmq.v2.CodeR\004code\022\030\n\007message\030\002 \001(\tR"
+  "\007message\"\220\001\n\002UA\0228\n\010language\030\001 \001(\0162\034.apac"
+  "he.rocketmq.v2.LanguageR\010language\022\030\n\007ver"
+  "sion\030\002 \001(\tR\007version\022\032\n\010platform\030\003 \001(\tR\010p"
+  "latform\022\032\n\010hostname\030\004 \001(\tR\010hostname*Y\n\025T"
+  "ransactionResolution\022&\n\"TRANSACTION_RESO"
+  "LUTION_UNSPECIFIED\020\000\022\n\n\006COMMIT\020\001\022\014\n\010ROLL"
+  "BACK\020\002*W\n\021TransactionSource\022\026\n\022SOURCE_UN"
+  "SPECIFIED\020\000\022\021\n\rSOURCE_CLIENT\020\001\022\027\n\023SOURCE"
+  "_SERVER_CHECK\020\002*W\n\nPermission\022\032\n\026PERMISS"
+  "ION_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\003"
+  "SQL\020\002*T\n\rAddressScheme\022\036\n\032ADDRESS_SCHEME"
+  "_UNSPECIFIED\020\000\022\010\n\004IPv4\020\001\022\010\n\004IPv6\020\002\022\017\n\013DO"
+  "MAIN_NAME\020\003*]\n\013MessageType\022\034\n\030MESSAGE_TY"
+  "PE_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_UNSPECIFIED\020\000\022\t\n\005CRC32\020\001"
+  "\022\007\n\003MD5\020\002\022\010\n\004SHA1\020\003*_\n\nClientType\022\033\n\027CLI"
+  "ENT_TYPE_UNSPECIFIED\020\000\022\014\n\010PRODUCER\020\001\022\021\n\r"
+  "PUSH_CONSUMER\020\002\022\023\n\017SIMPLE_CONSUMER\020\003*<\n\010"
+  "Encoding\022\030\n\024ENCODING_UNSPECIFIED\020\000\022\014\n\010ID"
+  "ENTITY\020\001\022\010\n\004GZIP\020\002*\342\t\n\004Code\022\024\n\020CODE_UNSP"
+  "ECIFIED\020\000\022\010\n\002OK\020\240\234\001\022\026\n\020MULTIPLE_RESULTS\020"
+  "\260\352\001\022\021\n\013BAD_REQUEST\020\300\270\002\022\032\n\024ILLEGAL_ACCESS"
+  "_POINT\020\301\270\002\022\023\n\rILLEGAL_TOPIC\020\302\270\002\022\034\n\026ILLEG"
+  "AL_CONSUMER_GROUP\020\303\270\002\022\031\n\023ILLEGAL_MESSAGE"
+  "_TAG\020\304\270\002\022\031\n\023ILLEGAL_MESSAGE_KEY\020\305\270\002\022\033\n\025I"
+  "LLEGAL_MESSAGE_GROUP\020\306\270\002\022\"\n\034ILLEGAL_MESS"
+  "AGE_PROPERTY_KEY\020\307\270\002\022\034\n\026INVALID_TRANSACT"
+  "ION_ID\020\310\270\002\022\030\n\022ILLEGAL_MESSAGE_ID\020\311\270\002\022\037\n\031"
+  "ILLEGAL_FILTER_EXPRESSION\020\312\270\002\022\034\n\026ILLEGAL"
+  "_INVISIBLE_TIME\020\313\270\002\022\033\n\025ILLEGAL_DELIVERY_"
+  "TIME\020\314\270\002\022\034\n\026INVALID_RECEIPT_HANDLE\020\315\270\002\022)"
+  "\n#MESSAGE_PROPERTY_CONFLICT_WITH_TYPE\020\316\270"
+  "\002\022\036\n\030UNRECOGNIZED_CLIENT_TYPE\020\317\270\002\022\027\n\021MES"
+  "SAGE_CORRUPTED\020\320\270\002\022\030\n\022CLIENT_ID_REQUIRED"
+  "\020\321\270\002\022\022\n\014UNAUTHORIZED\020\244\271\002\022\026\n\020PAYMENT_REQU"
+  "IRED\020\210\272\002\022\017\n\tFORBIDDEN\020\354\272\002\022\017\n\tNOT_FOUND\020\320"
+  "\273\002\022\027\n\021MESSAGE_NOT_FOUND\020\321\273\002\022\025\n\017TOPIC_NOT"
+  "_FOUND\020\322\273\002\022\036\n\030CONSUMER_GROUP_NOT_FOUND\020\323"
+  "\273\002\022\025\n\017REQUEST_TIMEOUT\020\340\276\002\022\027\n\021PAYLOAD_TOO"
+  "_LARGE\020\324\302\002\022\034\n\026MESSAGE_BODY_TOO_LARGE\020\325\302\002"
+  "\022\031\n\023PRECONDITION_FAILED\020\260\316\002\022\027\n\021TOO_MANY_"
+  "REQUESTS\020\224\317\002\022%\n\037REQUEST_HEADER_FIELDS_TO"
+  "O_LARGE\020\334\320\002\022\"\n\034MESSAGE_PROPERTIES_TOO_LA"
+  "RGE\020\335\320\002\022\024\n\016INTERNAL_ERROR\020\320\206\003\022\033\n\025INTERNA"
+  "L_SERVER_ERROR\020\321\206\003\022\026\n\020HA_NOT_AVAILABLE\020\322"
+  "\206\003\022\025\n\017NOT_IMPLEMENTED\020\264\207\003\022\023\n\rPROXY_TIMEO"
+  "UT\020\340\211\003\022 \n\032MASTER_PERSISTENCE_TIMEOUT\020\341\211\003"
+  "\022\037\n\031SLAVE_PERSISTENCE_TIMEOUT\020\342\211\003\022\021\n\013UNS"
+  "UPPORTED\020\304\212\003\022\031\n\023VERSION_UNSUPPORTED\020\305\212\003\022"
+  "%\n\037VERIFY_FIFO_MESSAGE_UNSUPPORTED\020\306\212\003\022\037"
+  "\n\031FAILED_TO_CONSUME_MESSAGE\020\340\324\003*Z\n\010Langu"
+  "age\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\004RUS"
+  "T\020\005B;\n\022apache.rocketmq.v2B\010MQDomainP\001\240\001\001"
+  "\330\001\001\252\002\022Apache.Rocketmq.V2b\006proto3"
+  ;
+static const ::_pbi::DescriptorTable* const descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_deps[2] = {
+  &::descriptor_table_google_2fprotobuf_2fduration_2eproto,
+  &::descriptor_table_google_2fprotobuf_2ftimestamp_2eproto,
+};
+static ::_pbi::once_flag descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto = {
+    false, false, 5592, descriptor_table_protodef_apache_2frocketmq_2fv2_2fdefinition_2eproto,
+    "apache/rocketmq/v2/definition.proto",
+    &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once, descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_deps, 2, 17,
+    schemas, file_default_instances, TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto::offsets,
+    file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto, file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto,
+    file_level_service_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto,
+};
+PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter() {
+  return &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+}
+
+// Force running AddDescriptors() at dynamic initialization time.
+PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_apache_2frocketmq_2fv2_2fdefinition_2eproto(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TransactionResolution_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[0];
+}
+bool TransactionResolution_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TransactionSource_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[1];
+}
+bool TransactionSource_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Permission_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[2];
+}
+bool Permission_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* FilterType_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[3];
+}
+bool FilterType_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AddressScheme_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[4];
+}
+bool AddressScheme_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* MessageType_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[5];
+}
+bool MessageType_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DigestType_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[6];
+}
+bool DigestType_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ClientType_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[7];
+}
+bool ClientType_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Encoding_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[8];
+}
+bool Encoding_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Code_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[9];
+}
+bool Code_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 20000:
+    case 30000:
+    case 40000:
+    case 40001:
+    case 40002:
+    case 40003:
+    case 40004:
+    case 40005:
+    case 40006:
+    case 40007:
+    case 40008:
+    case 40009:
+    case 40010:
+    case 40011:
+    case 40012:
+    case 40013:
+    case 40014:
+    case 40015:
+    case 40016:
+    case 40017:
+    case 40100:
+    case 40200:
+    case 40300:
+    case 40400:
+    case 40401:
+    case 40402:
+    case 40403:
+    case 40800:
+    case 41300:
+    case 41301:
+    case 42800:
+    case 42900:
+    case 43100:
+    case 43101:
+    case 50000:
+    case 50001:
+    case 50002:
+    case 50100:
+    case 50400:
+    case 50401:
+    case 50402:
+    case 50500:
+    case 50501:
+    case 50502:
+    case 60000:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Language_descriptor() {
+  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto);
+  return file_level_enum_descriptors_apache_2frocketmq_2fv2_2fdefinition_2eproto[10];
+}
+bool Language_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+    case 5:
+      return true;
+    default:
+      return false;
+  }
+}
+
+
+// ===================================================================
+
+class FilterExpression::_Internal {
+ public:
+};
+
+FilterExpression::FilterExpression(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.FilterExpression)
+}
+FilterExpression::FilterExpression(const FilterExpression& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  expression_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    expression_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_expression().empty()) {
+    expression_.Set(from._internal_expression(), 
+      GetArenaForAllocation());
+  }
+  type_ = from.type_;
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.FilterExpression)
+}
+
+inline void FilterExpression::SharedCtor() {
+expression_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  expression_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+type_ = 0;
+}
+
+FilterExpression::~FilterExpression() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.FilterExpression)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void FilterExpression::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  expression_.Destroy();
+}
+
+void FilterExpression::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void FilterExpression::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.FilterExpression)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  expression_.ClearToEmpty();
+  type_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* FilterExpression::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .apache.rocketmq.v2.FilterType type = 1 [json_name = "type"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
+          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+          _internal_set_type(static_cast<::apache::rocketmq::v2::FilterType>(val));
+        } else
+          goto handle_unusual;
+        continue;
+      // string expression = 2 [json_name = "expression"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          auto str = _internal_mutable_expression();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.FilterExpression.expression"));
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* FilterExpression::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.FilterExpression)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.FilterType type = 1 [json_name = "type"];
+  if (this->_internal_type() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteEnumToArray(
+      1, this->_internal_type(), target);
+  }
+
+  // string expression = 2 [json_name = "expression"];
+  if (!this->_internal_expression().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_expression().data(), static_cast<int>(this->_internal_expression().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.FilterExpression.expression");
+    target = stream->WriteStringMaybeAliased(
+        2, this->_internal_expression(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.FilterExpression)
+  return target;
+}
+
+size_t FilterExpression::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.FilterExpression)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string expression = 2 [json_name = "expression"];
+  if (!this->_internal_expression().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_expression());
+  }
+
+  // .apache.rocketmq.v2.FilterType type = 1 [json_name = "type"];
+  if (this->_internal_type() != 0) {
+    total_size += 1 +
+      ::_pbi::WireFormatLite::EnumSize(this->_internal_type());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FilterExpression::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    FilterExpression::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FilterExpression::GetClassData() const { return &_class_data_; }
+
+void FilterExpression::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<FilterExpression *>(to)->MergeFrom(
+      static_cast<const FilterExpression &>(from));
+}
+
+
+void FilterExpression::MergeFrom(const FilterExpression& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.FilterExpression)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_expression().empty()) {
+    _internal_set_expression(from._internal_expression());
+  }
+  if (from._internal_type() != 0) {
+    _internal_set_type(from._internal_type());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void FilterExpression::CopyFrom(const FilterExpression& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.FilterExpression)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool FilterExpression::IsInitialized() const {
+  return true;
+}
+
+void FilterExpression::InternalSwap(FilterExpression* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &expression_, lhs_arena,
+      &other->expression_, rhs_arena
+  );
+  swap(type_, other->type_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata FilterExpression::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[0]);
+}
+
+// ===================================================================
+
+class RetryPolicy::_Internal {
+ public:
+  static const ::apache::rocketmq::v2::ExponentialBackoff& exponential_backoff(const RetryPolicy* msg);
+  static const ::apache::rocketmq::v2::CustomizedBackoff& customized_backoff(const RetryPolicy* msg);
+};
+
+const ::apache::rocketmq::v2::ExponentialBackoff&
+RetryPolicy::_Internal::exponential_backoff(const RetryPolicy* msg) {
+  return *msg->strategy_.exponential_backoff_;
+}
+const ::apache::rocketmq::v2::CustomizedBackoff&
+RetryPolicy::_Internal::customized_backoff(const RetryPolicy* msg) {
+  return *msg->strategy_.customized_backoff_;
+}
+void RetryPolicy::set_allocated_exponential_backoff(::apache::rocketmq::v2::ExponentialBackoff* exponential_backoff) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
+  clear_strategy();
+  if (exponential_backoff) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(exponential_backoff);
+    if (message_arena != submessage_arena) {
+      exponential_backoff = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, exponential_backoff, submessage_arena);
+    }
+    set_has_exponential_backoff();
+    strategy_.exponential_backoff_ = exponential_backoff;
+  }
+  // @@protoc_insertion_point(field_set_allocated:apache.rocketmq.v2.RetryPolicy.exponential_backoff)
+}
+void RetryPolicy::set_allocated_customized_backoff(::apache::rocketmq::v2::CustomizedBackoff* customized_backoff) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
+  clear_strategy();
+  if (customized_backoff) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(customized_backoff);
+    if (message_arena != submessage_arena) {
+      customized_backoff = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, customized_backoff, submessage_arena);
+    }
+    set_has_customized_backoff();
+    strategy_.customized_backoff_ = customized_backoff;
+  }
+  // @@protoc_insertion_point(field_set_allocated:apache.rocketmq.v2.RetryPolicy.customized_backoff)
+}
+RetryPolicy::RetryPolicy(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.RetryPolicy)
+}
+RetryPolicy::RetryPolicy(const RetryPolicy& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  max_attempts_ = from.max_attempts_;
+  clear_has_strategy();
+  switch (from.strategy_case()) {
+    case kExponentialBackoff: {
+      _internal_mutable_exponential_backoff()->::apache::rocketmq::v2::ExponentialBackoff::MergeFrom(from._internal_exponential_backoff());
+      break;
+    }
+    case kCustomizedBackoff: {
+      _internal_mutable_customized_backoff()->::apache::rocketmq::v2::CustomizedBackoff::MergeFrom(from._internal_customized_backoff());
+      break;
+    }
+    case STRATEGY_NOT_SET: {
+      break;
+    }
+  }
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.RetryPolicy)
+}
+
+inline void RetryPolicy::SharedCtor() {
+max_attempts_ = 0;
+clear_has_strategy();
+}
+
+RetryPolicy::~RetryPolicy() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.RetryPolicy)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void RetryPolicy::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  if (has_strategy()) {
+    clear_strategy();
+  }
+}
+
+void RetryPolicy::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void RetryPolicy::clear_strategy() {
+// @@protoc_insertion_point(one_of_clear_start:apache.rocketmq.v2.RetryPolicy)
+  switch (strategy_case()) {
+    case kExponentialBackoff: {
+      if (GetArenaForAllocation() == nullptr) {
+        delete strategy_.exponential_backoff_;
+      }
+      break;
+    }
+    case kCustomizedBackoff: {
+      if (GetArenaForAllocation() == nullptr) {
+        delete strategy_.customized_backoff_;
+      }
+      break;
+    }
+    case STRATEGY_NOT_SET: {
+      break;
+    }
+  }
+  _oneof_case_[0] = STRATEGY_NOT_SET;
+}
+
+
+void RetryPolicy::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.RetryPolicy)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  max_attempts_ = 0;
+  clear_strategy();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* RetryPolicy::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // int32 max_attempts = 1 [json_name = "maxAttempts"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
+          max_attempts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // .apache.rocketmq.v2.ExponentialBackoff exponential_backoff = 2 [json_name = "exponentialBackoff"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          ptr = ctx->ParseMessage(_internal_mutable_exponential_backoff(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // .apache.rocketmq.v2.CustomizedBackoff customized_backoff = 3 [json_name = "customizedBackoff"];
+      case 3:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
+          ptr = ctx->ParseMessage(_internal_mutable_customized_backoff(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* RetryPolicy::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.RetryPolicy)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // int32 max_attempts = 1 [json_name = "maxAttempts"];
+  if (this->_internal_max_attempts() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_max_attempts(), target);
+  }
+
+  // .apache.rocketmq.v2.ExponentialBackoff exponential_backoff = 2 [json_name = "exponentialBackoff"];
+  if (_internal_has_exponential_backoff()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(2, _Internal::exponential_backoff(this),
+        _Internal::exponential_backoff(this).GetCachedSize(), target, stream);
+  }
+
+  // .apache.rocketmq.v2.CustomizedBackoff customized_backoff = 3 [json_name = "customizedBackoff"];
+  if (_internal_has_customized_backoff()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(3, _Internal::customized_backoff(this),
+        _Internal::customized_backoff(this).GetCachedSize(), target, stream);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.RetryPolicy)
+  return target;
+}
+
+size_t RetryPolicy::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.RetryPolicy)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // int32 max_attempts = 1 [json_name = "maxAttempts"];
+  if (this->_internal_max_attempts() != 0) {
+    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_max_attempts());
+  }
+
+  switch (strategy_case()) {
+    // .apache.rocketmq.v2.ExponentialBackoff exponential_backoff = 2 [json_name = "exponentialBackoff"];
+    case kExponentialBackoff: {
+      total_size += 1 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+          *strategy_.exponential_backoff_);
+      break;
+    }
+    // .apache.rocketmq.v2.CustomizedBackoff customized_backoff = 3 [json_name = "customizedBackoff"];
+    case kCustomizedBackoff: {
+      total_size += 1 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+          *strategy_.customized_backoff_);
+      break;
+    }
+    case STRATEGY_NOT_SET: {
+      break;
+    }
+  }
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RetryPolicy::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    RetryPolicy::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RetryPolicy::GetClassData() const { return &_class_data_; }
+
+void RetryPolicy::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<RetryPolicy *>(to)->MergeFrom(
+      static_cast<const RetryPolicy &>(from));
+}
+
+
+void RetryPolicy::MergeFrom(const RetryPolicy& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.RetryPolicy)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from._internal_max_attempts() != 0) {
+    _internal_set_max_attempts(from._internal_max_attempts());
+  }
+  switch (from.strategy_case()) {
+    case kExponentialBackoff: {
+      _internal_mutable_exponential_backoff()->::apache::rocketmq::v2::ExponentialBackoff::MergeFrom(from._internal_exponential_backoff());
+      break;
+    }
+    case kCustomizedBackoff: {
+      _internal_mutable_customized_backoff()->::apache::rocketmq::v2::CustomizedBackoff::MergeFrom(from._internal_customized_backoff());
+      break;
+    }
+    case STRATEGY_NOT_SET: {
+      break;
+    }
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void RetryPolicy::CopyFrom(const RetryPolicy& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.RetryPolicy)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RetryPolicy::IsInitialized() const {
+  return true;
+}
+
+void RetryPolicy::InternalSwap(RetryPolicy* other) {
+  using std::swap;
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  swap(max_attempts_, other->max_attempts_);
+  swap(strategy_, other->strategy_);
+  swap(_oneof_case_[0], other->_oneof_case_[0]);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata RetryPolicy::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[1]);
+}
+
+// ===================================================================
+
+class ExponentialBackoff::_Internal {
+ public:
+  static const ::PROTOBUF_NAMESPACE_ID::Duration& initial(const ExponentialBackoff* msg);
+  static const ::PROTOBUF_NAMESPACE_ID::Duration& max(const ExponentialBackoff* msg);
+};
+
+const ::PROTOBUF_NAMESPACE_ID::Duration&
+ExponentialBackoff::_Internal::initial(const ExponentialBackoff* msg) {
+  return *msg->initial_;
+}
+const ::PROTOBUF_NAMESPACE_ID::Duration&
+ExponentialBackoff::_Internal::max(const ExponentialBackoff* msg) {
+  return *msg->max_;
+}
+void ExponentialBackoff::clear_initial() {
+  if (GetArenaForAllocation() == nullptr && initial_ != nullptr) {
+    delete initial_;
+  }
+  initial_ = nullptr;
+}
+void ExponentialBackoff::clear_max() {
+  if (GetArenaForAllocation() == nullptr && max_ != nullptr) {
+    delete max_;
+  }
+  max_ = nullptr;
+}
+ExponentialBackoff::ExponentialBackoff(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.ExponentialBackoff)
+}
+ExponentialBackoff::ExponentialBackoff(const ExponentialBackoff& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  if (from._internal_has_initial()) {
+    initial_ = new ::PROTOBUF_NAMESPACE_ID::Duration(*from.initial_);
+  } else {
+    initial_ = nullptr;
+  }
+  if (from._internal_has_max()) {
+    max_ = new ::PROTOBUF_NAMESPACE_ID::Duration(*from.max_);
+  } else {
+    max_ = nullptr;
+  }
+  multiplier_ = from.multiplier_;
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.ExponentialBackoff)
+}
+
+inline void ExponentialBackoff::SharedCtor() {
+::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
+    reinterpret_cast<char*>(&initial_) - reinterpret_cast<char*>(this)),
+    0, static_cast<size_t>(reinterpret_cast<char*>(&multiplier_) -
+    reinterpret_cast<char*>(&initial_)) + sizeof(multiplier_));
+}
+
+ExponentialBackoff::~ExponentialBackoff() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.ExponentialBackoff)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void ExponentialBackoff::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  if (this != internal_default_instance()) delete initial_;
+  if (this != internal_default_instance()) delete max_;
+}
+
+void ExponentialBackoff::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void ExponentialBackoff::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.ExponentialBackoff)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  if (GetArenaForAllocation() == nullptr && initial_ != nullptr) {
+    delete initial_;
+  }
+  initial_ = nullptr;
+  if (GetArenaForAllocation() == nullptr && max_ != nullptr) {
+    delete max_;
+  }
+  max_ = nullptr;
+  multiplier_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* ExponentialBackoff::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .google.protobuf.Duration initial = 1 [json_name = "initial"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          ptr = ctx->ParseMessage(_internal_mutable_initial(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // .google.protobuf.Duration max = 2 [json_name = "max"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          ptr = ctx->ParseMessage(_internal_mutable_max(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // float multiplier = 3 [json_name = "multiplier"];
+      case 3:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
+          multiplier_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
+          ptr += sizeof(float);
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* ExponentialBackoff::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.ExponentialBackoff)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .google.protobuf.Duration initial = 1 [json_name = "initial"];
+  if (this->_internal_has_initial()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(1, _Internal::initial(this),
+        _Internal::initial(this).GetCachedSize(), target, stream);
+  }
+
+  // .google.protobuf.Duration max = 2 [json_name = "max"];
+  if (this->_internal_has_max()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(2, _Internal::max(this),
+        _Internal::max(this).GetCachedSize(), target, stream);
+  }
+
+  // float multiplier = 3 [json_name = "multiplier"];
+  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
+  float tmp_multiplier = this->_internal_multiplier();
+  uint32_t raw_multiplier;
+  memcpy(&raw_multiplier, &tmp_multiplier, sizeof(tmp_multiplier));
+  if (raw_multiplier != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_multiplier(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.ExponentialBackoff)
+  return target;
+}
+
+size_t ExponentialBackoff::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.ExponentialBackoff)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // .google.protobuf.Duration initial = 1 [json_name = "initial"];
+  if (this->_internal_has_initial()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *initial_);
+  }
+
+  // .google.protobuf.Duration max = 2 [json_name = "max"];
+  if (this->_internal_has_max()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *max_);
+  }
+
+  // float multiplier = 3 [json_name = "multiplier"];
+  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
+  float tmp_multiplier = this->_internal_multiplier();
+  uint32_t raw_multiplier;
+  memcpy(&raw_multiplier, &tmp_multiplier, sizeof(tmp_multiplier));
+  if (raw_multiplier != 0) {
+    total_size += 1 + 4;
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExponentialBackoff::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    ExponentialBackoff::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExponentialBackoff::GetClassData() const { return &_class_data_; }
+
+void ExponentialBackoff::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<ExponentialBackoff *>(to)->MergeFrom(
+      static_cast<const ExponentialBackoff &>(from));
+}
+
+
+void ExponentialBackoff::MergeFrom(const ExponentialBackoff& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.ExponentialBackoff)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from._internal_has_initial()) {
+    _internal_mutable_initial()->::PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_initial());
+  }
+  if (from._internal_has_max()) {
+    _internal_mutable_max()->::PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_max());
+  }
+  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
+  float tmp_multiplier = from._internal_multiplier();
+  uint32_t raw_multiplier;
+  memcpy(&raw_multiplier, &tmp_multiplier, sizeof(tmp_multiplier));
+  if (raw_multiplier != 0) {
+    _internal_set_multiplier(from._internal_multiplier());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void ExponentialBackoff::CopyFrom(const ExponentialBackoff& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.ExponentialBackoff)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ExponentialBackoff::IsInitialized() const {
+  return true;
+}
+
+void ExponentialBackoff::InternalSwap(ExponentialBackoff* other) {
+  using std::swap;
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(ExponentialBackoff, multiplier_)
+      + sizeof(ExponentialBackoff::multiplier_)
+      - PROTOBUF_FIELD_OFFSET(ExponentialBackoff, initial_)>(
+          reinterpret_cast<char*>(&initial_),
+          reinterpret_cast<char*>(&other->initial_));
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata ExponentialBackoff::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[2]);
+}
+
+// ===================================================================
+
+class CustomizedBackoff::_Internal {
+ public:
+};
+
+void CustomizedBackoff::clear_next() {
+  next_.Clear();
+}
+CustomizedBackoff::CustomizedBackoff(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
+  next_(arena) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.CustomizedBackoff)
+}
+CustomizedBackoff::CustomizedBackoff(const CustomizedBackoff& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message(),
+      next_(from.next_) {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.CustomizedBackoff)
+}
+
+inline void CustomizedBackoff::SharedCtor() {
+}
+
+CustomizedBackoff::~CustomizedBackoff() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.CustomizedBackoff)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void CustomizedBackoff::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+}
+
+void CustomizedBackoff::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void CustomizedBackoff::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.CustomizedBackoff)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  next_.Clear();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* CustomizedBackoff::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // repeated .google.protobuf.Duration next = 1 [json_name = "next"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          ptr -= 1;
+          do {
+            ptr += 1;
+            ptr = ctx->ParseMessage(_internal_add_next(), ptr);
+            CHK_(ptr);
+            if (!ctx->DataAvailable(ptr)) break;
+          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* CustomizedBackoff::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.CustomizedBackoff)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // repeated .google.protobuf.Duration next = 1 [json_name = "next"];
+  for (unsigned i = 0,
+      n = static_cast<unsigned>(this->_internal_next_size()); i < n; i++) {
+    const auto& repfield = this->_internal_next(i);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.CustomizedBackoff)
+  return target;
+}
+
+size_t CustomizedBackoff::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.CustomizedBackoff)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // repeated .google.protobuf.Duration next = 1 [json_name = "next"];
+  total_size += 1UL * this->_internal_next_size();
+  for (const auto& msg : this->next_) {
+    total_size +=
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CustomizedBackoff::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    CustomizedBackoff::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CustomizedBackoff::GetClassData() const { return &_class_data_; }
+
+void CustomizedBackoff::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<CustomizedBackoff *>(to)->MergeFrom(
+      static_cast<const CustomizedBackoff &>(from));
+}
+
+
+void CustomizedBackoff::MergeFrom(const CustomizedBackoff& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.CustomizedBackoff)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  next_.MergeFrom(from.next_);
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void CustomizedBackoff::CopyFrom(const CustomizedBackoff& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.CustomizedBackoff)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool CustomizedBackoff::IsInitialized() const {
+  return true;
+}
+
+void CustomizedBackoff::InternalSwap(CustomizedBackoff* other) {
+  using std::swap;
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  next_.InternalSwap(&other->next_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata CustomizedBackoff::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[3]);
+}
+
+// ===================================================================
+
+class Resource::_Internal {
+ public:
+};
+
+Resource::Resource(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.Resource)
+}
+Resource::Resource(const Resource& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  resource_namespace_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    resource_namespace_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_resource_namespace().empty()) {
+    resource_namespace_.Set(from._internal_resource_namespace(), 
+      GetArenaForAllocation());
+  }
+  name_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    name_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_name().empty()) {
+    name_.Set(from._internal_name(), 
+      GetArenaForAllocation());
+  }
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.Resource)
+}
+
+inline void Resource::SharedCtor() {
+resource_namespace_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  resource_namespace_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+name_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  name_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+}
+
+Resource::~Resource() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.Resource)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void Resource::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  resource_namespace_.Destroy();
+  name_.Destroy();
+}
+
+void Resource::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void Resource::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.Resource)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  resource_namespace_.ClearToEmpty();
+  name_.ClearToEmpty();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* Resource::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // string resource_namespace = 1 [json_name = "resourceNamespace"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          auto str = _internal_mutable_resource_namespace();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.Resource.resource_namespace"));
+        } else
+          goto handle_unusual;
+        continue;
+      // string name = 2 [json_name = "name"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          auto str = _internal_mutable_name();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.Resource.name"));
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* Resource::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.Resource)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string resource_namespace = 1 [json_name = "resourceNamespace"];
+  if (!this->_internal_resource_namespace().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_resource_namespace().data(), static_cast<int>(this->_internal_resource_namespace().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.Resource.resource_namespace");
+    target = stream->WriteStringMaybeAliased(
+        1, this->_internal_resource_namespace(), target);
+  }
+
+  // string name = 2 [json_name = "name"];
+  if (!this->_internal_name().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.Resource.name");
+    target = stream->WriteStringMaybeAliased(
+        2, this->_internal_name(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.Resource)
+  return target;
+}
+
+size_t Resource::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.Resource)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string resource_namespace = 1 [json_name = "resourceNamespace"];
+  if (!this->_internal_resource_namespace().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_resource_namespace());
+  }
+
+  // string name = 2 [json_name = "name"];
+  if (!this->_internal_name().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_name());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Resource::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    Resource::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Resource::GetClassData() const { return &_class_data_; }
+
+void Resource::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<Resource *>(to)->MergeFrom(
+      static_cast<const Resource &>(from));
+}
+
+
+void Resource::MergeFrom(const Resource& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.Resource)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_resource_namespace().empty()) {
+    _internal_set_resource_namespace(from._internal_resource_namespace());
+  }
+  if (!from._internal_name().empty()) {
+    _internal_set_name(from._internal_name());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void Resource::CopyFrom(const Resource& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.Resource)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Resource::IsInitialized() const {
+  return true;
+}
+
+void Resource::InternalSwap(Resource* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &resource_namespace_, lhs_arena,
+      &other->resource_namespace_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &name_, lhs_arena,
+      &other->name_, rhs_arena
+  );
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata Resource::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[4]);
+}
+
+// ===================================================================
+
+class SubscriptionEntry::_Internal {
+ public:
+  static const ::apache::rocketmq::v2::Resource& topic(const SubscriptionEntry* msg);
+  static const ::apache::rocketmq::v2::FilterExpression& expression(const SubscriptionEntry* msg);
+};
+
+const ::apache::rocketmq::v2::Resource&
+SubscriptionEntry::_Internal::topic(const SubscriptionEntry* msg) {
+  return *msg->topic_;
+}
+const ::apache::rocketmq::v2::FilterExpression&
+SubscriptionEntry::_Internal::expression(const SubscriptionEntry* msg) {
+  return *msg->expression_;
+}
+SubscriptionEntry::SubscriptionEntry(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.SubscriptionEntry)
+}
+SubscriptionEntry::SubscriptionEntry(const SubscriptionEntry& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  if (from._internal_has_topic()) {
+    topic_ = new ::apache::rocketmq::v2::Resource(*from.topic_);
+  } else {
+    topic_ = nullptr;
+  }
+  if (from._internal_has_expression()) {
+    expression_ = new ::apache::rocketmq::v2::FilterExpression(*from.expression_);
+  } else {
+    expression_ = nullptr;
+  }
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.SubscriptionEntry)
+}
+
+inline void SubscriptionEntry::SharedCtor() {
+::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
+    reinterpret_cast<char*>(&topic_) - reinterpret_cast<char*>(this)),
+    0, static_cast<size_t>(reinterpret_cast<char*>(&expression_) -
+    reinterpret_cast<char*>(&topic_)) + sizeof(expression_));
+}
+
+SubscriptionEntry::~SubscriptionEntry() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.SubscriptionEntry)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void SubscriptionEntry::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  if (this != internal_default_instance()) delete topic_;
+  if (this != internal_default_instance()) delete expression_;
+}
+
+void SubscriptionEntry::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void SubscriptionEntry::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.SubscriptionEntry)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  if (GetArenaForAllocation() == nullptr && topic_ != nullptr) {
+    delete topic_;
+  }
+  topic_ = nullptr;
+  if (GetArenaForAllocation() == nullptr && expression_ != nullptr) {
+    delete expression_;
+  }
+  expression_ = nullptr;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* SubscriptionEntry::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          ptr = ctx->ParseMessage(_internal_mutable_topic(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // .apache.rocketmq.v2.FilterExpression expression = 2 [json_name = "expression"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          ptr = ctx->ParseMessage(_internal_mutable_expression(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* SubscriptionEntry::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.SubscriptionEntry)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+  if (this->_internal_has_topic()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(1, _Internal::topic(this),
+        _Internal::topic(this).GetCachedSize(), target, stream);
+  }
+
+  // .apache.rocketmq.v2.FilterExpression expression = 2 [json_name = "expression"];
+  if (this->_internal_has_expression()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(2, _Internal::expression(this),
+        _Internal::expression(this).GetCachedSize(), target, stream);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.SubscriptionEntry)
+  return target;
+}
+
+size_t SubscriptionEntry::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.SubscriptionEntry)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+  if (this->_internal_has_topic()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *topic_);
+  }
+
+  // .apache.rocketmq.v2.FilterExpression expression = 2 [json_name = "expression"];
+  if (this->_internal_has_expression()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *expression_);
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubscriptionEntry::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    SubscriptionEntry::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubscriptionEntry::GetClassData() const { return &_class_data_; }
+
+void SubscriptionEntry::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<SubscriptionEntry *>(to)->MergeFrom(
+      static_cast<const SubscriptionEntry &>(from));
+}
+
+
+void SubscriptionEntry::MergeFrom(const SubscriptionEntry& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.SubscriptionEntry)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from._internal_has_topic()) {
+    _internal_mutable_topic()->::apache::rocketmq::v2::Resource::MergeFrom(from._internal_topic());
+  }
+  if (from._internal_has_expression()) {
+    _internal_mutable_expression()->::apache::rocketmq::v2::FilterExpression::MergeFrom(from._internal_expression());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void SubscriptionEntry::CopyFrom(const SubscriptionEntry& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.SubscriptionEntry)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool SubscriptionEntry::IsInitialized() const {
+  return true;
+}
+
+void SubscriptionEntry::InternalSwap(SubscriptionEntry* other) {
+  using std::swap;
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(SubscriptionEntry, expression_)
+      + sizeof(SubscriptionEntry::expression_)
+      - PROTOBUF_FIELD_OFFSET(SubscriptionEntry, topic_)>(
+          reinterpret_cast<char*>(&topic_),
+          reinterpret_cast<char*>(&other->topic_));
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata SubscriptionEntry::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[5]);
+}
+
+// ===================================================================
+
+class Address::_Internal {
+ public:
+};
+
+Address::Address(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.Address)
+}
+Address::Address(const Address& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  host_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    host_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_host().empty()) {
+    host_.Set(from._internal_host(), 
+      GetArenaForAllocation());
+  }
+  port_ = from.port_;
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.Address)
+}
+
+inline void Address::SharedCtor() {
+host_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  host_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+port_ = 0;
+}
+
+Address::~Address() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.Address)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void Address::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  host_.Destroy();
+}
+
+void Address::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void Address::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.Address)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  host_.ClearToEmpty();
+  port_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* Address::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // string host = 1 [json_name = "host"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          auto str = _internal_mutable_host();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.Address.host"));
+        } else
+          goto handle_unusual;
+        continue;
+      // int32 port = 2 [json_name = "port"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
+          port_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* Address::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.Address)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string host = 1 [json_name = "host"];
+  if (!this->_internal_host().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_host().data(), static_cast<int>(this->_internal_host().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.Address.host");
+    target = stream->WriteStringMaybeAliased(
+        1, this->_internal_host(), target);
+  }
+
+  // int32 port = 2 [json_name = "port"];
+  if (this->_internal_port() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_port(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.Address)
+  return target;
+}
+
+size_t Address::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.Address)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string host = 1 [json_name = "host"];
+  if (!this->_internal_host().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_host());
+  }
+
+  // int32 port = 2 [json_name = "port"];
+  if (this->_internal_port() != 0) {
+    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_port());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Address::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    Address::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Address::GetClassData() const { return &_class_data_; }
+
+void Address::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<Address *>(to)->MergeFrom(
+      static_cast<const Address &>(from));
+}
+
+
+void Address::MergeFrom(const Address& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.Address)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_host().empty()) {
+    _internal_set_host(from._internal_host());
+  }
+  if (from._internal_port() != 0) {
+    _internal_set_port(from._internal_port());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void Address::CopyFrom(const Address& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.Address)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Address::IsInitialized() const {
+  return true;
+}
+
+void Address::InternalSwap(Address* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &host_, lhs_arena,
+      &other->host_, rhs_arena
+  );
+  swap(port_, other->port_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata Address::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[6]);
+}
+
+// ===================================================================
+
+class Endpoints::_Internal {
+ public:
+};
+
+Endpoints::Endpoints(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
+  addresses_(arena) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.Endpoints)
+}
+Endpoints::Endpoints(const Endpoints& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message(),
+      addresses_(from.addresses_) {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  scheme_ = from.scheme_;
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.Endpoints)
+}
+
+inline void Endpoints::SharedCtor() {
+scheme_ = 0;
+}
+
+Endpoints::~Endpoints() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.Endpoints)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void Endpoints::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+}
+
+void Endpoints::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void Endpoints::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.Endpoints)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  addresses_.Clear();
+  scheme_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* Endpoints::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .apache.rocketmq.v2.AddressScheme scheme = 1 [json_name = "scheme"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
+          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+          _internal_set_scheme(static_cast<::apache::rocketmq::v2::AddressScheme>(val));
+        } else
+          goto handle_unusual;
+        continue;
+      // repeated .apache.rocketmq.v2.Address addresses = 2 [json_name = "addresses"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          ptr -= 1;
+          do {
+            ptr += 1;
+            ptr = ctx->ParseMessage(_internal_add_addresses(), ptr);
+            CHK_(ptr);
+            if (!ctx->DataAvailable(ptr)) break;
+          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* Endpoints::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.Endpoints)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.AddressScheme scheme = 1 [json_name = "scheme"];
+  if (this->_internal_scheme() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteEnumToArray(
+      1, this->_internal_scheme(), target);
+  }
+
+  // repeated .apache.rocketmq.v2.Address addresses = 2 [json_name = "addresses"];
+  for (unsigned i = 0,
+      n = static_cast<unsigned>(this->_internal_addresses_size()); i < n; i++) {
+    const auto& repfield = this->_internal_addresses(i);
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.Endpoints)
+  return target;
+}
+
+size_t Endpoints::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.Endpoints)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // repeated .apache.rocketmq.v2.Address addresses = 2 [json_name = "addresses"];
+  total_size += 1UL * this->_internal_addresses_size();
+  for (const auto& msg : this->addresses_) {
+    total_size +=
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
+  }
+
+  // .apache.rocketmq.v2.AddressScheme scheme = 1 [json_name = "scheme"];
+  if (this->_internal_scheme() != 0) {
+    total_size += 1 +
+      ::_pbi::WireFormatLite::EnumSize(this->_internal_scheme());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Endpoints::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    Endpoints::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Endpoints::GetClassData() const { return &_class_data_; }
+
+void Endpoints::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<Endpoints *>(to)->MergeFrom(
+      static_cast<const Endpoints &>(from));
+}
+
+
+void Endpoints::MergeFrom(const Endpoints& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.Endpoints)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  addresses_.MergeFrom(from.addresses_);
+  if (from._internal_scheme() != 0) {
+    _internal_set_scheme(from._internal_scheme());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void Endpoints::CopyFrom(const Endpoints& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.Endpoints)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Endpoints::IsInitialized() const {
+  return true;
+}
+
+void Endpoints::InternalSwap(Endpoints* other) {
+  using std::swap;
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  addresses_.InternalSwap(&other->addresses_);
+  swap(scheme_, other->scheme_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata Endpoints::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[7]);
+}
+
+// ===================================================================
+
+class Broker::_Internal {
+ public:
+  static const ::apache::rocketmq::v2::Endpoints& endpoints(const Broker* msg);
+};
+
+const ::apache::rocketmq::v2::Endpoints&
+Broker::_Internal::endpoints(const Broker* msg) {
+  return *msg->endpoints_;
+}
+Broker::Broker(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.Broker)
+}
+Broker::Broker(const Broker& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  name_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    name_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_name().empty()) {
+    name_.Set(from._internal_name(), 
+      GetArenaForAllocation());
+  }
+  if (from._internal_has_endpoints()) {
+    endpoints_ = new ::apache::rocketmq::v2::Endpoints(*from.endpoints_);
+  } else {
+    endpoints_ = nullptr;
+  }
+  id_ = from.id_;
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.Broker)
+}
+
+inline void Broker::SharedCtor() {
+name_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  name_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
+    reinterpret_cast<char*>(&endpoints_) - reinterpret_cast<char*>(this)),
+    0, static_cast<size_t>(reinterpret_cast<char*>(&id_) -
+    reinterpret_cast<char*>(&endpoints_)) + sizeof(id_));
+}
+
+Broker::~Broker() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.Broker)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void Broker::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  name_.Destroy();
+  if (this != internal_default_instance()) delete endpoints_;
+}
+
+void Broker::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void Broker::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.Broker)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  name_.ClearToEmpty();
+  if (GetArenaForAllocation() == nullptr && endpoints_ != nullptr) {
+    delete endpoints_;
+  }
+  endpoints_ = nullptr;
+  id_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* Broker::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // string name = 1 [json_name = "name"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          auto str = _internal_mutable_name();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.Broker.name"));
+        } else
+          goto handle_unusual;
+        continue;
+      // int32 id = 2 [json_name = "id"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
+          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // .apache.rocketmq.v2.Endpoints endpoints = 3 [json_name = "endpoints"];
+      case 3:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
+          ptr = ctx->ParseMessage(_internal_mutable_endpoints(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* Broker::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.Broker)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string name = 1 [json_name = "name"];
+  if (!this->_internal_name().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.Broker.name");
+    target = stream->WriteStringMaybeAliased(
+        1, this->_internal_name(), target);
+  }
+
+  // int32 id = 2 [json_name = "id"];
+  if (this->_internal_id() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_id(), target);
+  }
+
+  // .apache.rocketmq.v2.Endpoints endpoints = 3 [json_name = "endpoints"];
+  if (this->_internal_has_endpoints()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(3, _Internal::endpoints(this),
+        _Internal::endpoints(this).GetCachedSize(), target, stream);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.Broker)
+  return target;
+}
+
+size_t Broker::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.Broker)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string name = 1 [json_name = "name"];
+  if (!this->_internal_name().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_name());
+  }
+
+  // .apache.rocketmq.v2.Endpoints endpoints = 3 [json_name = "endpoints"];
+  if (this->_internal_has_endpoints()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *endpoints_);
+  }
+
+  // int32 id = 2 [json_name = "id"];
+  if (this->_internal_id() != 0) {
+    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_id());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Broker::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    Broker::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Broker::GetClassData() const { return &_class_data_; }
+
+void Broker::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<Broker *>(to)->MergeFrom(
+      static_cast<const Broker &>(from));
+}
+
+
+void Broker::MergeFrom(const Broker& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.Broker)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_name().empty()) {
+    _internal_set_name(from._internal_name());
+  }
+  if (from._internal_has_endpoints()) {
+    _internal_mutable_endpoints()->::apache::rocketmq::v2::Endpoints::MergeFrom(from._internal_endpoints());
+  }
+  if (from._internal_id() != 0) {
+    _internal_set_id(from._internal_id());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void Broker::CopyFrom(const Broker& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.Broker)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Broker::IsInitialized() const {
+  return true;
+}
+
+void Broker::InternalSwap(Broker* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &name_, lhs_arena,
+      &other->name_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(Broker, id_)
+      + sizeof(Broker::id_)
+      - PROTOBUF_FIELD_OFFSET(Broker, endpoints_)>(
+          reinterpret_cast<char*>(&endpoints_),
+          reinterpret_cast<char*>(&other->endpoints_));
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata Broker::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[8]);
+}
+
+// ===================================================================
+
+class MessageQueue::_Internal {
+ public:
+  static const ::apache::rocketmq::v2::Resource& topic(const MessageQueue* msg);
+  static const ::apache::rocketmq::v2::Broker& broker(const MessageQueue* msg);
+};
+
+const ::apache::rocketmq::v2::Resource&
+MessageQueue::_Internal::topic(const MessageQueue* msg) {
+  return *msg->topic_;
+}
+const ::apache::rocketmq::v2::Broker&
+MessageQueue::_Internal::broker(const MessageQueue* msg) {
+  return *msg->broker_;
+}
+MessageQueue::MessageQueue(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
+  accept_message_types_(arena) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.MessageQueue)
+}
+MessageQueue::MessageQueue(const MessageQueue& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message(),
+      accept_message_types_(from.accept_message_types_) {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  if (from._internal_has_topic()) {
+    topic_ = new ::apache::rocketmq::v2::Resource(*from.topic_);
+  } else {
+    topic_ = nullptr;
+  }
+  if (from._internal_has_broker()) {
+    broker_ = new ::apache::rocketmq::v2::Broker(*from.broker_);
+  } else {
+    broker_ = nullptr;
+  }
+  ::memcpy(&id_, &from.id_,
+    static_cast<size_t>(reinterpret_cast<char*>(&permission_) -
+    reinterpret_cast<char*>(&id_)) + sizeof(permission_));
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.MessageQueue)
+}
+
+inline void MessageQueue::SharedCtor() {
+::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
+    reinterpret_cast<char*>(&topic_) - reinterpret_cast<char*>(this)),
+    0, static_cast<size_t>(reinterpret_cast<char*>(&permission_) -
+    reinterpret_cast<char*>(&topic_)) + sizeof(permission_));
+}
+
+MessageQueue::~MessageQueue() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.MessageQueue)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void MessageQueue::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  if (this != internal_default_instance()) delete topic_;
+  if (this != internal_default_instance()) delete broker_;
+}
+
+void MessageQueue::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void MessageQueue::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.MessageQueue)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  accept_message_types_.Clear();
+  if (GetArenaForAllocation() == nullptr && topic_ != nullptr) {
+    delete topic_;
+  }
+  topic_ = nullptr;
+  if (GetArenaForAllocation() == nullptr && broker_ != nullptr) {
+    delete broker_;
+  }
+  broker_ = nullptr;
+  ::memset(&id_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&permission_) -
+      reinterpret_cast<char*>(&id_)) + sizeof(permission_));
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* MessageQueue::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          ptr = ctx->ParseMessage(_internal_mutable_topic(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // int32 id = 2 [json_name = "id"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
+          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // .apache.rocketmq.v2.Permission permission = 3 [json_name = "permission"];
+      case 3:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
+          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+          _internal_set_permission(static_cast<::apache::rocketmq::v2::Permission>(val));
+        } else
+          goto handle_unusual;
+        continue;
+      // .apache.rocketmq.v2.Broker broker = 4 [json_name = "broker"];
+      case 4:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
+          ptr = ctx->ParseMessage(_internal_mutable_broker(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // repeated .apache.rocketmq.v2.MessageType accept_message_types = 5 [json_name = "acceptMessageTypes"];
+      case 5:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_accept_message_types(), ptr, ctx);
+          CHK_(ptr);
+        } else if (static_cast<uint8_t>(tag) == 40) {
+          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+          _internal_add_accept_message_types(static_cast<::apache::rocketmq::v2::MessageType>(val));
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* MessageQueue::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.MessageQueue)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+  if (this->_internal_has_topic()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(1, _Internal::topic(this),
+        _Internal::topic(this).GetCachedSize(), target, stream);
+  }
+
+  // int32 id = 2 [json_name = "id"];
+  if (this->_internal_id() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_id(), target);
+  }
+
+  // .apache.rocketmq.v2.Permission permission = 3 [json_name = "permission"];
+  if (this->_internal_permission() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteEnumToArray(
+      3, this->_internal_permission(), target);
+  }
+
+  // .apache.rocketmq.v2.Broker broker = 4 [json_name = "broker"];
+  if (this->_internal_has_broker()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(4, _Internal::broker(this),
+        _Internal::broker(this).GetCachedSize(), target, stream);
+  }
+
+  // repeated .apache.rocketmq.v2.MessageType accept_message_types = 5 [json_name = "acceptMessageTypes"];
+  {
+    int byte_size = _accept_message_types_cached_byte_size_.load(std::memory_order_relaxed);
+    if (byte_size > 0) {
+      target = stream->WriteEnumPacked(
+          5, accept_message_types_, byte_size, target);
+    }
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.MessageQueue)
+  return target;
+}
+
+size_t MessageQueue::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.MessageQueue)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // repeated .apache.rocketmq.v2.MessageType accept_message_types = 5 [json_name = "acceptMessageTypes"];
+  {
+    size_t data_size = 0;
+    unsigned int count = static_cast<unsigned int>(this->_internal_accept_message_types_size());for (unsigned int i = 0; i < count; i++) {
+      data_size += ::_pbi::WireFormatLite::EnumSize(
+        this->_internal_accept_message_types(static_cast<int>(i)));
+    }
+    if (data_size > 0) {
+      total_size += 1 +
+        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
+    }
+    int cached_size = ::_pbi::ToCachedSize(data_size);
+    _accept_message_types_cached_byte_size_.store(cached_size,
+                                    std::memory_order_relaxed);
+    total_size += data_size;
+  }
+
+  // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+  if (this->_internal_has_topic()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *topic_);
+  }
+
+  // .apache.rocketmq.v2.Broker broker = 4 [json_name = "broker"];
+  if (this->_internal_has_broker()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *broker_);
+  }
+
+  // int32 id = 2 [json_name = "id"];
+  if (this->_internal_id() != 0) {
+    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_id());
+  }
+
+  // .apache.rocketmq.v2.Permission permission = 3 [json_name = "permission"];
+  if (this->_internal_permission() != 0) {
+    total_size += 1 +
+      ::_pbi::WireFormatLite::EnumSize(this->_internal_permission());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MessageQueue::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    MessageQueue::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MessageQueue::GetClassData() const { return &_class_data_; }
+
+void MessageQueue::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<MessageQueue *>(to)->MergeFrom(
+      static_cast<const MessageQueue &>(from));
+}
+
+
+void MessageQueue::MergeFrom(const MessageQueue& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.MessageQueue)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  accept_message_types_.MergeFrom(from.accept_message_types_);
+  if (from._internal_has_topic()) {
+    _internal_mutable_topic()->::apache::rocketmq::v2::Resource::MergeFrom(from._internal_topic());
+  }
+  if (from._internal_has_broker()) {
+    _internal_mutable_broker()->::apache::rocketmq::v2::Broker::MergeFrom(from._internal_broker());
+  }
+  if (from._internal_id() != 0) {
+    _internal_set_id(from._internal_id());
+  }
+  if (from._internal_permission() != 0) {
+    _internal_set_permission(from._internal_permission());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void MessageQueue::CopyFrom(const MessageQueue& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.MessageQueue)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool MessageQueue::IsInitialized() const {
+  return true;
+}
+
+void MessageQueue::InternalSwap(MessageQueue* other) {
+  using std::swap;
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  accept_message_types_.InternalSwap(&other->accept_message_types_);
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(MessageQueue, permission_)
+      + sizeof(MessageQueue::permission_)
+      - PROTOBUF_FIELD_OFFSET(MessageQueue, topic_)>(
+          reinterpret_cast<char*>(&topic_),
+          reinterpret_cast<char*>(&other->topic_));
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata MessageQueue::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[9]);
+}
+
+// ===================================================================
+
+class Digest::_Internal {
+ public:
+};
+
+Digest::Digest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.Digest)
+}
+Digest::Digest(const Digest& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  checksum_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    checksum_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_checksum().empty()) {
+    checksum_.Set(from._internal_checksum(), 
+      GetArenaForAllocation());
+  }
+  type_ = from.type_;
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.Digest)
+}
+
+inline void Digest::SharedCtor() {
+checksum_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  checksum_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+type_ = 0;
+}
+
+Digest::~Digest() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.Digest)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void Digest::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  checksum_.Destroy();
+}
+
+void Digest::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void Digest::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.Digest)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  checksum_.ClearToEmpty();
+  type_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* Digest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .apache.rocketmq.v2.DigestType type = 1 [json_name = "type"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
+          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+          _internal_set_type(static_cast<::apache::rocketmq::v2::DigestType>(val));
+        } else
+          goto handle_unusual;
+        continue;
+      // string checksum = 2 [json_name = "checksum"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          auto str = _internal_mutable_checksum();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.Digest.checksum"));
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* Digest::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.Digest)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.DigestType type = 1 [json_name = "type"];
+  if (this->_internal_type() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteEnumToArray(
+      1, this->_internal_type(), target);
+  }
+
+  // string checksum = 2 [json_name = "checksum"];
+  if (!this->_internal_checksum().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_checksum().data(), static_cast<int>(this->_internal_checksum().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.Digest.checksum");
+    target = stream->WriteStringMaybeAliased(
+        2, this->_internal_checksum(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.Digest)
+  return target;
+}
+
+size_t Digest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.Digest)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string checksum = 2 [json_name = "checksum"];
+  if (!this->_internal_checksum().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_checksum());
+  }
+
+  // .apache.rocketmq.v2.DigestType type = 1 [json_name = "type"];
+  if (this->_internal_type() != 0) {
+    total_size += 1 +
+      ::_pbi::WireFormatLite::EnumSize(this->_internal_type());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Digest::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    Digest::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Digest::GetClassData() const { return &_class_data_; }
+
+void Digest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<Digest *>(to)->MergeFrom(
+      static_cast<const Digest &>(from));
+}
+
+
+void Digest::MergeFrom(const Digest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.Digest)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_checksum().empty()) {
+    _internal_set_checksum(from._internal_checksum());
+  }
+  if (from._internal_type() != 0) {
+    _internal_set_type(from._internal_type());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void Digest::CopyFrom(const Digest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.Digest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Digest::IsInitialized() const {
+  return true;
+}
+
+void Digest::InternalSwap(Digest* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &checksum_, lhs_arena,
+      &other->checksum_, rhs_arena
+  );
+  swap(type_, other->type_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata Digest::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[10]);
+}
+
+// ===================================================================
+
+class SystemProperties::_Internal {
+ public:
+  using HasBits = decltype(std::declval<SystemProperties>()._has_bits_);
+  static void set_has_tag(HasBits* has_bits) {
+    (*has_bits)[0] |= 1u;
+  }
+  static const ::apache::rocketmq::v2::Digest& body_digest(const SystemProperties* msg);
+  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& born_timestamp(const SystemProperties* msg);
+  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& store_timestamp(const SystemProperties* msg);
+  static void set_has_store_timestamp(HasBits* has_bits) {
+    (*has_bits)[0] |= 16u;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Timestamp& delivery_timestamp(const SystemProperties* msg);
+  static void set_has_delivery_timestamp(HasBits* has_bits) {
+    (*has_bits)[0] |= 32u;
+  }
+  static void set_has_receipt_handle(HasBits* has_bits) {
+    (*has_bits)[0] |= 2u;
+  }
+  static void set_has_queue_offset(HasBits* has_bits) {
+    (*has_bits)[0] |= 256u;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Duration& invisible_duration(const SystemProperties* msg);
+  static void set_has_invisible_duration(HasBits* has_bits) {
+    (*has_bits)[0] |= 64u;
+  }
+  static void set_has_delivery_attempt(HasBits* has_bits) {
+    (*has_bits)[0] |= 512u;
+  }
+  static void set_has_message_group(HasBits* has_bits) {
+    (*has_bits)[0] |= 4u;
+  }
+  static void set_has_trace_context(HasBits* has_bits) {
+    (*has_bits)[0] |= 8u;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Duration& orphaned_transaction_recovery_duration(const SystemProperties* msg);
+  static void set_has_orphaned_transaction_recovery_duration(HasBits* has_bits) {
+    (*has_bits)[0] |= 128u;
+  }
+};
+
+const ::apache::rocketmq::v2::Digest&
+SystemProperties::_Internal::body_digest(const SystemProperties* msg) {
+  return *msg->body_digest_;
+}
+const ::PROTOBUF_NAMESPACE_ID::Timestamp&
+SystemProperties::_Internal::born_timestamp(const SystemProperties* msg) {
+  return *msg->born_timestamp_;
+}
+const ::PROTOBUF_NAMESPACE_ID::Timestamp&
+SystemProperties::_Internal::store_timestamp(const SystemProperties* msg) {
+  return *msg->store_timestamp_;
+}
+const ::PROTOBUF_NAMESPACE_ID::Timestamp&
+SystemProperties::_Internal::delivery_timestamp(const SystemProperties* msg) {
+  return *msg->delivery_timestamp_;
+}
+const ::PROTOBUF_NAMESPACE_ID::Duration&
+SystemProperties::_Internal::invisible_duration(const SystemProperties* msg) {
+  return *msg->invisible_duration_;
+}
+const ::PROTOBUF_NAMESPACE_ID::Duration&
+SystemProperties::_Internal::orphaned_transaction_recovery_duration(const SystemProperties* msg) {
+  return *msg->orphaned_transaction_recovery_duration_;
+}
+void SystemProperties::clear_born_timestamp() {
+  if (GetArenaForAllocation() == nullptr && born_timestamp_ != nullptr) {
+    delete born_timestamp_;
+  }
+  born_timestamp_ = nullptr;
+}
+void SystemProperties::clear_store_timestamp() {
+  if (store_timestamp_ != nullptr) store_timestamp_->Clear();
+  _has_bits_[0] &= ~0x00000010u;
+}
+void SystemProperties::clear_delivery_timestamp() {
+  if (delivery_timestamp_ != nullptr) delivery_timestamp_->Clear();
+  _has_bits_[0] &= ~0x00000020u;
+}
+void SystemProperties::clear_invisible_duration() {
+  if (invisible_duration_ != nullptr) invisible_duration_->Clear();
+  _has_bits_[0] &= ~0x00000040u;
+}
+void SystemProperties::clear_orphaned_transaction_recovery_duration() {
+  if (orphaned_transaction_recovery_duration_ != nullptr) orphaned_transaction_recovery_duration_->Clear();
+  _has_bits_[0] &= ~0x00000080u;
+}
+SystemProperties::SystemProperties(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
+  keys_(arena) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.SystemProperties)
+}
+SystemProperties::SystemProperties(const SystemProperties& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message(),
+      _has_bits_(from._has_bits_),
+      keys_(from.keys_) {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  tag_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    tag_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (from._internal_has_tag()) {
+    tag_.Set(from._internal_tag(), 
+      GetArenaForAllocation());
+  }
+  message_id_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    message_id_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_message_id().empty()) {
+    message_id_.Set(from._internal_message_id(), 
+      GetArenaForAllocation());
+  }
+  born_host_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    born_host_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_born_host().empty()) {
+    born_host_.Set(from._internal_born_host(), 
+      GetArenaForAllocation());
+  }
+  store_host_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    store_host_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_store_host().empty()) {
+    store_host_.Set(from._internal_store_host(), 
+      GetArenaForAllocation());
+  }
+  receipt_handle_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    receipt_handle_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (from._internal_has_receipt_handle()) {
+    receipt_handle_.Set(from._internal_receipt_handle(), 
+      GetArenaForAllocation());
+  }
+  message_group_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    message_group_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (from._internal_has_message_group()) {
+    message_group_.Set(from._internal_message_group(), 
+      GetArenaForAllocation());
+  }
+  trace_context_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    trace_context_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (from._internal_has_trace_context()) {
+    trace_context_.Set(from._internal_trace_context(), 
+      GetArenaForAllocation());
+  }
+  if (from._internal_has_body_digest()) {
+    body_digest_ = new ::apache::rocketmq::v2::Digest(*from.body_digest_);
+  } else {
+    body_digest_ = nullptr;
+  }
+  if (from._internal_has_born_timestamp()) {
+    born_timestamp_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.born_timestamp_);
+  } else {
+    born_timestamp_ = nullptr;
+  }
+  if (from._internal_has_store_timestamp()) {
+    store_timestamp_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.store_timestamp_);
+  } else {
+    store_timestamp_ = nullptr;
+  }
+  if (from._internal_has_delivery_timestamp()) {
+    delivery_timestamp_ = new ::PROTOBUF_NAMESPACE_ID::Timestamp(*from.delivery_timestamp_);
+  } else {
+    delivery_timestamp_ = nullptr;
+  }
+  if (from._internal_has_invisible_duration()) {
+    invisible_duration_ = new ::PROTOBUF_NAMESPACE_ID::Duration(*from.invisible_duration_);
+  } else {
+    invisible_duration_ = nullptr;
+  }
+  if (from._internal_has_orphaned_transaction_recovery_duration()) {
+    orphaned_transaction_recovery_duration_ = new ::PROTOBUF_NAMESPACE_ID::Duration(*from.orphaned_transaction_recovery_duration_);
+  } else {
+    orphaned_transaction_recovery_duration_ = nullptr;
+  }
+  ::memcpy(&body_encoding_, &from.body_encoding_,
+    static_cast<size_t>(reinterpret_cast<char*>(&delivery_attempt_) -
+    reinterpret_cast<char*>(&body_encoding_)) + sizeof(delivery_attempt_));
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.SystemProperties)
+}
+
+inline void SystemProperties::SharedCtor() {
+tag_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  tag_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+message_id_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  message_id_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+born_host_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  born_host_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+store_host_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  store_host_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+receipt_handle_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  receipt_handle_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+message_group_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  message_group_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+trace_context_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  trace_context_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
+    reinterpret_cast<char*>(&body_digest_) - reinterpret_cast<char*>(this)),
+    0, static_cast<size_t>(reinterpret_cast<char*>(&delivery_attempt_) -
+    reinterpret_cast<char*>(&body_digest_)) + sizeof(delivery_attempt_));
+}
+
+SystemProperties::~SystemProperties() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.SystemProperties)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void SystemProperties::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  tag_.Destroy();
+  message_id_.Destroy();
+  born_host_.Destroy();
+  store_host_.Destroy();
+  receipt_handle_.Destroy();
+  message_group_.Destroy();
+  trace_context_.Destroy();
+  if (this != internal_default_instance()) delete body_digest_;
+  if (this != internal_default_instance()) delete born_timestamp_;
+  if (this != internal_default_instance()) delete store_timestamp_;
+  if (this != internal_default_instance()) delete delivery_timestamp_;
+  if (this != internal_default_instance()) delete invisible_duration_;
+  if (this != internal_default_instance()) delete orphaned_transaction_recovery_duration_;
+}
+
+void SystemProperties::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void SystemProperties::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.SystemProperties)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  keys_.Clear();
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    tag_.ClearNonDefaultToEmpty();
+  }
+  message_id_.ClearToEmpty();
+  born_host_.ClearToEmpty();
+  store_host_.ClearToEmpty();
+  if (cached_has_bits & 0x0000000eu) {
+    if (cached_has_bits & 0x00000002u) {
+      receipt_handle_.ClearNonDefaultToEmpty();
+    }
+    if (cached_has_bits & 0x00000004u) {
+      message_group_.ClearNonDefaultToEmpty();
+    }
+    if (cached_has_bits & 0x00000008u) {
+      trace_context_.ClearNonDefaultToEmpty();
+    }
+  }
+  if (GetArenaForAllocation() == nullptr && body_digest_ != nullptr) {
+    delete body_digest_;
+  }
+  body_digest_ = nullptr;
+  if (GetArenaForAllocation() == nullptr && born_timestamp_ != nullptr) {
+    delete born_timestamp_;
+  }
+  born_timestamp_ = nullptr;
+  if (cached_has_bits & 0x000000f0u) {
+    if (cached_has_bits & 0x00000010u) {
+      GOOGLE_DCHECK(store_timestamp_ != nullptr);
+      store_timestamp_->Clear();
+    }
+    if (cached_has_bits & 0x00000020u) {
+      GOOGLE_DCHECK(delivery_timestamp_ != nullptr);
+      delivery_timestamp_->Clear();
+    }
+    if (cached_has_bits & 0x00000040u) {
+      GOOGLE_DCHECK(invisible_duration_ != nullptr);
+      invisible_duration_->Clear();
+    }
+    if (cached_has_bits & 0x00000080u) {
+      GOOGLE_DCHECK(orphaned_transaction_recovery_duration_ != nullptr);
+      orphaned_transaction_recovery_duration_->Clear();
+    }
+  }
+  ::memset(&body_encoding_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&message_type_) -
+      reinterpret_cast<char*>(&body_encoding_)) + sizeof(message_type_));
+  queue_offset_ = int64_t{0};
+  queue_id_ = 0;
+  delivery_attempt_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* SystemProperties::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  _Internal::HasBits has_bits{};
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // optional string tag = 1 [json_name = "tag"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          auto str = _internal_mutable_tag();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.SystemProperties.tag"));
+        } else
+          goto handle_unusual;
+        continue;
+      // repeated string keys = 2 [json_name = "keys"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          ptr -= 1;
+          do {
+            ptr += 1;
+            auto str = _internal_add_keys();
+            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+            CHK_(ptr);
+            CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.SystemProperties.keys"));
+            if (!ctx->DataAvailable(ptr)) break;
+          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
+        } else
+          goto handle_unusual;
+        continue;
+      // string message_id = 3 [json_name = "messageId"];
+      case 3:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
+          auto str = _internal_mutable_message_id();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.SystemProperties.message_id"));
+        } else
+          goto handle_unusual;
+        continue;
+      // .apache.rocketmq.v2.Digest body_digest = 4 [json_name = "bodyDigest"];
+      case 4:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
+          ptr = ctx->ParseMessage(_internal_mutable_body_digest(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // .apache.rocketmq.v2.Encoding body_encoding = 5 [json_name = "bodyEncoding"];
+      case 5:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
+          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+          _internal_set_body_encoding(static_cast<::apache::rocketmq::v2::Encoding>(val));
+        } else
+          goto handle_unusual;
+        continue;
+      // .apache.rocketmq.v2.MessageType message_type = 6 [json_name = "messageType"];
+      case 6:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
+          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+          _internal_set_message_type(static_cast<::apache::rocketmq::v2::MessageType>(val));
+        } else
+          goto handle_unusual;
+        continue;
+      // .google.protobuf.Timestamp born_timestamp = 7 [json_name = "bornTimestamp"];
+      case 7:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
+          ptr = ctx->ParseMessage(_internal_mutable_born_timestamp(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // string born_host = 8 [json_name = "bornHost"];
+      case 8:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
+          auto str = _internal_mutable_born_host();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.SystemProperties.born_host"));
+        } else
+          goto handle_unusual;
+        continue;
+      // optional .google.protobuf.Timestamp store_timestamp = 9 [json_name = "storeTimestamp"];
+      case 9:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
+          ptr = ctx->ParseMessage(_internal_mutable_store_timestamp(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // string store_host = 10 [json_name = "storeHost"];
+      case 10:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
+          auto str = _internal_mutable_store_host();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.SystemProperties.store_host"));
+        } else
+          goto handle_unusual;
+        continue;
+      // optional .google.protobuf.Timestamp delivery_timestamp = 11 [json_name = "deliveryTimestamp"];
+      case 11:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
+          ptr = ctx->ParseMessage(_internal_mutable_delivery_timestamp(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // optional string receipt_handle = 12 [json_name = "receiptHandle"];
+      case 12:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
+          auto str = _internal_mutable_receipt_handle();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.SystemProperties.receipt_handle"));
+        } else
+          goto handle_unusual;
+        continue;
+      // int32 queue_id = 13 [json_name = "queueId"];
+      case 13:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
+          queue_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // optional int64 queue_offset = 14 [json_name = "queueOffset"];
+      case 14:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
+          _Internal::set_has_queue_offset(&has_bits);
+          queue_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // optional .google.protobuf.Duration invisible_duration = 15 [json_name = "invisibleDuration"];
+      case 15:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
+          ptr = ctx->ParseMessage(_internal_mutable_invisible_duration(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // optional int32 delivery_attempt = 16 [json_name = "deliveryAttempt"];
+      case 16:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 128)) {
+          _Internal::set_has_delivery_attempt(&has_bits);
+          delivery_attempt_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // optional string message_group = 17 [json_name = "messageGroup"];
+      case 17:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
+          auto str = _internal_mutable_message_group();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.SystemProperties.message_group"));
+        } else
+          goto handle_unusual;
+        continue;
+      // optional string trace_context = 18 [json_name = "traceContext"];
+      case 18:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 146)) {
+          auto str = _internal_mutable_trace_context();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.SystemProperties.trace_context"));
+        } else
+          goto handle_unusual;
+        continue;
+      // optional .google.protobuf.Duration orphaned_transaction_recovery_duration = 19 [json_name = "orphanedTransactionRecoveryDuration"];
+      case 19:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 154)) {
+          ptr = ctx->ParseMessage(_internal_mutable_orphaned_transaction_recovery_duration(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  _has_bits_.Or(has_bits);
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* SystemProperties::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.SystemProperties)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // optional string tag = 1 [json_name = "tag"];
+  if (_internal_has_tag()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_tag().data(), static_cast<int>(this->_internal_tag().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.SystemProperties.tag");
+    target = stream->WriteStringMaybeAliased(
+        1, this->_internal_tag(), target);
+  }
+
+  // repeated string keys = 2 [json_name = "keys"];
+  for (int i = 0, n = this->_internal_keys_size(); i < n; i++) {
+    const auto& s = this->_internal_keys(i);
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      s.data(), static_cast<int>(s.length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.SystemProperties.keys");
+    target = stream->WriteString(2, s, target);
+  }
+
+  // string message_id = 3 [json_name = "messageId"];
+  if (!this->_internal_message_id().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_message_id().data(), static_cast<int>(this->_internal_message_id().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.SystemProperties.message_id");
+    target = stream->WriteStringMaybeAliased(
+        3, this->_internal_message_id(), target);
+  }
+
+  // .apache.rocketmq.v2.Digest body_digest = 4 [json_name = "bodyDigest"];
+  if (this->_internal_has_body_digest()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(4, _Internal::body_digest(this),
+        _Internal::body_digest(this).GetCachedSize(), target, stream);
+  }
+
+  // .apache.rocketmq.v2.Encoding body_encoding = 5 [json_name = "bodyEncoding"];
+  if (this->_internal_body_encoding() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteEnumToArray(
+      5, this->_internal_body_encoding(), target);
+  }
+
+  // .apache.rocketmq.v2.MessageType message_type = 6 [json_name = "messageType"];
+  if (this->_internal_message_type() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteEnumToArray(
+      6, this->_internal_message_type(), target);
+  }
+
+  // .google.protobuf.Timestamp born_timestamp = 7 [json_name = "bornTimestamp"];
+  if (this->_internal_has_born_timestamp()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(7, _Internal::born_timestamp(this),
+        _Internal::born_timestamp(this).GetCachedSize(), target, stream);
+  }
+
+  // string born_host = 8 [json_name = "bornHost"];
+  if (!this->_internal_born_host().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_born_host().data(), static_cast<int>(this->_internal_born_host().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.SystemProperties.born_host");
+    target = stream->WriteStringMaybeAliased(
+        8, this->_internal_born_host(), target);
+  }
+
+  // optional .google.protobuf.Timestamp store_timestamp = 9 [json_name = "storeTimestamp"];
+  if (_internal_has_store_timestamp()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(9, _Internal::store_timestamp(this),
+        _Internal::store_timestamp(this).GetCachedSize(), target, stream);
+  }
+
+  // string store_host = 10 [json_name = "storeHost"];
+  if (!this->_internal_store_host().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_store_host().data(), static_cast<int>(this->_internal_store_host().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.SystemProperties.store_host");
+    target = stream->WriteStringMaybeAliased(
+        10, this->_internal_store_host(), target);
+  }
+
+  // optional .google.protobuf.Timestamp delivery_timestamp = 11 [json_name = "deliveryTimestamp"];
+  if (_internal_has_delivery_timestamp()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(11, _Internal::delivery_timestamp(this),
+        _Internal::delivery_timestamp(this).GetCachedSize(), target, stream);
+  }
+
+  // optional string receipt_handle = 12 [json_name = "receiptHandle"];
+  if (_internal_has_receipt_handle()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_receipt_handle().data(), static_cast<int>(this->_internal_receipt_handle().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.SystemProperties.receipt_handle");
+    target = stream->WriteStringMaybeAliased(
+        12, this->_internal_receipt_handle(), target);
+  }
+
+  // int32 queue_id = 13 [json_name = "queueId"];
+  if (this->_internal_queue_id() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteInt32ToArray(13, this->_internal_queue_id(), target);
+  }
+
+  // optional int64 queue_offset = 14 [json_name = "queueOffset"];
+  if (_internal_has_queue_offset()) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteInt64ToArray(14, this->_internal_queue_offset(), target);
+  }
+
+  // optional .google.protobuf.Duration invisible_duration = 15 [json_name = "invisibleDuration"];
+  if (_internal_has_invisible_duration()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(15, _Internal::invisible_duration(this),
+        _Internal::invisible_duration(this).GetCachedSize(), target, stream);
+  }
+
+  // optional int32 delivery_attempt = 16 [json_name = "deliveryAttempt"];
+  if (_internal_has_delivery_attempt()) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteInt32ToArray(16, this->_internal_delivery_attempt(), target);
+  }
+
+  // optional string message_group = 17 [json_name = "messageGroup"];
+  if (_internal_has_message_group()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_message_group().data(), static_cast<int>(this->_internal_message_group().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.SystemProperties.message_group");
+    target = stream->WriteStringMaybeAliased(
+        17, this->_internal_message_group(), target);
+  }
+
+  // optional string trace_context = 18 [json_name = "traceContext"];
+  if (_internal_has_trace_context()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_trace_context().data(), static_cast<int>(this->_internal_trace_context().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.SystemProperties.trace_context");
+    target = stream->WriteStringMaybeAliased(
+        18, this->_internal_trace_context(), target);
+  }
+
+  // optional .google.protobuf.Duration orphaned_transaction_recovery_duration = 19 [json_name = "orphanedTransactionRecoveryDuration"];
+  if (_internal_has_orphaned_transaction_recovery_duration()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(19, _Internal::orphaned_transaction_recovery_duration(this),
+        _Internal::orphaned_transaction_recovery_duration(this).GetCachedSize(), target, stream);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.SystemProperties)
+  return target;
+}
+
+size_t SystemProperties::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.SystemProperties)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // repeated string keys = 2 [json_name = "keys"];
+  total_size += 1 *
+      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(keys_.size());
+  for (int i = 0, n = keys_.size(); i < n; i++) {
+    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+      keys_.Get(i));
+  }
+
+  // optional string tag = 1 [json_name = "tag"];
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_tag());
+  }
+
+  // string message_id = 3 [json_name = "messageId"];
+  if (!this->_internal_message_id().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_message_id());
+  }
+
+  // string born_host = 8 [json_name = "bornHost"];
+  if (!this->_internal_born_host().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_born_host());
+  }
+
+  // string store_host = 10 [json_name = "storeHost"];
+  if (!this->_internal_store_host().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_store_host());
+  }
+
+  if (cached_has_bits & 0x0000000eu) {
+    // optional string receipt_handle = 12 [json_name = "receiptHandle"];
+    if (cached_has_bits & 0x00000002u) {
+      total_size += 1 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+          this->_internal_receipt_handle());
+    }
+
+    // optional string message_group = 17 [json_name = "messageGroup"];
+    if (cached_has_bits & 0x00000004u) {
+      total_size += 2 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+          this->_internal_message_group());
+    }
+
+    // optional string trace_context = 18 [json_name = "traceContext"];
+    if (cached_has_bits & 0x00000008u) {
+      total_size += 2 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+          this->_internal_trace_context());
+    }
+
+  }
+  // .apache.rocketmq.v2.Digest body_digest = 4 [json_name = "bodyDigest"];
+  if (this->_internal_has_body_digest()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *body_digest_);
+  }
+
+  // .google.protobuf.Timestamp born_timestamp = 7 [json_name = "bornTimestamp"];
+  if (this->_internal_has_born_timestamp()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *born_timestamp_);
+  }
+
+  if (cached_has_bits & 0x000000f0u) {
+    // optional .google.protobuf.Timestamp store_timestamp = 9 [json_name = "storeTimestamp"];
+    if (cached_has_bits & 0x00000010u) {
+      total_size += 1 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+          *store_timestamp_);
+    }
+
+    // optional .google.protobuf.Timestamp delivery_timestamp = 11 [json_name = "deliveryTimestamp"];
+    if (cached_has_bits & 0x00000020u) {
+      total_size += 1 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+          *delivery_timestamp_);
+    }
+
+    // optional .google.protobuf.Duration invisible_duration = 15 [json_name = "invisibleDuration"];
+    if (cached_has_bits & 0x00000040u) {
+      total_size += 1 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+          *invisible_duration_);
+    }
+
+    // optional .google.protobuf.Duration orphaned_transaction_recovery_duration = 19 [json_name = "orphanedTransactionRecoveryDuration"];
+    if (cached_has_bits & 0x00000080u) {
+      total_size += 2 +
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+          *orphaned_transaction_recovery_duration_);
+    }
+
+  }
+  // .apache.rocketmq.v2.Encoding body_encoding = 5 [json_name = "bodyEncoding"];
+  if (this->_internal_body_encoding() != 0) {
+    total_size += 1 +
+      ::_pbi::WireFormatLite::EnumSize(this->_internal_body_encoding());
+  }
+
+  // .apache.rocketmq.v2.MessageType message_type = 6 [json_name = "messageType"];
+  if (this->_internal_message_type() != 0) {
+    total_size += 1 +
+      ::_pbi::WireFormatLite::EnumSize(this->_internal_message_type());
+  }
+
+  // optional int64 queue_offset = 14 [json_name = "queueOffset"];
+  if (cached_has_bits & 0x00000100u) {
+    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_queue_offset());
+  }
+
+  // int32 queue_id = 13 [json_name = "queueId"];
+  if (this->_internal_queue_id() != 0) {
+    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_queue_id());
+  }
+
+  // optional int32 delivery_attempt = 16 [json_name = "deliveryAttempt"];
+  if (cached_has_bits & 0x00000200u) {
+    total_size += 2 +
+      ::_pbi::WireFormatLite::Int32Size(
+        this->_internal_delivery_attempt());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SystemProperties::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    SystemProperties::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SystemProperties::GetClassData() const { return &_class_data_; }
+
+void SystemProperties::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<SystemProperties *>(to)->MergeFrom(
+      static_cast<const SystemProperties &>(from));
+}
+
+
+void SystemProperties::MergeFrom(const SystemProperties& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.SystemProperties)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  keys_.MergeFrom(from.keys_);
+  if (from._internal_has_tag()) {
+    _internal_set_tag(from._internal_tag());
+  }
+  if (!from._internal_message_id().empty()) {
+    _internal_set_message_id(from._internal_message_id());
+  }
+  if (!from._internal_born_host().empty()) {
+    _internal_set_born_host(from._internal_born_host());
+  }
+  if (!from._internal_store_host().empty()) {
+    _internal_set_store_host(from._internal_store_host());
+  }
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 0x0000000eu) {
+    if (cached_has_bits & 0x00000002u) {
+      _internal_set_receipt_handle(from._internal_receipt_handle());
+    }
+    if (cached_has_bits & 0x00000004u) {
+      _internal_set_message_group(from._internal_message_group());
+    }
+    if (cached_has_bits & 0x00000008u) {
+      _internal_set_trace_context(from._internal_trace_context());
+    }
+  }
+  if (from._internal_has_body_digest()) {
+    _internal_mutable_body_digest()->::apache::rocketmq::v2::Digest::MergeFrom(from._internal_body_digest());
+  }
+  if (from._internal_has_born_timestamp()) {
+    _internal_mutable_born_timestamp()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_born_timestamp());
+  }
+  if (cached_has_bits & 0x000000f0u) {
+    if (cached_has_bits & 0x00000010u) {
+      _internal_mutable_store_timestamp()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_store_timestamp());
+    }
+    if (cached_has_bits & 0x00000020u) {
+      _internal_mutable_delivery_timestamp()->::PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_delivery_timestamp());
+    }
+    if (cached_has_bits & 0x00000040u) {
+      _internal_mutable_invisible_duration()->::PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_invisible_duration());
+    }
+    if (cached_has_bits & 0x00000080u) {
+      _internal_mutable_orphaned_transaction_recovery_duration()->::PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_orphaned_transaction_recovery_duration());
+    }
+  }
+  if (from._internal_body_encoding() != 0) {
+    _internal_set_body_encoding(from._internal_body_encoding());
+  }
+  if (from._internal_message_type() != 0) {
+    _internal_set_message_type(from._internal_message_type());
+  }
+  if (cached_has_bits & 0x00000100u) {
+    _internal_set_queue_offset(from._internal_queue_offset());
+  }
+  if (from._internal_queue_id() != 0) {
+    _internal_set_queue_id(from._internal_queue_id());
+  }
+  if (cached_has_bits & 0x00000200u) {
+    _internal_set_delivery_attempt(from._internal_delivery_attempt());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void SystemProperties::CopyFrom(const SystemProperties& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.SystemProperties)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool SystemProperties::IsInitialized() const {
+  return true;
+}
+
+void SystemProperties::InternalSwap(SystemProperties* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  keys_.InternalSwap(&other->keys_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &tag_, lhs_arena,
+      &other->tag_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &message_id_, lhs_arena,
+      &other->message_id_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &born_host_, lhs_arena,
+      &other->born_host_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &store_host_, lhs_arena,
+      &other->store_host_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &receipt_handle_, lhs_arena,
+      &other->receipt_handle_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &message_group_, lhs_arena,
+      &other->message_group_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &trace_context_, lhs_arena,
+      &other->trace_context_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(SystemProperties, delivery_attempt_)
+      + sizeof(SystemProperties::delivery_attempt_)
+      - PROTOBUF_FIELD_OFFSET(SystemProperties, body_digest_)>(
+          reinterpret_cast<char*>(&body_digest_),
+          reinterpret_cast<char*>(&other->body_digest_));
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata SystemProperties::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[11]);
+}
+
+// ===================================================================
+
+Message_UserPropertiesEntry_DoNotUse::Message_UserPropertiesEntry_DoNotUse() {}
+Message_UserPropertiesEntry_DoNotUse::Message_UserPropertiesEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+    : SuperType(arena) {}
+void Message_UserPropertiesEntry_DoNotUse::MergeFrom(const Message_UserPropertiesEntry_DoNotUse& other) {
+  MergeFromInternal(other);
+}
+::PROTOBUF_NAMESPACE_ID::Metadata Message_UserPropertiesEntry_DoNotUse::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[12]);
+}
+
+// ===================================================================
+
+class Message::_Internal {
+ public:
+  static const ::apache::rocketmq::v2::Resource& topic(const Message* msg);
+  static const ::apache::rocketmq::v2::SystemProperties& system_properties(const Message* msg);
+};
+
+const ::apache::rocketmq::v2::Resource&
+Message::_Internal::topic(const Message* msg) {
+  return *msg->topic_;
+}
+const ::apache::rocketmq::v2::SystemProperties&
+Message::_Internal::system_properties(const Message* msg) {
+  return *msg->system_properties_;
+}
+Message::Message(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
+  user_properties_(arena) {
+  SharedCtor();
+  if (arena != nullptr && !is_message_owned) {
+    arena->OwnCustomDestructor(this, &Message::ArenaDtor);
+  }
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.Message)
+}
+Message::Message(const Message& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  user_properties_.MergeFrom(from.user_properties_);
+  body_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    body_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_body().empty()) {
+    body_.Set(from._internal_body(), 
+      GetArenaForAllocation());
+  }
+  if (from._internal_has_topic()) {
+    topic_ = new ::apache::rocketmq::v2::Resource(*from.topic_);
+  } else {
+    topic_ = nullptr;
+  }
+  if (from._internal_has_system_properties()) {
+    system_properties_ = new ::apache::rocketmq::v2::SystemProperties(*from.system_properties_);
+  } else {
+    system_properties_ = nullptr;
+  }
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.Message)
+}
+
+inline void Message::SharedCtor() {
+body_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  body_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
+    reinterpret_cast<char*>(&topic_) - reinterpret_cast<char*>(this)),
+    0, static_cast<size_t>(reinterpret_cast<char*>(&system_properties_) -
+    reinterpret_cast<char*>(&topic_)) + sizeof(system_properties_));
+}
+
+Message::~Message() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.Message)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    ArenaDtor(this);
+    return;
+  }
+  SharedDtor();
+}
+
+inline void Message::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  user_properties_.Destruct();
+  body_.Destroy();
+  if (this != internal_default_instance()) delete topic_;
+  if (this != internal_default_instance()) delete system_properties_;
+}
+
+void Message::ArenaDtor(void* object) {
+  Message* _this = reinterpret_cast< Message* >(object);
+  _this->user_properties_.Destruct();
+}
+void Message::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void Message::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.Message)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  user_properties_.Clear();
+  body_.ClearToEmpty();
+  if (GetArenaForAllocation() == nullptr && topic_ != nullptr) {
+    delete topic_;
+  }
+  topic_ = nullptr;
+  if (GetArenaForAllocation() == nullptr && system_properties_ != nullptr) {
+    delete system_properties_;
+  }
+  system_properties_ = nullptr;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* Message::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          ptr = ctx->ParseMessage(_internal_mutable_topic(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // map<string, string> user_properties = 2 [json_name = "userProperties"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          ptr -= 1;
+          do {
+            ptr += 1;
+            ptr = ctx->ParseMessage(&user_properties_, ptr);
+            CHK_(ptr);
+            if (!ctx->DataAvailable(ptr)) break;
+          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
+        } else
+          goto handle_unusual;
+        continue;
+      // .apache.rocketmq.v2.SystemProperties system_properties = 3 [json_name = "systemProperties"];
+      case 3:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
+          ptr = ctx->ParseMessage(_internal_mutable_system_properties(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      // bytes body = 4 [json_name = "body"];
+      case 4:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
+          auto str = _internal_mutable_body();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* Message::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.Message)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+  if (this->_internal_has_topic()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(1, _Internal::topic(this),
+        _Internal::topic(this).GetCachedSize(), target, stream);
+  }
+
+  // map<string, string> user_properties = 2 [json_name = "userProperties"];
+  if (!this->_internal_user_properties().empty()) {
+    using MapType = ::_pb::Map<std::string, std::string>;
+    using WireHelper = Message_UserPropertiesEntry_DoNotUse::Funcs;
+    const auto& map_field = this->_internal_user_properties();
+    auto check_utf8 = [](const MapType::value_type& entry) {
+      (void)entry;
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+        entry.first.data(), static_cast<int>(entry.first.length()),
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+        "apache.rocketmq.v2.Message.UserPropertiesEntry.key");
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+        entry.second.data(), static_cast<int>(entry.second.length()),
+        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+        "apache.rocketmq.v2.Message.UserPropertiesEntry.value");
+    };
+
+    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
+      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
+        target = WireHelper::InternalSerialize(2, entry.first, entry.second, target, stream);
+        check_utf8(entry);
+      }
+    } else {
+      for (const auto& entry : map_field) {
+        target = WireHelper::InternalSerialize(2, entry.first, entry.second, target, stream);
+        check_utf8(entry);
+      }
+    }
+  }
+
+  // .apache.rocketmq.v2.SystemProperties system_properties = 3 [json_name = "systemProperties"];
+  if (this->_internal_has_system_properties()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(3, _Internal::system_properties(this),
+        _Internal::system_properties(this).GetCachedSize(), target, stream);
+  }
+
+  // bytes body = 4 [json_name = "body"];
+  if (!this->_internal_body().empty()) {
+    target = stream->WriteBytesMaybeAliased(
+        4, this->_internal_body(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.Message)
+  return target;
+}
+
+size_t Message::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.Message)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // map<string, string> user_properties = 2 [json_name = "userProperties"];
+  total_size += 1 *
+      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_user_properties_size());
+  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >::const_iterator
+      it = this->_internal_user_properties().begin();
+      it != this->_internal_user_properties().end(); ++it) {
+    total_size += Message_UserPropertiesEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
+  }
+
+  // bytes body = 4 [json_name = "body"];
+  if (!this->_internal_body().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
+        this->_internal_body());
+  }
+
+  // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+  if (this->_internal_has_topic()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *topic_);
+  }
+
+  // .apache.rocketmq.v2.SystemProperties system_properties = 3 [json_name = "systemProperties"];
+  if (this->_internal_has_system_properties()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *system_properties_);
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Message::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    Message::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Message::GetClassData() const { return &_class_data_; }
+
+void Message::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<Message *>(to)->MergeFrom(
+      static_cast<const Message &>(from));
+}
+
+
+void Message::MergeFrom(const Message& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.Message)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  user_properties_.MergeFrom(from.user_properties_);
+  if (!from._internal_body().empty()) {
+    _internal_set_body(from._internal_body());
+  }
+  if (from._internal_has_topic()) {
+    _internal_mutable_topic()->::apache::rocketmq::v2::Resource::MergeFrom(from._internal_topic());
+  }
+  if (from._internal_has_system_properties()) {
+    _internal_mutable_system_properties()->::apache::rocketmq::v2::SystemProperties::MergeFrom(from._internal_system_properties());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void Message::CopyFrom(const Message& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.Message)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Message::IsInitialized() const {
+  return true;
+}
+
+void Message::InternalSwap(Message* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  user_properties_.InternalSwap(&other->user_properties_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &body_, lhs_arena,
+      &other->body_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(Message, system_properties_)
+      + sizeof(Message::system_properties_)
+      - PROTOBUF_FIELD_OFFSET(Message, topic_)>(
+          reinterpret_cast<char*>(&topic_),
+          reinterpret_cast<char*>(&other->topic_));
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata Message::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[13]);
+}
+
+// ===================================================================
+
+class Assignment::_Internal {
+ public:
+  static const ::apache::rocketmq::v2::MessageQueue& message_queue(const Assignment* msg);
+};
+
+const ::apache::rocketmq::v2::MessageQueue&
+Assignment::_Internal::message_queue(const Assignment* msg) {
+  return *msg->message_queue_;
+}
+Assignment::Assignment(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.Assignment)
+}
+Assignment::Assignment(const Assignment& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  if (from._internal_has_message_queue()) {
+    message_queue_ = new ::apache::rocketmq::v2::MessageQueue(*from.message_queue_);
+  } else {
+    message_queue_ = nullptr;
+  }
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.Assignment)
+}
+
+inline void Assignment::SharedCtor() {
+message_queue_ = nullptr;
+}
+
+Assignment::~Assignment() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.Assignment)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void Assignment::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  if (this != internal_default_instance()) delete message_queue_;
+}
+
+void Assignment::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void Assignment::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.Assignment)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  if (GetArenaForAllocation() == nullptr && message_queue_ != nullptr) {
+    delete message_queue_;
+  }
+  message_queue_ = nullptr;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* Assignment::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .apache.rocketmq.v2.MessageQueue message_queue = 1 [json_name = "messageQueue"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
+          ptr = ctx->ParseMessage(_internal_mutable_message_queue(), ptr);
+          CHK_(ptr);
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* Assignment::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.Assignment)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.MessageQueue message_queue = 1 [json_name = "messageQueue"];
+  if (this->_internal_has_message_queue()) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(1, _Internal::message_queue(this),
+        _Internal::message_queue(this).GetCachedSize(), target, stream);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.Assignment)
+  return target;
+}
+
+size_t Assignment::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.Assignment)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.MessageQueue message_queue = 1 [json_name = "messageQueue"];
+  if (this->_internal_has_message_queue()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *message_queue_);
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Assignment::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    Assignment::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Assignment::GetClassData() const { return &_class_data_; }
+
+void Assignment::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<Assignment *>(to)->MergeFrom(
+      static_cast<const Assignment &>(from));
+}
+
+
+void Assignment::MergeFrom(const Assignment& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.Assignment)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from._internal_has_message_queue()) {
+    _internal_mutable_message_queue()->::apache::rocketmq::v2::MessageQueue::MergeFrom(from._internal_message_queue());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void Assignment::CopyFrom(const Assignment& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.Assignment)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Assignment::IsInitialized() const {
+  return true;
+}
+
+void Assignment::InternalSwap(Assignment* other) {
+  using std::swap;
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  swap(message_queue_, other->message_queue_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata Assignment::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[14]);
+}
+
+// ===================================================================
+
+class Status::_Internal {
+ public:
+};
+
+Status::Status(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.Status)
+}
+Status::Status(const Status& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  message_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    message_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_message().empty()) {
+    message_.Set(from._internal_message(), 
+      GetArenaForAllocation());
+  }
+  code_ = from.code_;
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.Status)
+}
+
+inline void Status::SharedCtor() {
+message_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  message_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+code_ = 0;
+}
+
+Status::~Status() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.Status)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void Status::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  message_.Destroy();
+}
+
+void Status::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void Status::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.Status)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  message_.ClearToEmpty();
+  code_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* Status::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .apache.rocketmq.v2.Code code = 1 [json_name = "code"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
+          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+          _internal_set_code(static_cast<::apache::rocketmq::v2::Code>(val));
+        } else
+          goto handle_unusual;
+        continue;
+      // string message = 2 [json_name = "message"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          auto str = _internal_mutable_message();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.Status.message"));
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* Status::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.Status)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.Code code = 1 [json_name = "code"];
+  if (this->_internal_code() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteEnumToArray(
+      1, this->_internal_code(), target);
+  }
+
+  // string message = 2 [json_name = "message"];
+  if (!this->_internal_message().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_message().data(), static_cast<int>(this->_internal_message().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.Status.message");
+    target = stream->WriteStringMaybeAliased(
+        2, this->_internal_message(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.Status)
+  return target;
+}
+
+size_t Status::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.Status)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string message = 2 [json_name = "message"];
+  if (!this->_internal_message().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_message());
+  }
+
+  // .apache.rocketmq.v2.Code code = 1 [json_name = "code"];
+  if (this->_internal_code() != 0) {
+    total_size += 1 +
+      ::_pbi::WireFormatLite::EnumSize(this->_internal_code());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Status::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    Status::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Status::GetClassData() const { return &_class_data_; }
+
+void Status::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<Status *>(to)->MergeFrom(
+      static_cast<const Status &>(from));
+}
+
+
+void Status::MergeFrom(const Status& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.Status)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_message().empty()) {
+    _internal_set_message(from._internal_message());
+  }
+  if (from._internal_code() != 0) {
+    _internal_set_code(from._internal_code());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void Status::CopyFrom(const Status& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.Status)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Status::IsInitialized() const {
+  return true;
+}
+
+void Status::InternalSwap(Status* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &message_, lhs_arena,
+      &other->message_, rhs_arena
+  );
+  swap(code_, other->code_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata Status::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[15]);
+}
+
+// ===================================================================
+
+class UA::_Internal {
+ public:
+};
+
+UA::UA(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                         bool is_message_owned)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
+  SharedCtor();
+  // @@protoc_insertion_point(arena_constructor:apache.rocketmq.v2.UA)
+}
+UA::UA(const UA& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  version_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    version_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_version().empty()) {
+    version_.Set(from._internal_version(), 
+      GetArenaForAllocation());
+  }
+  platform_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    platform_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_platform().empty()) {
+    platform_.Set(from._internal_platform(), 
+      GetArenaForAllocation());
+  }
+  hostname_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+    hostname_.Set("", GetArenaForAllocation());
+  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_hostname().empty()) {
+    hostname_.Set(from._internal_hostname(), 
+      GetArenaForAllocation());
+  }
+  language_ = from.language_;
+  // @@protoc_insertion_point(copy_constructor:apache.rocketmq.v2.UA)
+}
+
+inline void UA::SharedCtor() {
+version_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  version_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+platform_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  platform_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+hostname_.InitDefault();
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  hostname_.Set("", GetArenaForAllocation());
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+language_ = 0;
+}
+
+UA::~UA() {
+  // @@protoc_insertion_point(destructor:apache.rocketmq.v2.UA)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void UA::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+  version_.Destroy();
+  platform_.Destroy();
+  hostname_.Destroy();
+}
+
+void UA::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+
+void UA::Clear() {
+// @@protoc_insertion_point(message_clear_start:apache.rocketmq.v2.UA)
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  version_.ClearToEmpty();
+  platform_.ClearToEmpty();
+  hostname_.ClearToEmpty();
+  language_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* UA::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .apache.rocketmq.v2.Language language = 1 [json_name = "language"];
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
+          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+          CHK_(ptr);
+          _internal_set_language(static_cast<::apache::rocketmq::v2::Language>(val));
+        } else
+          goto handle_unusual;
+        continue;
+      // string version = 2 [json_name = "version"];
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
+          auto str = _internal_mutable_version();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.UA.version"));
+        } else
+          goto handle_unusual;
+        continue;
+      // string platform = 3 [json_name = "platform"];
+      case 3:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
+          auto str = _internal_mutable_platform();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.UA.platform"));
+        } else
+          goto handle_unusual;
+        continue;
+      // string hostname = 4 [json_name = "hostname"];
+      case 4:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
+          auto str = _internal_mutable_hostname();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "apache.rocketmq.v2.UA.hostname"));
+        } else
+          goto handle_unusual;
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+uint8_t* UA::_InternalSerialize(
+    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:apache.rocketmq.v2.UA)
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .apache.rocketmq.v2.Language language = 1 [json_name = "language"];
+  if (this->_internal_language() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteEnumToArray(
+      1, this->_internal_language(), target);
+  }
+
+  // string version = 2 [json_name = "version"];
+  if (!this->_internal_version().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_version().data(), static_cast<int>(this->_internal_version().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.UA.version");
+    target = stream->WriteStringMaybeAliased(
+        2, this->_internal_version(), target);
+  }
+
+  // string platform = 3 [json_name = "platform"];
+  if (!this->_internal_platform().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_platform().data(), static_cast<int>(this->_internal_platform().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.UA.platform");
+    target = stream->WriteStringMaybeAliased(
+        3, this->_internal_platform(), target);
+  }
+
+  // string hostname = 4 [json_name = "hostname"];
+  if (!this->_internal_hostname().empty()) {
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+      this->_internal_hostname().data(), static_cast<int>(this->_internal_hostname().length()),
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+      "apache.rocketmq.v2.UA.hostname");
+    target = stream->WriteStringMaybeAliased(
+        4, this->_internal_hostname(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:apache.rocketmq.v2.UA)
+  return target;
+}
+
+size_t UA::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:apache.rocketmq.v2.UA)
+  size_t total_size = 0;
+
+  uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string version = 2 [json_name = "version"];
+  if (!this->_internal_version().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_version());
+  }
+
+  // string platform = 3 [json_name = "platform"];
+  if (!this->_internal_platform().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_platform());
+  }
+
+  // string hostname = 4 [json_name = "hostname"];
+  if (!this->_internal_hostname().empty()) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+        this->_internal_hostname());
+  }
+
+  // .apache.rocketmq.v2.Language language = 1 [json_name = "language"];
+  if (this->_internal_language() != 0) {
+    total_size += 1 +
+      ::_pbi::WireFormatLite::EnumSize(this->_internal_language());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UA::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
+    UA::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UA::GetClassData() const { return &_class_data_; }
+
+void UA::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
+                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
+  static_cast<UA *>(to)->MergeFrom(
+      static_cast<const UA &>(from));
+}
+
+
+void UA::MergeFrom(const UA& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:apache.rocketmq.v2.UA)
+  GOOGLE_DCHECK_NE(&from, this);
+  uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_version().empty()) {
+    _internal_set_version(from._internal_version());
+  }
+  if (!from._internal_platform().empty()) {
+    _internal_set_platform(from._internal_platform());
+  }
+  if (!from._internal_hostname().empty()) {
+    _internal_set_hostname(from._internal_hostname());
+  }
+  if (from._internal_language() != 0) {
+    _internal_set_language(from._internal_language());
+  }
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void UA::CopyFrom(const UA& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:apache.rocketmq.v2.UA)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool UA::IsInitialized() const {
+  return true;
+}
+
+void UA::InternalSwap(UA* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &version_, lhs_arena,
+      &other->version_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &platform_, lhs_arena,
+      &other->platform_, rhs_arena
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &hostname_, lhs_arena,
+      &other->hostname_, rhs_arena
+  );
+  swap(language_, other->language_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata UA::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_getter, &descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto_once,
+      file_level_metadata_apache_2frocketmq_2fv2_2fdefinition_2eproto[16]);
+}
+
+// @@protoc_insertion_point(namespace_scope)
+}  // namespace v2
+}  // namespace rocketmq
+}  // namespace apache
+PROTOBUF_NAMESPACE_OPEN
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::FilterExpression*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::FilterExpression >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::FilterExpression >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::RetryPolicy*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::RetryPolicy >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::RetryPolicy >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::ExponentialBackoff*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::ExponentialBackoff >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::ExponentialBackoff >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::CustomizedBackoff*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::CustomizedBackoff >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::CustomizedBackoff >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::Resource*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::Resource >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::Resource >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::SubscriptionEntry*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::SubscriptionEntry >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::SubscriptionEntry >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::Address*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::Address >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::Address >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::Endpoints*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::Endpoints >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::Endpoints >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::Broker*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::Broker >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::Broker >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::MessageQueue*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::MessageQueue >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::MessageQueue >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::Digest*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::Digest >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::Digest >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::SystemProperties*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::SystemProperties >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::SystemProperties >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::Message_UserPropertiesEntry_DoNotUse*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::Message_UserPropertiesEntry_DoNotUse >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::Message_UserPropertiesEntry_DoNotUse >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::Message*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::Message >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::Message >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::Assignment*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::Assignment >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::Assignment >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::Status*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::Status >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::Status >(arena);
+}
+template<> PROTOBUF_NOINLINE ::apache::rocketmq::v2::UA*
+Arena::CreateMaybeMessage< ::apache::rocketmq::v2::UA >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::apache::rocketmq::v2::UA >(arena);
+}
+PROTOBUF_NAMESPACE_CLOSE
+
+// @@protoc_insertion_point(global_scope)
+#include <google/protobuf/port_undef.inc>
diff --git a/cpp/generate/apache/rocketmq/v2/definition.pb.h b/cpp/generate/apache/rocketmq/v2/definition.pb.h
new file mode 100755
index 0000000..6e2e515
--- /dev/null
+++ b/cpp/generate/apache/rocketmq/v2/definition.pb.h
@@ -0,0 +1,6872 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: apache/rocketmq/v2/definition.proto
+
+#ifndef GOOGLE_PROTOBUF_INCLUDED_apache_2frocketmq_2fv2_2fdefinition_2eproto
+#define GOOGLE_PROTOBUF_INCLUDED_apache_2frocketmq_2fv2_2fdefinition_2eproto
+
+#include <limits>
+#include <string>
+
+#include <google/protobuf/port_def.inc>
+#if PROTOBUF_VERSION < 3020000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3020001 < PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/port_undef.inc>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata_lite.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
+#include <google/protobuf/extension_set.h>  // IWYU pragma: export
+#include <google/protobuf/map.h>  // IWYU pragma: export
+#include <google/protobuf/map_entry.h>
+#include <google/protobuf/map_field_inl.h>
+#include <google/protobuf/generated_enum_reflection.h>
+#include <google/protobuf/unknown_field_set.h>
+#include <google/protobuf/timestamp.pb.h>
+#include <google/protobuf/duration.pb.h>
+// @@protoc_insertion_point(includes)
+#include <google/protobuf/port_def.inc>
+#define PROTOBUF_INTERNAL_EXPORT_apache_2frocketmq_2fv2_2fdefinition_2eproto
+PROTOBUF_NAMESPACE_OPEN
+namespace internal {
+class AnyMetadata;
+}  // namespace internal
+PROTOBUF_NAMESPACE_CLOSE
+
+// Internal implementation detail -- do not use these members.
+struct TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto {
+  static const uint32_t offsets[];
+};
+extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+class Address;
+struct AddressDefaultTypeInternal;
+extern AddressDefaultTypeInternal _Address_default_instance_;
+class Assignment;
+struct AssignmentDefaultTypeInternal;
+extern AssignmentDefaultTypeInternal _Assignment_default_instance_;
+class Broker;
+struct BrokerDefaultTypeInternal;
+extern BrokerDefaultTypeInternal _Broker_default_instance_;
+class CustomizedBackoff;
+struct CustomizedBackoffDefaultTypeInternal;
+extern CustomizedBackoffDefaultTypeInternal _CustomizedBackoff_default_instance_;
+class Digest;
+struct DigestDefaultTypeInternal;
+extern DigestDefaultTypeInternal _Digest_default_instance_;
+class Endpoints;
+struct EndpointsDefaultTypeInternal;
+extern EndpointsDefaultTypeInternal _Endpoints_default_instance_;
+class ExponentialBackoff;
+struct ExponentialBackoffDefaultTypeInternal;
+extern ExponentialBackoffDefaultTypeInternal _ExponentialBackoff_default_instance_;
+class FilterExpression;
+struct FilterExpressionDefaultTypeInternal;
+extern FilterExpressionDefaultTypeInternal _FilterExpression_default_instance_;
+class Message;
+struct MessageDefaultTypeInternal;
+extern MessageDefaultTypeInternal _Message_default_instance_;
+class MessageQueue;
+struct MessageQueueDefaultTypeInternal;
+extern MessageQueueDefaultTypeInternal _MessageQueue_default_instance_;
+class Message_UserPropertiesEntry_DoNotUse;
+struct Message_UserPropertiesEntry_DoNotUseDefaultTypeInternal;
+extern Message_UserPropertiesEntry_DoNotUseDefaultTypeInternal _Message_UserPropertiesEntry_DoNotUse_default_instance_;
+class Resource;
+struct ResourceDefaultTypeInternal;
+extern ResourceDefaultTypeInternal _Resource_default_instance_;
+class RetryPolicy;
+struct RetryPolicyDefaultTypeInternal;
+extern RetryPolicyDefaultTypeInternal _RetryPolicy_default_instance_;
+class Status;
+struct StatusDefaultTypeInternal;
+extern StatusDefaultTypeInternal _Status_default_instance_;
+class SubscriptionEntry;
+struct SubscriptionEntryDefaultTypeInternal;
+extern SubscriptionEntryDefaultTypeInternal _SubscriptionEntry_default_instance_;
+class SystemProperties;
+struct SystemPropertiesDefaultTypeInternal;
+extern SystemPropertiesDefaultTypeInternal _SystemProperties_default_instance_;
+class UA;
+struct UADefaultTypeInternal;
+extern UADefaultTypeInternal _UA_default_instance_;
+}  // namespace v2
+}  // namespace rocketmq
+}  // namespace apache
+PROTOBUF_NAMESPACE_OPEN
+template<> ::apache::rocketmq::v2::Address* Arena::CreateMaybeMessage<::apache::rocketmq::v2::Address>(Arena*);
+template<> ::apache::rocketmq::v2::Assignment* Arena::CreateMaybeMessage<::apache::rocketmq::v2::Assignment>(Arena*);
+template<> ::apache::rocketmq::v2::Broker* Arena::CreateMaybeMessage<::apache::rocketmq::v2::Broker>(Arena*);
+template<> ::apache::rocketmq::v2::CustomizedBackoff* Arena::CreateMaybeMessage<::apache::rocketmq::v2::CustomizedBackoff>(Arena*);
+template<> ::apache::rocketmq::v2::Digest* Arena::CreateMaybeMessage<::apache::rocketmq::v2::Digest>(Arena*);
+template<> ::apache::rocketmq::v2::Endpoints* Arena::CreateMaybeMessage<::apache::rocketmq::v2::Endpoints>(Arena*);
+template<> ::apache::rocketmq::v2::ExponentialBackoff* Arena::CreateMaybeMessage<::apache::rocketmq::v2::ExponentialBackoff>(Arena*);
+template<> ::apache::rocketmq::v2::FilterExpression* Arena::CreateMaybeMessage<::apache::rocketmq::v2::FilterExpression>(Arena*);
+template<> ::apache::rocketmq::v2::Message* Arena::CreateMaybeMessage<::apache::rocketmq::v2::Message>(Arena*);
+template<> ::apache::rocketmq::v2::MessageQueue* Arena::CreateMaybeMessage<::apache::rocketmq::v2::MessageQueue>(Arena*);
+template<> ::apache::rocketmq::v2::Message_UserPropertiesEntry_DoNotUse* Arena::CreateMaybeMessage<::apache::rocketmq::v2::Message_UserPropertiesEntry_DoNotUse>(Arena*);
+template<> ::apache::rocketmq::v2::Resource* Arena::CreateMaybeMessage<::apache::rocketmq::v2::Resource>(Arena*);
+template<> ::apache::rocketmq::v2::RetryPolicy* Arena::CreateMaybeMessage<::apache::rocketmq::v2::RetryPolicy>(Arena*);
+template<> ::apache::rocketmq::v2::Status* Arena::CreateMaybeMessage<::apache::rocketmq::v2::Status>(Arena*);
+template<> ::apache::rocketmq::v2::SubscriptionEntry* Arena::CreateMaybeMessage<::apache::rocketmq::v2::SubscriptionEntry>(Arena*);
+template<> ::apache::rocketmq::v2::SystemProperties* Arena::CreateMaybeMessage<::apache::rocketmq::v2::SystemProperties>(Arena*);
+template<> ::apache::rocketmq::v2::UA* Arena::CreateMaybeMessage<::apache::rocketmq::v2::UA>(Arena*);
+PROTOBUF_NAMESPACE_CLOSE
+namespace apache {
+namespace rocketmq {
+namespace v2 {
+
+enum TransactionResolution : int {
+  TRANSACTION_RESOLUTION_UNSPECIFIED = 0,
+  COMMIT = 1,
+  ROLLBACK = 2,
+  TransactionResolution_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  TransactionResolution_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool TransactionResolution_IsValid(int value);
+constexpr TransactionResolution TransactionResolution_MIN = TRANSACTION_RESOLUTION_UNSPECIFIED;
+constexpr TransactionResolution TransactionResolution_MAX = ROLLBACK;
+constexpr int TransactionResolution_ARRAYSIZE = TransactionResolution_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TransactionResolution_descriptor();
+template<typename T>
+inline const std::string& TransactionResolution_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, TransactionResolution>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function TransactionResolution_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    TransactionResolution_descriptor(), enum_t_value);
+}
+inline bool TransactionResolution_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, TransactionResolution* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<TransactionResolution>(
+    TransactionResolution_descriptor(), name, value);
+}
+enum TransactionSource : int {
+  SOURCE_UNSPECIFIED = 0,
+  SOURCE_CLIENT = 1,
+  SOURCE_SERVER_CHECK = 2,
+  TransactionSource_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  TransactionSource_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool TransactionSource_IsValid(int value);
+constexpr TransactionSource TransactionSource_MIN = SOURCE_UNSPECIFIED;
+constexpr TransactionSource TransactionSource_MAX = SOURCE_SERVER_CHECK;
+constexpr int TransactionSource_ARRAYSIZE = TransactionSource_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TransactionSource_descriptor();
+template<typename T>
+inline const std::string& TransactionSource_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, TransactionSource>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function TransactionSource_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    TransactionSource_descriptor(), enum_t_value);
+}
+inline bool TransactionSource_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, TransactionSource* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<TransactionSource>(
+    TransactionSource_descriptor(), name, value);
+}
+enum Permission : int {
+  PERMISSION_UNSPECIFIED = 0,
+  NONE = 1,
+  READ = 2,
+  WRITE = 3,
+  READ_WRITE = 4,
+  Permission_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  Permission_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool Permission_IsValid(int value);
+constexpr Permission Permission_MIN = PERMISSION_UNSPECIFIED;
+constexpr Permission Permission_MAX = READ_WRITE;
+constexpr int Permission_ARRAYSIZE = Permission_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Permission_descriptor();
+template<typename T>
+inline const std::string& Permission_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, Permission>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function Permission_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    Permission_descriptor(), enum_t_value);
+}
+inline bool Permission_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Permission* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Permission>(
+    Permission_descriptor(), name, value);
+}
+enum FilterType : int {
+  FILTER_TYPE_UNSPECIFIED = 0,
+  TAG = 1,
+  SQL = 2,
+  FilterType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  FilterType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool FilterType_IsValid(int value);
+constexpr FilterType FilterType_MIN = FILTER_TYPE_UNSPECIFIED;
+constexpr FilterType FilterType_MAX = SQL;
+constexpr int FilterType_ARRAYSIZE = FilterType_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* FilterType_descriptor();
+template<typename T>
+inline const std::string& FilterType_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, FilterType>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function FilterType_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    FilterType_descriptor(), enum_t_value);
+}
+inline bool FilterType_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, FilterType* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<FilterType>(
+    FilterType_descriptor(), name, value);
+}
+enum AddressScheme : int {
+  ADDRESS_SCHEME_UNSPECIFIED = 0,
+  IPv4 = 1,
+  IPv6 = 2,
+  DOMAIN_NAME = 3,
+  AddressScheme_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  AddressScheme_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool AddressScheme_IsValid(int value);
+constexpr AddressScheme AddressScheme_MIN = ADDRESS_SCHEME_UNSPECIFIED;
+constexpr AddressScheme AddressScheme_MAX = DOMAIN_NAME;
+constexpr int AddressScheme_ARRAYSIZE = AddressScheme_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AddressScheme_descriptor();
+template<typename T>
+inline const std::string& AddressScheme_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, AddressScheme>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function AddressScheme_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    AddressScheme_descriptor(), enum_t_value);
+}
+inline bool AddressScheme_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, AddressScheme* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<AddressScheme>(
+    AddressScheme_descriptor(), name, value);
+}
+enum MessageType : int {
+  MESSAGE_TYPE_UNSPECIFIED = 0,
+  NORMAL = 1,
+  FIFO = 2,
+  DELAY = 3,
+  TRANSACTION = 4,
+  MessageType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  MessageType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool MessageType_IsValid(int value);
+constexpr MessageType MessageType_MIN = MESSAGE_TYPE_UNSPECIFIED;
+constexpr MessageType MessageType_MAX = TRANSACTION;
+constexpr int MessageType_ARRAYSIZE = MessageType_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* MessageType_descriptor();
+template<typename T>
+inline const std::string& MessageType_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, MessageType>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function MessageType_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    MessageType_descriptor(), enum_t_value);
+}
+inline bool MessageType_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, MessageType* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<MessageType>(
+    MessageType_descriptor(), name, value);
+}
+enum DigestType : int {
+  DIGEST_TYPE_UNSPECIFIED = 0,
+  CRC32 = 1,
+  MD5 = 2,
+  SHA1 = 3,
+  DigestType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  DigestType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool DigestType_IsValid(int value);
+constexpr DigestType DigestType_MIN = DIGEST_TYPE_UNSPECIFIED;
+constexpr DigestType DigestType_MAX = SHA1;
+constexpr int DigestType_ARRAYSIZE = DigestType_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DigestType_descriptor();
+template<typename T>
+inline const std::string& DigestType_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, DigestType>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function DigestType_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    DigestType_descriptor(), enum_t_value);
+}
+inline bool DigestType_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, DigestType* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<DigestType>(
+    DigestType_descriptor(), name, value);
+}
+enum ClientType : int {
+  CLIENT_TYPE_UNSPECIFIED = 0,
+  PRODUCER = 1,
+  PUSH_CONSUMER = 2,
+  SIMPLE_CONSUMER = 3,
+  ClientType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  ClientType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool ClientType_IsValid(int value);
+constexpr ClientType ClientType_MIN = CLIENT_TYPE_UNSPECIFIED;
+constexpr ClientType ClientType_MAX = SIMPLE_CONSUMER;
+constexpr int ClientType_ARRAYSIZE = ClientType_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ClientType_descriptor();
+template<typename T>
+inline const std::string& ClientType_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, ClientType>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function ClientType_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    ClientType_descriptor(), enum_t_value);
+}
+inline bool ClientType_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, ClientType* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ClientType>(
+    ClientType_descriptor(), name, value);
+}
+enum Encoding : int {
+  ENCODING_UNSPECIFIED = 0,
+  IDENTITY = 1,
+  GZIP = 2,
+  Encoding_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  Encoding_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool Encoding_IsValid(int value);
+constexpr Encoding Encoding_MIN = ENCODING_UNSPECIFIED;
+constexpr Encoding Encoding_MAX = GZIP;
+constexpr int Encoding_ARRAYSIZE = Encoding_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Encoding_descriptor();
+template<typename T>
+inline const std::string& Encoding_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, Encoding>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function Encoding_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    Encoding_descriptor(), enum_t_value);
+}
+inline bool Encoding_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Encoding* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Encoding>(
+    Encoding_descriptor(), name, value);
+}
+enum Code : int {
+  CODE_UNSPECIFIED = 0,
+  OK = 20000,
+  MULTIPLE_RESULTS = 30000,
+  BAD_REQUEST = 40000,
+  ILLEGAL_ACCESS_POINT = 40001,
+  ILLEGAL_TOPIC = 40002,
+  ILLEGAL_CONSUMER_GROUP = 40003,
+  ILLEGAL_MESSAGE_TAG = 40004,
+  ILLEGAL_MESSAGE_KEY = 40005,
+  ILLEGAL_MESSAGE_GROUP = 40006,
+  ILLEGAL_MESSAGE_PROPERTY_KEY = 40007,
+  INVALID_TRANSACTION_ID = 40008,
+  ILLEGAL_MESSAGE_ID = 40009,
+  ILLEGAL_FILTER_EXPRESSION = 40010,
+  ILLEGAL_INVISIBLE_TIME = 40011,
+  ILLEGAL_DELIVERY_TIME = 40012,
+  INVALID_RECEIPT_HANDLE = 40013,
+  MESSAGE_PROPERTY_CONFLICT_WITH_TYPE = 40014,
+  UNRECOGNIZED_CLIENT_TYPE = 40015,
+  MESSAGE_CORRUPTED = 40016,
+  CLIENT_ID_REQUIRED = 40017,
+  UNAUTHORIZED = 40100,
+  PAYMENT_REQUIRED = 40200,
+  FORBIDDEN = 40300,
+  NOT_FOUND = 40400,
+  MESSAGE_NOT_FOUND = 40401,
+  TOPIC_NOT_FOUND = 40402,
+  CONSUMER_GROUP_NOT_FOUND = 40403,
+  REQUEST_TIMEOUT = 40800,
+  PAYLOAD_TOO_LARGE = 41300,
+  MESSAGE_BODY_TOO_LARGE = 41301,
+  PRECONDITION_FAILED = 42800,
+  TOO_MANY_REQUESTS = 42900,
+  REQUEST_HEADER_FIELDS_TOO_LARGE = 43100,
+  MESSAGE_PROPERTIES_TOO_LARGE = 43101,
+  INTERNAL_ERROR = 50000,
+  INTERNAL_SERVER_ERROR = 50001,
+  HA_NOT_AVAILABLE = 50002,
+  NOT_IMPLEMENTED = 50100,
+  PROXY_TIMEOUT = 50400,
+  MASTER_PERSISTENCE_TIMEOUT = 50401,
+  SLAVE_PERSISTENCE_TIMEOUT = 50402,
+  UNSUPPORTED = 50500,
+  VERSION_UNSUPPORTED = 50501,
+  VERIFY_FIFO_MESSAGE_UNSUPPORTED = 50502,
+  FAILED_TO_CONSUME_MESSAGE = 60000,
+  Code_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  Code_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool Code_IsValid(int value);
+constexpr Code Code_MIN = CODE_UNSPECIFIED;
+constexpr Code Code_MAX = FAILED_TO_CONSUME_MESSAGE;
+constexpr int Code_ARRAYSIZE = Code_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Code_descriptor();
+template<typename T>
+inline const std::string& Code_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, Code>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function Code_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    Code_descriptor(), enum_t_value);
+}
+inline bool Code_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Code* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Code>(
+    Code_descriptor(), name, value);
+}
+enum Language : int {
+  LANGUAGE_UNSPECIFIED = 0,
+  JAVA = 1,
+  CPP = 2,
+  DOT_NET = 3,
+  GOLANG = 4,
+  RUST = 5,
+  Language_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
+  Language_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
+};
+bool Language_IsValid(int value);
+constexpr Language Language_MIN = LANGUAGE_UNSPECIFIED;
+constexpr Language Language_MAX = RUST;
+constexpr int Language_ARRAYSIZE = Language_MAX + 1;
+
+const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Language_descriptor();
+template<typename T>
+inline const std::string& Language_Name(T enum_t_value) {
+  static_assert(::std::is_same<T, Language>::value ||
+    ::std::is_integral<T>::value,
+    "Incorrect type passed to function Language_Name.");
+  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
+    Language_descriptor(), enum_t_value);
+}
+inline bool Language_Parse(
+    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, Language* value) {
+  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Language>(
+    Language_descriptor(), name, value);
+}
+// ===================================================================
+
+class FilterExpression final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.FilterExpression) */ {
+ public:
+  inline FilterExpression() : FilterExpression(nullptr) {}
+  ~FilterExpression() override;
+  explicit PROTOBUF_CONSTEXPR FilterExpression(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  FilterExpression(const FilterExpression& from);
+  FilterExpression(FilterExpression&& from) noexcept
+    : FilterExpression() {
+    *this = ::std::move(from);
+  }
+
+  inline FilterExpression& operator=(const FilterExpression& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline FilterExpression& operator=(FilterExpression&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const FilterExpression& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const FilterExpression* internal_default_instance() {
+    return reinterpret_cast<const FilterExpression*>(
+               &_FilterExpression_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    0;
+
+  friend void swap(FilterExpression& a, FilterExpression& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(FilterExpression* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(FilterExpression* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  FilterExpression* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<FilterExpression>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const FilterExpression& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const FilterExpression& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(FilterExpression* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.FilterExpression";
+  }
+  protected:
+  explicit FilterExpression(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kExpressionFieldNumber = 2,
+    kTypeFieldNumber = 1,
+  };
+  // string expression = 2 [json_name = "expression"];
+  void clear_expression();
+  const std::string& expression() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_expression(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_expression();
+  PROTOBUF_NODISCARD std::string* release_expression();
+  void set_allocated_expression(std::string* expression);
+  private:
+  const std::string& _internal_expression() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_expression(const std::string& value);
+  std::string* _internal_mutable_expression();
+  public:
+
+  // .apache.rocketmq.v2.FilterType type = 1 [json_name = "type"];
+  void clear_type();
+  ::apache::rocketmq::v2::FilterType type() const;
+  void set_type(::apache::rocketmq::v2::FilterType value);
+  private:
+  ::apache::rocketmq::v2::FilterType _internal_type() const;
+  void _internal_set_type(::apache::rocketmq::v2::FilterType value);
+  public:
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.FilterExpression)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr expression_;
+  int type_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class RetryPolicy final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.RetryPolicy) */ {
+ public:
+  inline RetryPolicy() : RetryPolicy(nullptr) {}
+  ~RetryPolicy() override;
+  explicit PROTOBUF_CONSTEXPR RetryPolicy(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  RetryPolicy(const RetryPolicy& from);
+  RetryPolicy(RetryPolicy&& from) noexcept
+    : RetryPolicy() {
+    *this = ::std::move(from);
+  }
+
+  inline RetryPolicy& operator=(const RetryPolicy& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline RetryPolicy& operator=(RetryPolicy&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const RetryPolicy& default_instance() {
+    return *internal_default_instance();
+  }
+  enum StrategyCase {
+    kExponentialBackoff = 2,
+    kCustomizedBackoff = 3,
+    STRATEGY_NOT_SET = 0,
+  };
+
+  static inline const RetryPolicy* internal_default_instance() {
+    return reinterpret_cast<const RetryPolicy*>(
+               &_RetryPolicy_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    1;
+
+  friend void swap(RetryPolicy& a, RetryPolicy& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(RetryPolicy* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(RetryPolicy* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  RetryPolicy* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<RetryPolicy>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const RetryPolicy& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const RetryPolicy& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(RetryPolicy* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.RetryPolicy";
+  }
+  protected:
+  explicit RetryPolicy(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kMaxAttemptsFieldNumber = 1,
+    kExponentialBackoffFieldNumber = 2,
+    kCustomizedBackoffFieldNumber = 3,
+  };
+  // int32 max_attempts = 1 [json_name = "maxAttempts"];
+  void clear_max_attempts();
+  int32_t max_attempts() const;
+  void set_max_attempts(int32_t value);
+  private:
+  int32_t _internal_max_attempts() const;
+  void _internal_set_max_attempts(int32_t value);
+  public:
+
+  // .apache.rocketmq.v2.ExponentialBackoff exponential_backoff = 2 [json_name = "exponentialBackoff"];
+  bool has_exponential_backoff() const;
+  private:
+  bool _internal_has_exponential_backoff() const;
+  public:
+  void clear_exponential_backoff();
+  const ::apache::rocketmq::v2::ExponentialBackoff& exponential_backoff() const;
+  PROTOBUF_NODISCARD ::apache::rocketmq::v2::ExponentialBackoff* release_exponential_backoff();
+  ::apache::rocketmq::v2::ExponentialBackoff* mutable_exponential_backoff();
+  void set_allocated_exponential_backoff(::apache::rocketmq::v2::ExponentialBackoff* exponential_backoff);
+  private:
+  const ::apache::rocketmq::v2::ExponentialBackoff& _internal_exponential_backoff() const;
+  ::apache::rocketmq::v2::ExponentialBackoff* _internal_mutable_exponential_backoff();
+  public:
+  void unsafe_arena_set_allocated_exponential_backoff(
+      ::apache::rocketmq::v2::ExponentialBackoff* exponential_backoff);
+  ::apache::rocketmq::v2::ExponentialBackoff* unsafe_arena_release_exponential_backoff();
+
+  // .apache.rocketmq.v2.CustomizedBackoff customized_backoff = 3 [json_name = "customizedBackoff"];
+  bool has_customized_backoff() const;
+  private:
+  bool _internal_has_customized_backoff() const;
+  public:
+  void clear_customized_backoff();
+  const ::apache::rocketmq::v2::CustomizedBackoff& customized_backoff() const;
+  PROTOBUF_NODISCARD ::apache::rocketmq::v2::CustomizedBackoff* release_customized_backoff();
+  ::apache::rocketmq::v2::CustomizedBackoff* mutable_customized_backoff();
+  void set_allocated_customized_backoff(::apache::rocketmq::v2::CustomizedBackoff* customized_backoff);
+  private:
+  const ::apache::rocketmq::v2::CustomizedBackoff& _internal_customized_backoff() const;
+  ::apache::rocketmq::v2::CustomizedBackoff* _internal_mutable_customized_backoff();
+  public:
+  void unsafe_arena_set_allocated_customized_backoff(
+      ::apache::rocketmq::v2::CustomizedBackoff* customized_backoff);
+  ::apache::rocketmq::v2::CustomizedBackoff* unsafe_arena_release_customized_backoff();
+
+  void clear_strategy();
+  StrategyCase strategy_case() const;
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.RetryPolicy)
+ private:
+  class _Internal;
+  void set_has_exponential_backoff();
+  void set_has_customized_backoff();
+
+  inline bool has_strategy() const;
+  inline void clear_has_strategy();
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  int32_t max_attempts_;
+  union StrategyUnion {
+    constexpr StrategyUnion() : _constinit_{} {}
+      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
+    ::apache::rocketmq::v2::ExponentialBackoff* exponential_backoff_;
+    ::apache::rocketmq::v2::CustomizedBackoff* customized_backoff_;
+  } strategy_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  uint32_t _oneof_case_[1];
+
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class ExponentialBackoff final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.ExponentialBackoff) */ {
+ public:
+  inline ExponentialBackoff() : ExponentialBackoff(nullptr) {}
+  ~ExponentialBackoff() override;
+  explicit PROTOBUF_CONSTEXPR ExponentialBackoff(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  ExponentialBackoff(const ExponentialBackoff& from);
+  ExponentialBackoff(ExponentialBackoff&& from) noexcept
+    : ExponentialBackoff() {
+    *this = ::std::move(from);
+  }
+
+  inline ExponentialBackoff& operator=(const ExponentialBackoff& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline ExponentialBackoff& operator=(ExponentialBackoff&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const ExponentialBackoff& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const ExponentialBackoff* internal_default_instance() {
+    return reinterpret_cast<const ExponentialBackoff*>(
+               &_ExponentialBackoff_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    2;
+
+  friend void swap(ExponentialBackoff& a, ExponentialBackoff& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(ExponentialBackoff* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(ExponentialBackoff* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  ExponentialBackoff* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ExponentialBackoff>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const ExponentialBackoff& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const ExponentialBackoff& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(ExponentialBackoff* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.ExponentialBackoff";
+  }
+  protected:
+  explicit ExponentialBackoff(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kInitialFieldNumber = 1,
+    kMaxFieldNumber = 2,
+    kMultiplierFieldNumber = 3,
+  };
+  // .google.protobuf.Duration initial = 1 [json_name = "initial"];
+  bool has_initial() const;
+  private:
+  bool _internal_has_initial() const;
+  public:
+  void clear_initial();
+  const ::PROTOBUF_NAMESPACE_ID::Duration& initial() const;
+  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Duration* release_initial();
+  ::PROTOBUF_NAMESPACE_ID::Duration* mutable_initial();
+  void set_allocated_initial(::PROTOBUF_NAMESPACE_ID::Duration* initial);
+  private:
+  const ::PROTOBUF_NAMESPACE_ID::Duration& _internal_initial() const;
+  ::PROTOBUF_NAMESPACE_ID::Duration* _internal_mutable_initial();
+  public:
+  void unsafe_arena_set_allocated_initial(
+      ::PROTOBUF_NAMESPACE_ID::Duration* initial);
+  ::PROTOBUF_NAMESPACE_ID::Duration* unsafe_arena_release_initial();
+
+  // .google.protobuf.Duration max = 2 [json_name = "max"];
+  bool has_max() const;
+  private:
+  bool _internal_has_max() const;
+  public:
+  void clear_max();
+  const ::PROTOBUF_NAMESPACE_ID::Duration& max() const;
+  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Duration* release_max();
+  ::PROTOBUF_NAMESPACE_ID::Duration* mutable_max();
+  void set_allocated_max(::PROTOBUF_NAMESPACE_ID::Duration* max);
+  private:
+  const ::PROTOBUF_NAMESPACE_ID::Duration& _internal_max() const;
+  ::PROTOBUF_NAMESPACE_ID::Duration* _internal_mutable_max();
+  public:
+  void unsafe_arena_set_allocated_max(
+      ::PROTOBUF_NAMESPACE_ID::Duration* max);
+  ::PROTOBUF_NAMESPACE_ID::Duration* unsafe_arena_release_max();
+
+  // float multiplier = 3 [json_name = "multiplier"];
+  void clear_multiplier();
+  float multiplier() const;
+  void set_multiplier(float value);
+  private:
+  float _internal_multiplier() const;
+  void _internal_set_multiplier(float value);
+  public:
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.ExponentialBackoff)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::Duration* initial_;
+  ::PROTOBUF_NAMESPACE_ID::Duration* max_;
+  float multiplier_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class CustomizedBackoff final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.CustomizedBackoff) */ {
+ public:
+  inline CustomizedBackoff() : CustomizedBackoff(nullptr) {}
+  ~CustomizedBackoff() override;
+  explicit PROTOBUF_CONSTEXPR CustomizedBackoff(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  CustomizedBackoff(const CustomizedBackoff& from);
+  CustomizedBackoff(CustomizedBackoff&& from) noexcept
+    : CustomizedBackoff() {
+    *this = ::std::move(from);
+  }
+
+  inline CustomizedBackoff& operator=(const CustomizedBackoff& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline CustomizedBackoff& operator=(CustomizedBackoff&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const CustomizedBackoff& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const CustomizedBackoff* internal_default_instance() {
+    return reinterpret_cast<const CustomizedBackoff*>(
+               &_CustomizedBackoff_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    3;
+
+  friend void swap(CustomizedBackoff& a, CustomizedBackoff& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(CustomizedBackoff* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(CustomizedBackoff* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  CustomizedBackoff* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<CustomizedBackoff>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const CustomizedBackoff& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const CustomizedBackoff& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(CustomizedBackoff* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.CustomizedBackoff";
+  }
+  protected:
+  explicit CustomizedBackoff(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kNextFieldNumber = 1,
+  };
+  // repeated .google.protobuf.Duration next = 1 [json_name = "next"];
+  int next_size() const;
+  private:
+  int _internal_next_size() const;
+  public:
+  void clear_next();
+  ::PROTOBUF_NAMESPACE_ID::Duration* mutable_next(int index);
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::PROTOBUF_NAMESPACE_ID::Duration >*
+      mutable_next();
+  private:
+  const ::PROTOBUF_NAMESPACE_ID::Duration& _internal_next(int index) const;
+  ::PROTOBUF_NAMESPACE_ID::Duration* _internal_add_next();
+  public:
+  const ::PROTOBUF_NAMESPACE_ID::Duration& next(int index) const;
+  ::PROTOBUF_NAMESPACE_ID::Duration* add_next();
+  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::PROTOBUF_NAMESPACE_ID::Duration >&
+      next() const;
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.CustomizedBackoff)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::PROTOBUF_NAMESPACE_ID::Duration > next_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class Resource final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.Resource) */ {
+ public:
+  inline Resource() : Resource(nullptr) {}
+  ~Resource() override;
+  explicit PROTOBUF_CONSTEXPR Resource(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  Resource(const Resource& from);
+  Resource(Resource&& from) noexcept
+    : Resource() {
+    *this = ::std::move(from);
+  }
+
+  inline Resource& operator=(const Resource& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline Resource& operator=(Resource&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const Resource& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const Resource* internal_default_instance() {
+    return reinterpret_cast<const Resource*>(
+               &_Resource_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    4;
+
+  friend void swap(Resource& a, Resource& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(Resource* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(Resource* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  Resource* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<Resource>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const Resource& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const Resource& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(Resource* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.Resource";
+  }
+  protected:
+  explicit Resource(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kResourceNamespaceFieldNumber = 1,
+    kNameFieldNumber = 2,
+  };
+  // string resource_namespace = 1 [json_name = "resourceNamespace"];
+  void clear_resource_namespace();
+  const std::string& resource_namespace() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_resource_namespace(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_resource_namespace();
+  PROTOBUF_NODISCARD std::string* release_resource_namespace();
+  void set_allocated_resource_namespace(std::string* resource_namespace);
+  private:
+  const std::string& _internal_resource_namespace() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_resource_namespace(const std::string& value);
+  std::string* _internal_mutable_resource_namespace();
+  public:
+
+  // string name = 2 [json_name = "name"];
+  void clear_name();
+  const std::string& name() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_name(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_name();
+  PROTOBUF_NODISCARD std::string* release_name();
+  void set_allocated_name(std::string* name);
+  private:
+  const std::string& _internal_name() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
+  std::string* _internal_mutable_name();
+  public:
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.Resource)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr resource_namespace_;
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class SubscriptionEntry final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.SubscriptionEntry) */ {
+ public:
+  inline SubscriptionEntry() : SubscriptionEntry(nullptr) {}
+  ~SubscriptionEntry() override;
+  explicit PROTOBUF_CONSTEXPR SubscriptionEntry(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  SubscriptionEntry(const SubscriptionEntry& from);
+  SubscriptionEntry(SubscriptionEntry&& from) noexcept
+    : SubscriptionEntry() {
+    *this = ::std::move(from);
+  }
+
+  inline SubscriptionEntry& operator=(const SubscriptionEntry& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline SubscriptionEntry& operator=(SubscriptionEntry&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const SubscriptionEntry& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const SubscriptionEntry* internal_default_instance() {
+    return reinterpret_cast<const SubscriptionEntry*>(
+               &_SubscriptionEntry_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    5;
+
+  friend void swap(SubscriptionEntry& a, SubscriptionEntry& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(SubscriptionEntry* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(SubscriptionEntry* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  SubscriptionEntry* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<SubscriptionEntry>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const SubscriptionEntry& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const SubscriptionEntry& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(SubscriptionEntry* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.SubscriptionEntry";
+  }
+  protected:
+  explicit SubscriptionEntry(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kTopicFieldNumber = 1,
+    kExpressionFieldNumber = 2,
+  };
+  // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+  bool has_topic() const;
+  private:
+  bool _internal_has_topic() const;
+  public:
+  void clear_topic();
+  const ::apache::rocketmq::v2::Resource& topic() const;
+  PROTOBUF_NODISCARD ::apache::rocketmq::v2::Resource* release_topic();
+  ::apache::rocketmq::v2::Resource* mutable_topic();
+  void set_allocated_topic(::apache::rocketmq::v2::Resource* topic);
+  private:
+  const ::apache::rocketmq::v2::Resource& _internal_topic() const;
+  ::apache::rocketmq::v2::Resource* _internal_mutable_topic();
+  public:
+  void unsafe_arena_set_allocated_topic(
+      ::apache::rocketmq::v2::Resource* topic);
+  ::apache::rocketmq::v2::Resource* unsafe_arena_release_topic();
+
+  // .apache.rocketmq.v2.FilterExpression expression = 2 [json_name = "expression"];
+  bool has_expression() const;
+  private:
+  bool _internal_has_expression() const;
+  public:
+  void clear_expression();
+  const ::apache::rocketmq::v2::FilterExpression& expression() const;
+  PROTOBUF_NODISCARD ::apache::rocketmq::v2::FilterExpression* release_expression();
+  ::apache::rocketmq::v2::FilterExpression* mutable_expression();
+  void set_allocated_expression(::apache::rocketmq::v2::FilterExpression* expression);
+  private:
+  const ::apache::rocketmq::v2::FilterExpression& _internal_expression() const;
+  ::apache::rocketmq::v2::FilterExpression* _internal_mutable_expression();
+  public:
+  void unsafe_arena_set_allocated_expression(
+      ::apache::rocketmq::v2::FilterExpression* expression);
+  ::apache::rocketmq::v2::FilterExpression* unsafe_arena_release_expression();
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.SubscriptionEntry)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::apache::rocketmq::v2::Resource* topic_;
+  ::apache::rocketmq::v2::FilterExpression* expression_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class Address final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.Address) */ {
+ public:
+  inline Address() : Address(nullptr) {}
+  ~Address() override;
+  explicit PROTOBUF_CONSTEXPR Address(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  Address(const Address& from);
+  Address(Address&& from) noexcept
+    : Address() {
+    *this = ::std::move(from);
+  }
+
+  inline Address& operator=(const Address& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline Address& operator=(Address&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const Address& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const Address* internal_default_instance() {
+    return reinterpret_cast<const Address*>(
+               &_Address_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    6;
+
+  friend void swap(Address& a, Address& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(Address* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(Address* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  Address* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<Address>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const Address& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const Address& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(Address* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.Address";
+  }
+  protected:
+  explicit Address(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kHostFieldNumber = 1,
+    kPortFieldNumber = 2,
+  };
+  // string host = 1 [json_name = "host"];
+  void clear_host();
+  const std::string& host() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_host(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_host();
+  PROTOBUF_NODISCARD std::string* release_host();
+  void set_allocated_host(std::string* host);
+  private:
+  const std::string& _internal_host() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_host(const std::string& value);
+  std::string* _internal_mutable_host();
+  public:
+
+  // int32 port = 2 [json_name = "port"];
+  void clear_port();
+  int32_t port() const;
+  void set_port(int32_t value);
+  private:
+  int32_t _internal_port() const;
+  void _internal_set_port(int32_t value);
+  public:
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.Address)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr host_;
+  int32_t port_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class Endpoints final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.Endpoints) */ {
+ public:
+  inline Endpoints() : Endpoints(nullptr) {}
+  ~Endpoints() override;
+  explicit PROTOBUF_CONSTEXPR Endpoints(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  Endpoints(const Endpoints& from);
+  Endpoints(Endpoints&& from) noexcept
+    : Endpoints() {
+    *this = ::std::move(from);
+  }
+
+  inline Endpoints& operator=(const Endpoints& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline Endpoints& operator=(Endpoints&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const Endpoints& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const Endpoints* internal_default_instance() {
+    return reinterpret_cast<const Endpoints*>(
+               &_Endpoints_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    7;
+
+  friend void swap(Endpoints& a, Endpoints& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(Endpoints* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(Endpoints* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  Endpoints* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<Endpoints>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const Endpoints& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const Endpoints& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(Endpoints* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.Endpoints";
+  }
+  protected:
+  explicit Endpoints(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kAddressesFieldNumber = 2,
+    kSchemeFieldNumber = 1,
+  };
+  // repeated .apache.rocketmq.v2.Address addresses = 2 [json_name = "addresses"];
+  int addresses_size() const;
+  private:
+  int _internal_addresses_size() const;
+  public:
+  void clear_addresses();
+  ::apache::rocketmq::v2::Address* mutable_addresses(int index);
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::apache::rocketmq::v2::Address >*
+      mutable_addresses();
+  private:
+  const ::apache::rocketmq::v2::Address& _internal_addresses(int index) const;
+  ::apache::rocketmq::v2::Address* _internal_add_addresses();
+  public:
+  const ::apache::rocketmq::v2::Address& addresses(int index) const;
+  ::apache::rocketmq::v2::Address* add_addresses();
+  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::apache::rocketmq::v2::Address >&
+      addresses() const;
+
+  // .apache.rocketmq.v2.AddressScheme scheme = 1 [json_name = "scheme"];
+  void clear_scheme();
+  ::apache::rocketmq::v2::AddressScheme scheme() const;
+  void set_scheme(::apache::rocketmq::v2::AddressScheme value);
+  private:
+  ::apache::rocketmq::v2::AddressScheme _internal_scheme() const;
+  void _internal_set_scheme(::apache::rocketmq::v2::AddressScheme value);
+  public:
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.Endpoints)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::apache::rocketmq::v2::Address > addresses_;
+  int scheme_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class Broker final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.Broker) */ {
+ public:
+  inline Broker() : Broker(nullptr) {}
+  ~Broker() override;
+  explicit PROTOBUF_CONSTEXPR Broker(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  Broker(const Broker& from);
+  Broker(Broker&& from) noexcept
+    : Broker() {
+    *this = ::std::move(from);
+  }
+
+  inline Broker& operator=(const Broker& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline Broker& operator=(Broker&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const Broker& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const Broker* internal_default_instance() {
+    return reinterpret_cast<const Broker*>(
+               &_Broker_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    8;
+
+  friend void swap(Broker& a, Broker& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(Broker* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(Broker* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  Broker* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<Broker>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const Broker& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const Broker& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(Broker* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.Broker";
+  }
+  protected:
+  explicit Broker(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kNameFieldNumber = 1,
+    kEndpointsFieldNumber = 3,
+    kIdFieldNumber = 2,
+  };
+  // string name = 1 [json_name = "name"];
+  void clear_name();
+  const std::string& name() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_name(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_name();
+  PROTOBUF_NODISCARD std::string* release_name();
+  void set_allocated_name(std::string* name);
+  private:
+  const std::string& _internal_name() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
+  std::string* _internal_mutable_name();
+  public:
+
+  // .apache.rocketmq.v2.Endpoints endpoints = 3 [json_name = "endpoints"];
+  bool has_endpoints() const;
+  private:
+  bool _internal_has_endpoints() const;
+  public:
+  void clear_endpoints();
+  const ::apache::rocketmq::v2::Endpoints& endpoints() const;
+  PROTOBUF_NODISCARD ::apache::rocketmq::v2::Endpoints* release_endpoints();
+  ::apache::rocketmq::v2::Endpoints* mutable_endpoints();
+  void set_allocated_endpoints(::apache::rocketmq::v2::Endpoints* endpoints);
+  private:
+  const ::apache::rocketmq::v2::Endpoints& _internal_endpoints() const;
+  ::apache::rocketmq::v2::Endpoints* _internal_mutable_endpoints();
+  public:
+  void unsafe_arena_set_allocated_endpoints(
+      ::apache::rocketmq::v2::Endpoints* endpoints);
+  ::apache::rocketmq::v2::Endpoints* unsafe_arena_release_endpoints();
+
+  // int32 id = 2 [json_name = "id"];
+  void clear_id();
+  int32_t id() const;
+  void set_id(int32_t value);
+  private:
+  int32_t _internal_id() const;
+  void _internal_set_id(int32_t value);
+  public:
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.Broker)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
+  ::apache::rocketmq::v2::Endpoints* endpoints_;
+  int32_t id_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class MessageQueue final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.MessageQueue) */ {
+ public:
+  inline MessageQueue() : MessageQueue(nullptr) {}
+  ~MessageQueue() override;
+  explicit PROTOBUF_CONSTEXPR MessageQueue(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  MessageQueue(const MessageQueue& from);
+  MessageQueue(MessageQueue&& from) noexcept
+    : MessageQueue() {
+    *this = ::std::move(from);
+  }
+
+  inline MessageQueue& operator=(const MessageQueue& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline MessageQueue& operator=(MessageQueue&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const MessageQueue& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const MessageQueue* internal_default_instance() {
+    return reinterpret_cast<const MessageQueue*>(
+               &_MessageQueue_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    9;
+
+  friend void swap(MessageQueue& a, MessageQueue& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(MessageQueue* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(MessageQueue* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  MessageQueue* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<MessageQueue>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const MessageQueue& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const MessageQueue& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(MessageQueue* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.MessageQueue";
+  }
+  protected:
+  explicit MessageQueue(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kAcceptMessageTypesFieldNumber = 5,
+    kTopicFieldNumber = 1,
+    kBrokerFieldNumber = 4,
+    kIdFieldNumber = 2,
+    kPermissionFieldNumber = 3,
+  };
+  // repeated .apache.rocketmq.v2.MessageType accept_message_types = 5 [json_name = "acceptMessageTypes"];
+  int accept_message_types_size() const;
+  private:
+  int _internal_accept_message_types_size() const;
+  public:
+  void clear_accept_message_types();
+  private:
+  ::apache::rocketmq::v2::MessageType _internal_accept_message_types(int index) const;
+  void _internal_add_accept_message_types(::apache::rocketmq::v2::MessageType value);
+  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_accept_message_types();
+  public:
+  ::apache::rocketmq::v2::MessageType accept_message_types(int index) const;
+  void set_accept_message_types(int index, ::apache::rocketmq::v2::MessageType value);
+  void add_accept_message_types(::apache::rocketmq::v2::MessageType value);
+  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& accept_message_types() const;
+  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_accept_message_types();
+
+  // .apache.rocketmq.v2.Resource topic = 1 [json_name = "topic"];
+  bool has_topic() const;
+  private:
+  bool _internal_has_topic() const;
+  public:
+  void clear_topic();
+  const ::apache::rocketmq::v2::Resource& topic() const;
+  PROTOBUF_NODISCARD ::apache::rocketmq::v2::Resource* release_topic();
+  ::apache::rocketmq::v2::Resource* mutable_topic();
+  void set_allocated_topic(::apache::rocketmq::v2::Resource* topic);
+  private:
+  const ::apache::rocketmq::v2::Resource& _internal_topic() const;
+  ::apache::rocketmq::v2::Resource* _internal_mutable_topic();
+  public:
+  void unsafe_arena_set_allocated_topic(
+      ::apache::rocketmq::v2::Resource* topic);
+  ::apache::rocketmq::v2::Resource* unsafe_arena_release_topic();
+
+  // .apache.rocketmq.v2.Broker broker = 4 [json_name = "broker"];
+  bool has_broker() const;
+  private:
+  bool _internal_has_broker() const;
+  public:
+  void clear_broker();
+  const ::apache::rocketmq::v2::Broker& broker() const;
+  PROTOBUF_NODISCARD ::apache::rocketmq::v2::Broker* release_broker();
+  ::apache::rocketmq::v2::Broker* mutable_broker();
+  void set_allocated_broker(::apache::rocketmq::v2::Broker* broker);
+  private:
+  const ::apache::rocketmq::v2::Broker& _internal_broker() const;
+  ::apache::rocketmq::v2::Broker* _internal_mutable_broker();
+  public:
+  void unsafe_arena_set_allocated_broker(
+      ::apache::rocketmq::v2::Broker* broker);
+  ::apache::rocketmq::v2::Broker* unsafe_arena_release_broker();
+
+  // int32 id = 2 [json_name = "id"];
+  void clear_id();
+  int32_t id() const;
+  void set_id(int32_t value);
+  private:
+  int32_t _internal_id() const;
+  void _internal_set_id(int32_t value);
+  public:
+
+  // .apache.rocketmq.v2.Permission permission = 3 [json_name = "permission"];
+  void clear_permission();
+  ::apache::rocketmq::v2::Permission permission() const;
+  void set_permission(::apache::rocketmq::v2::Permission value);
+  private:
+  ::apache::rocketmq::v2::Permission _internal_permission() const;
+  void _internal_set_permission(::apache::rocketmq::v2::Permission value);
+  public:
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.MessageQueue)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> accept_message_types_;
+  mutable std::atomic<int> _accept_message_types_cached_byte_size_;
+  ::apache::rocketmq::v2::Resource* topic_;
+  ::apache::rocketmq::v2::Broker* broker_;
+  int32_t id_;
+  int permission_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class Digest final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.Digest) */ {
+ public:
+  inline Digest() : Digest(nullptr) {}
+  ~Digest() override;
+  explicit PROTOBUF_CONSTEXPR Digest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  Digest(const Digest& from);
+  Digest(Digest&& from) noexcept
+    : Digest() {
+    *this = ::std::move(from);
+  }
+
+  inline Digest& operator=(const Digest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline Digest& operator=(Digest&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const Digest& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const Digest* internal_default_instance() {
+    return reinterpret_cast<const Digest*>(
+               &_Digest_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    10;
+
+  friend void swap(Digest& a, Digest& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(Digest* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(Digest* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  Digest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<Digest>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const Digest& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const Digest& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(Digest* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.Digest";
+  }
+  protected:
+  explicit Digest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kChecksumFieldNumber = 2,
+    kTypeFieldNumber = 1,
+  };
+  // string checksum = 2 [json_name = "checksum"];
+  void clear_checksum();
+  const std::string& checksum() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_checksum(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_checksum();
+  PROTOBUF_NODISCARD std::string* release_checksum();
+  void set_allocated_checksum(std::string* checksum);
+  private:
+  const std::string& _internal_checksum() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_checksum(const std::string& value);
+  std::string* _internal_mutable_checksum();
+  public:
+
+  // .apache.rocketmq.v2.DigestType type = 1 [json_name = "type"];
+  void clear_type();
+  ::apache::rocketmq::v2::DigestType type() const;
+  void set_type(::apache::rocketmq::v2::DigestType value);
+  private:
+  ::apache::rocketmq::v2::DigestType _internal_type() const;
+  void _internal_set_type(::apache::rocketmq::v2::DigestType value);
+  public:
+
+  // @@protoc_insertion_point(class_scope:apache.rocketmq.v2.Digest)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr checksum_;
+  int type_;
+  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_apache_2frocketmq_2fv2_2fdefinition_2eproto;
+};
+// -------------------------------------------------------------------
+
+class SystemProperties final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:apache.rocketmq.v2.SystemProperties) */ {
+ public:
+  inline SystemProperties() : SystemProperties(nullptr) {}
+  ~SystemProperties() override;
+  explicit PROTOBUF_CONSTEXPR SystemProperties(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  SystemProperties(const SystemProperties& from);
+  SystemProperties(SystemProperties&& from) noexcept
+    : SystemProperties() {
+    *this = ::std::move(from);
+  }
+
+  inline SystemProperties& operator=(const SystemProperties& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline SystemProperties& operator=(SystemProperties&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const SystemProperties& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const SystemProperties* internal_default_instance() {
+    return reinterpret_cast<const SystemProperties*>(
+               &_SystemProperties_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    11;
+
+  friend void swap(SystemProperties& a, SystemProperties& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(SystemProperties* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(SystemProperties* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  SystemProperties* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<SystemProperties>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const SystemProperties& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom(const SystemProperties& from);
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  uint8_t* _InternalSerialize(
+      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(SystemProperties* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+    return "apache.rocketmq.v2.SystemProperties";
+  }
+  protected:
+  explicit SystemProperties(::PROTOBUF_NAMESPACE_ID::Arena* arena,
+                       bool is_message_owned = false);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kKeysFieldNumber = 2,
+    kTagFieldNumber = 1,
+    kMessageIdFieldNumber = 3,
+    kBornHostFieldNumber = 8,
+    kStoreHostFieldNumber = 10,
+    kReceiptHandleFieldNumber = 12,
+    kMessageGroupFieldNumber = 17,
+    kTraceContextFieldNumber = 18,
+    kBodyDigestFieldNumber = 4,
+    kBornTimestampFieldNumber = 7,
+    kStoreTimestampFieldNumber = 9,
+    kDeliveryTimestampFieldNumber = 11,
+    kInvisibleDurationFieldNumber = 15,
+    kOrphanedTransactionRecoveryDurationFieldNumber = 19,
+    kBodyEncodingFieldNumber = 5,
+    kMessageTypeFieldNumber = 6,
+    kQueueOffsetFieldNumber = 14,
+    kQueueIdFieldNumber = 13,
+    kDeliveryAttemptFieldNumber = 16,
+  };
+  // repeated string keys = 2 [json_name = "keys"];
+  int keys_size() const;
+  private:
+  int _internal_keys_size() const;
+  public:
+  void clear_keys();
+  const std::string& keys(int index) const;
+  std::string* mutable_keys(int index);
+  void set_keys(int index, const std::string& value);
+  void set_keys(int index, std::string&& value);
+  void set_keys(int index, const char* value);
+  void set_keys(int index, const char* value, size_t size);
+  std::string* add_keys();
+  void add_keys(const std::string& value);
+  void add_keys(std::string&& value);
+  void add_keys(const char* value);
+  void add_keys(const char* value, size_t size);
+  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& keys() const;
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_keys();
+  private:
+  const std::string& _internal_keys(int index) const;
+  std::string* _internal_add_keys();
+  public:
+
+  // optional string tag = 1 [json_name = "tag"];
+  bool has_tag() const;
+  private:
+  bool _internal_has_tag() const;
+  public:
+  void clear_tag();
+  const std::string& tag() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_tag(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_tag();
+  PROTOBUF_NODISCARD std::string* release_tag();
+  void set_allocated_tag(std::string* tag);
+  private:
+  const std::string& _internal_tag() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_tag(const std::string& value);
+  std::string* _internal_mutable_tag();
+  public:
+
+  // string message_id = 3 [json_name = "messageId"];
+  void clear_message_id();
+  const std::string& message_id() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_message_id(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_message_id();
+  PROTOBUF_NODISCARD std::string* release_message_id();
+  void set_allocated_message_id(std::string* message_id);
+  private:
+  const std::string& _internal_message_id() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_message_id(const std::string& value);
+  std::string* _internal_mutable_message_id();
+  public:
+
+  // string born_host = 8 [json_name = "bornHost"];
+  void clear_born_host();
+  const std::string& born_host() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_born_host(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_born_host();
+  PROTOBUF_NODISCARD std::string* release_born_host();
+  void set_allocated_born_host(std::string* born_host);
+  private:
+  const std::string& _internal_born_host() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_born_host(const std::string& value);
+  std::string* _internal_mutable_born_host();
+  public:
+
+  // string store_host = 10 [json_name = "storeHost"];
+  void clear_store_host();
+  const std::string& store_host() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_store_host(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_store_host();
+  PROTOBUF_NODISCARD std::string* release_store_host();
+  void set_allocated_store_host(std::string* store_host);
+  private:
+  const std::string& _internal_store_host() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_store_host(const std::string& value);
+  std::string* _internal_mutable_store_host();
+  public:
+
+  // optional string receipt_handle = 12 [json_name = "receiptHandle"];
+  bool has_receipt_handle() const;
+  private:
+  bool _internal_has_receipt_handle() const;
+  public:
+  void clear_receipt_handle();
+  const std::string& receipt_handle() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_receipt_handle(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_receipt_handle();
+  PROTOBUF_NODISCARD std::string* release_receipt_handle();
+  void set_allocated_receipt_handle(std::string* receipt_handle);
+  private:
+  const std::string& _internal_receipt_handle() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_receipt_handle(const std::string& value);
+  std::string* _internal_mutable_receipt_handle();
+  public:
+
+  // optional string message_group = 17 [json_name = "messageGroup"];
+  bool has_message_group() const;
+  private:
+  bool _internal_has_message_group() const;
+  public:
+  void clear_message_group();
+  const std::string& message_group() const;
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_message_group(ArgT0&& arg0, ArgT... args);
+  std::string* mutable_message_group();
+  PROTOBUF_NODISCARD std::string* release_message_group();
+  void set_allocated_message_group(std::string* message_group);
+  private:
+  const std::string& _internal_message_group() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_message_group(const std::string& value);
+  std::string* _internal_mutable_message_group();
+  public:
+
+  // optional string trace_context = 18 [json_name = "traceContext"];
+  bool has_trace_context() const;
+  private:
+  bool _internal_has_trace_context() const;
+  public:
+  void clear_trace_context();
+  const std::string& trace_context() const;
... 69256 lines suppressed ...