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:37 UTC

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

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 ...